From: gy Date: Tue, 20 Aug 2013 03:08:38 +0000 (+0800) Subject: support for battery X-Git-Tag: firefly_0821_release~6712 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7089bf4c279ceeea1debe6f9d718af088854d712;p=firefly-linux-kernel-4.4.55.git support for battery modified: arch/arm/configs/rk3026_86v_defconfig modified: arch/arm/mach-rk3026/board-rk3026-86v.c --- diff --git a/arch/arm/configs/rk3026_86v_defconfig b/arch/arm/configs/rk3026_86v_defconfig index a87dd60c6e68..7b84d151280f 100644 --- a/arch/arm/configs/rk3026_86v_defconfig +++ b/arch/arm/configs/rk3026_86v_defconfig @@ -275,7 +275,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_WM831X_I2C=y diff --git a/arch/arm/mach-rk3026/board-rk3026-86v.c b/arch/arm/mach-rk3026/board-rk3026-86v.c index 391babd16bd0..a044df39d33b 100755 --- a/arch/arm/mach-rk3026/board-rk3026-86v.c +++ b/arch/arm/mach-rk3026/board-rk3026-86v.c @@ -923,19 +923,67 @@ struct rk29_sdmmc_platform_data default_sdmmc1_data = { #endif //endif--#ifdef CONFIG_SDMMC1_RK29 #ifdef CONFIG_BATTERY_RK30_ADC_FAC + +#define DC_DET_PIN RK30_PIN1_PA5 +#define CHARGE_OK_PIN INVALID_GPIO//RK30_PIN0_PC6 + +static int rk30_adc_battery_io_init(void){ + //dc charge detect pin + int ret=0; + if (DC_DET_PIN != INVALID_GPIO){ + ret = gpio_request(RK30_PIN1_PA5, NULL); + if (ret) { + printk("failed to request dc_det gpio\n"); + } + + gpio_pull_updown(DC_DET_PIN, PullDisable);//important + ret = gpio_direction_input(DC_DET_PIN); + if (ret) { + printk("failed to set gpio dc_det input\n"); + } + } + + //charge ok detect + if (CHARGE_OK_PIN != INVALID_GPIO){ + ret = gpio_request(RK30_PIN0_PC6, NULL); + if (ret) { + printk("failed to request charge_ok gpio\n"); + } + + gpio_pull_updown(CHARGE_OK_PIN, GPIOPullUp);//important + ret = gpio_direction_input(CHARGE_OK_PIN); + if (ret) { + printk("failed to set gpio charge_ok input\n"); + } + } + ret = gpio_request(RK30_PIN3_PD6, NULL); + if (ret) { + printk("failed to request charge_ok gpio\n"); + } + + gpio_pull_updown(RK30_PIN3_PD6, GPIOPullUp);//important + // ret = gpio_direction_input(RK30_PIN3_PD6); + // if (ret) { + // printk("failed to set gpio charge_ok input\n"); + // } + + +} + static struct rk30_adc_battery_platform_data rk30_adc_battery_platdata = { .dc_det_pin = RK30_PIN1_PA5, .batt_low_pin = INVALID_GPIO, .charge_set_pin = INVALID_GPIO, - .charge_ok_pin = RK30_PIN1_PA0, + .charge_ok_pin = INVALID_GPIO,//RK30_PIN1_PA0, .usb_det_pin = INVALID_GPIO, .dc_det_level = GPIO_LOW, .charge_ok_level = GPIO_HIGH, .reference_voltage = 3300, // the rK2928 is 3300;RK3066 and rk29 are 2500;rk3066B is 1800; .pull_up_res = 200, //divider resistance , pull-up resistor - .pull_down_res = 120, //divider resistance , pull-down resistor + .pull_down_res = 200, //divider resistance , pull-down resistor + .io_init = rk30_adc_battery_io_init, .is_reboot_charging = 1, .save_capacity = 1 , .low_voltage_protection = 3600,