sunxi: power: enabled support for axp818
authorvishnupatekar <vishnupatekar0510@gmail.com>
Sat, 28 Nov 2015 17:07:22 +0000 (01:07 +0800)
committerHans de Goede <hdegoede@redhat.com>
Thu, 10 Dec 2015 10:14:22 +0000 (11:14 +0100)
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>
arch/arm/cpu/armv7/sunxi/Makefile
arch/arm/cpu/armv7/sunxi/pmic_bus.c
board/sunxi/board.c
include/configs/sunxi-common.h

index 33c76ef59d39a31a0efdbfea1b3e2d265ec9a74f..e4b33ceb278ab25c86265ff9171cf540db7bf8ca 100644 (file)
@@ -33,6 +33,7 @@ obj-$(CONFIG_MACH_SUN6I)      += tzpc.o
 obj-$(CONFIG_AXP152_POWER)     += pmic_bus.o
 obj-$(CONFIG_AXP209_POWER)     += pmic_bus.o
 obj-$(CONFIG_AXP221_POWER)     += pmic_bus.o
+obj-$(CONFIG_AXP818_POWER)     += pmic_bus.o
 
 ifndef CONFIG_SPL_BUILD
 ifdef CONFIG_ARMV7_PSCI
index 9e0512725b470cb3f736b70fdeffbb44aee5f2d0..5b81a8d8e127c950b6310348cc80d62049e788db 100644 (file)
@@ -23,6 +23,7 @@
 #define AXP221_CTRL_ADDR               0x3e
 #define AXP221_INIT_DATA               0x3e
 
+/* AXP818 device and runtime addresses are same as AXP223 */
 #define AXP223_DEVICE_ADDR             0x3a3
 #define AXP223_RUNTIME_ADDR            0x2d
 
@@ -35,7 +36,7 @@ int pmic_bus_init(void)
        if (!needs_init)
                return 0;
 
-#ifdef CONFIG_AXP221_POWER
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
 # ifdef CONFIG_MACH_SUN6I
        p2wi_init();
        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);
 #elif defined CONFIG_AXP209_POWER
        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
        return p2wi_read(reg, data);
 # else
@@ -76,7 +77,7 @@ int pmic_bus_write(u8 reg, u8 data)
        return i2c_write(AXP152_I2C_ADDR, reg, 1, &data, 1);
 #elif defined CONFIG_AXP209_POWER
        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
        return p2wi_write(reg, data);
 # else
index 6ac398c2dc11d9af38720b8061f32ec5973fd13c..386e2e04c219bdf4ffe07b2178f1f708c84744e2 100644 (file)
@@ -430,26 +430,29 @@ void sunxi_board_init(void)
        int power_failed = 0;
        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();
 
-#ifdef CONFIG_AXP221_POWER
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
        power_failed |= axp_set_dcdc1(CONFIG_AXP_DCDC1_VOLT);
 #endif
        power_failed |= axp_set_dcdc2(CONFIG_AXP_DCDC2_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);
 #endif
-#ifdef CONFIG_AXP221_POWER
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
        power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
 #endif
 
 #ifdef CONFIG_AXP221_POWER
        power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT);
 #endif
+#ifndef CONFIG_AXP818_POWER
        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);
 #endif
 #ifdef CONFIG_AXP209_POWER
index 98a2c7478b34652eaefea90304b9e21346c0041f..da6ab61d1bc53956b7967862f55817762914ea29 100644 (file)
@@ -239,7 +239,8 @@ extern int soft_i2c_gpio_scl;
 #endif
 
 /* 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
 #endif