From: xieyi <xieyi@rock-chips.com>
Date: Fri, 28 Sep 2012 10:23:33 +0000 (+0800)
Subject: rk2928: rk2926_m713: add in adc battery device
X-Git-Tag: firefly_0821_release~8503
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1f1b6ac49d885b0256af61e5e1607d2887126bb4;p=firefly-linux-kernel-4.4.55.git

rk2928: rk2926_m713: add in adc battery device
---

diff --git a/arch/arm/configs/rk2926_m713_defconfig b/arch/arm/configs/rk2926_m713_defconfig
index 3279495883c7..acfe2db4c67d 100644
--- a/arch/arm/configs/rk2926_m713_defconfig
+++ b/arch/arm/configs/rk2926_m713_defconfig
@@ -259,7 +259,9 @@ CONFIG_EXPANDED_GPIO_IRQ_NUM=0
 CONFIG_SPI_FPGA_GPIO_NUM=0
 CONFIG_SPI_FPGA_GPIO_IRQ_NUM=0
 CONFIG_POWER_SUPPLY=y
-CONFIG_TEST_POWER=y
+CONFIG_BATTERY_RK30_ADC_FAC=y
+CONFIG_BATTERY_RK30_AC_CHARGE=y
+CONFIG_BATTERY_RK30_VOL3V8=y
 # CONFIG_HWMON is not set
 CONFIG_MFD_TPS65910=y
 CONFIG_MFD_TPS65090=y
diff --git a/arch/arm/mach-rk2928/board-rk2928-a720.c b/arch/arm/mach-rk2928/board-rk2928-a720.c
index 550da6c0d50a..467373737043 100755
--- a/arch/arm/mach-rk2928/board-rk2928-a720.c
+++ b/arch/arm/mach-rk2928/board-rk2928-a720.c
@@ -607,6 +607,23 @@ static struct platform_device device_acodec = {
 };
 #endif
 
+#ifdef CONFIG_BATTERY_RK30_ADC_FAC
+static struct rk30_adc_battery_platform_data rk30_adc_battery_platdata = {
+        .dc_det_pin      = INVALID_GPIO,
+        .batt_low_pin    = INVALID_GPIO,
+        .charge_set_pin  = INVALID_GPIO,
+        .charge_ok_pin   = INVALID_GPIO,
+};
+
+static struct platform_device rk30_device_adc_battery = {
+        .name   = "rk30-battery",
+        .id     = -1,
+        .dev = {
+                .platform_data = &rk30_adc_battery_platdata,
+        },
+};
+#endif
+
 static struct platform_device *devices[] __initdata = {
 #ifdef CONFIG_FB_ROCKCHIP
 	&device_fb,
@@ -623,6 +640,9 @@ static struct platform_device *devices[] __initdata = {
 #ifdef CONFIG_SND_SOC_RK2928
 	&device_acodec,
 #endif
+#ifdef CONFIG_BATTERY_RK30_ADC_FAC
+	&rk30_device_adc_battery,
+#endif
 };
 //i2c
 #ifdef CONFIG_I2C0_RK30
diff --git a/arch/arm/mach-rk2928/include/mach/board.h b/arch/arm/mach-rk2928/include/mach/board.h
index 9cda9b8badd8..2040eb35fa47 100644
--- a/arch/arm/mach-rk2928/include/mach/board.h
+++ b/arch/arm/mach-rk2928/include/mach/board.h
@@ -32,6 +32,26 @@ void __sramfunc board_pmu_resume(void);
 
 extern struct sys_timer rk2928_timer;
 
+#ifdef CONFIG_BATTERY_RK30_ADC_FAC
+/* adc battery */
+struct rk30_adc_battery_platform_data {
+        int (*io_init)(void);
+        int (*io_deinit)(void);
+
+        int dc_det_pin;
+        int batt_low_pin;
+        int charge_ok_pin;
+        int charge_set_pin;
+
+//        int adc_channel;
+
+        int dc_det_level;
+        int batt_low_level;
+        int charge_ok_level;
+        int charge_set_level;
+};
+#endif
+
 #ifndef _LINUX_WLAN_PLAT_H_
 struct wifi_platform_data {
         int (*set_power)(int val);