sunxi: power: enabled support for axp818

Enabled support for AXP818 in SPL and u-boot.
DCDC1, DCDC2, DCDC3 and DCSC5 are enabled.

Signed-off-by: Vishnu Patekar <vishnupatekar0510@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
vishnupatekar 2015-11-29 01:07:22 +08:00 committed by Hans de Goede
parent 813c7372bb
commit 95ab8fee8a
4 changed files with 15 additions and 9 deletions

View File

@ -33,6 +33,7 @@ obj-$(CONFIG_MACH_SUN6I) += tzpc.o
obj-$(CONFIG_AXP152_POWER) += pmic_bus.o obj-$(CONFIG_AXP152_POWER) += pmic_bus.o
obj-$(CONFIG_AXP209_POWER) += pmic_bus.o obj-$(CONFIG_AXP209_POWER) += pmic_bus.o
obj-$(CONFIG_AXP221_POWER) += pmic_bus.o obj-$(CONFIG_AXP221_POWER) += pmic_bus.o
obj-$(CONFIG_AXP818_POWER) += pmic_bus.o
ifndef CONFIG_SPL_BUILD ifndef CONFIG_SPL_BUILD
ifdef CONFIG_ARMV7_PSCI ifdef CONFIG_ARMV7_PSCI

View File

@ -23,6 +23,7 @@
#define AXP221_CTRL_ADDR 0x3e #define AXP221_CTRL_ADDR 0x3e
#define AXP221_INIT_DATA 0x3e #define AXP221_INIT_DATA 0x3e
/* AXP818 device and runtime addresses are same as AXP223 */
#define AXP223_DEVICE_ADDR 0x3a3 #define AXP223_DEVICE_ADDR 0x3a3
#define AXP223_RUNTIME_ADDR 0x2d #define AXP223_RUNTIME_ADDR 0x2d
@ -35,7 +36,7 @@ int pmic_bus_init(void)
if (!needs_init) if (!needs_init)
return 0; return 0;
#ifdef CONFIG_AXP221_POWER #if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
# ifdef CONFIG_MACH_SUN6I # ifdef CONFIG_MACH_SUN6I
p2wi_init(); p2wi_init();
ret = p2wi_change_to_p2wi_mode(AXP221_CHIP_ADDR, AXP221_CTRL_ADDR, ret = p2wi_change_to_p2wi_mode(AXP221_CHIP_ADDR, AXP221_CTRL_ADDR,
@ -61,7 +62,7 @@ int pmic_bus_read(u8 reg, u8 *data)
return i2c_read(AXP152_I2C_ADDR, reg, 1, data, 1); return i2c_read(AXP152_I2C_ADDR, reg, 1, data, 1);
#elif defined CONFIG_AXP209_POWER #elif defined CONFIG_AXP209_POWER
return i2c_read(AXP209_I2C_ADDR, reg, 1, data, 1); return i2c_read(AXP209_I2C_ADDR, reg, 1, data, 1);
#elif defined CONFIG_AXP221_POWER #elif defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
# ifdef CONFIG_MACH_SUN6I # ifdef CONFIG_MACH_SUN6I
return p2wi_read(reg, data); return p2wi_read(reg, data);
# else # else
@ -76,7 +77,7 @@ int pmic_bus_write(u8 reg, u8 data)
return i2c_write(AXP152_I2C_ADDR, reg, 1, &data, 1); return i2c_write(AXP152_I2C_ADDR, reg, 1, &data, 1);
#elif defined CONFIG_AXP209_POWER #elif defined CONFIG_AXP209_POWER
return i2c_write(AXP209_I2C_ADDR, reg, 1, &data, 1); return i2c_write(AXP209_I2C_ADDR, reg, 1, &data, 1);
#elif defined CONFIG_AXP221_POWER #elif defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
# ifdef CONFIG_MACH_SUN6I # ifdef CONFIG_MACH_SUN6I
return p2wi_write(reg, data); return p2wi_write(reg, data);
# else # else

View File

@ -430,26 +430,29 @@ void sunxi_board_init(void)
int power_failed = 0; int power_failed = 0;
unsigned long ramsize; unsigned long ramsize;
#if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || defined CONFIG_AXP221_POWER #if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || \
defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
power_failed = axp_init(); power_failed = axp_init();
#ifdef CONFIG_AXP221_POWER #if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
power_failed |= axp_set_dcdc1(CONFIG_AXP_DCDC1_VOLT); power_failed |= axp_set_dcdc1(CONFIG_AXP_DCDC1_VOLT);
#endif #endif
power_failed |= axp_set_dcdc2(CONFIG_AXP_DCDC2_VOLT); power_failed |= axp_set_dcdc2(CONFIG_AXP_DCDC2_VOLT);
power_failed |= axp_set_dcdc3(CONFIG_AXP_DCDC3_VOLT); power_failed |= axp_set_dcdc3(CONFIG_AXP_DCDC3_VOLT);
#ifndef CONFIG_AXP209_POWER #if !defined(CONFIG_AXP209_POWER) && !defined(CONFIG_AXP818_POWER)
power_failed |= axp_set_dcdc4(CONFIG_AXP_DCDC4_VOLT); power_failed |= axp_set_dcdc4(CONFIG_AXP_DCDC4_VOLT);
#endif #endif
#ifdef CONFIG_AXP221_POWER #if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT); power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
#endif #endif
#ifdef CONFIG_AXP221_POWER #ifdef CONFIG_AXP221_POWER
power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT); power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT);
#endif #endif
#ifndef CONFIG_AXP818_POWER
power_failed |= axp_set_aldo2(CONFIG_AXP_ALDO2_VOLT); power_failed |= axp_set_aldo2(CONFIG_AXP_ALDO2_VOLT);
#ifndef CONFIG_AXP152_POWER #endif
#if !defined(CONFIG_AXP152_POWER) && !defined(CONFIG_AXP818_POWER)
power_failed |= axp_set_aldo3(CONFIG_AXP_ALDO3_VOLT); power_failed |= axp_set_aldo3(CONFIG_AXP_ALDO3_VOLT);
#endif #endif
#ifdef CONFIG_AXP209_POWER #ifdef CONFIG_AXP209_POWER

View File

@ -239,7 +239,8 @@ extern int soft_i2c_gpio_scl;
#endif #endif
/* PMU */ /* PMU */
#if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || defined CONFIG_AXP221_POWER #if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || \
defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
#define CONFIG_SPL_POWER_SUPPORT #define CONFIG_SPL_POWER_SUPPORT
#endif #endif