From afb55f8cc6838ce14f83cb9e320ee3795551fe3c Mon Sep 17 00:00:00 2001 From: hxy Date: Thu, 20 Dec 2012 15:29:39 +0800 Subject: [PATCH] rk3168:add act8846 pmu support in boardconfig --- arch/arm/configs/rk3168_tb_defconfig | 1 + arch/arm/mach-rk30/board-rk3168-tb.c | 96 ++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) diff --git a/arch/arm/configs/rk3168_tb_defconfig b/arch/arm/configs/rk3168_tb_defconfig index cc9fceaf7351..02935785c9ce 100644 --- a/arch/arm/configs/rk3168_tb_defconfig +++ b/arch/arm/configs/rk3168_tb_defconfig @@ -286,6 +286,7 @@ CONFIG_MFD_TPS65090=y CONFIG_REGULATOR=y CONFIG_REGULATOR_TPS65910=y CONFIG_REGULATOR_WM831X=y +CONFIG_REGULATOR_ACT8846=y CONFIG_RK30_PWM_REGULATOR=y CONFIG_MEDIA_SUPPORT=y CONFIG_VIDEO_DEV=y diff --git a/arch/arm/mach-rk30/board-rk3168-tb.c b/arch/arm/mach-rk30/board-rk3168-tb.c index 2beab16aaa42..547b8146f0e8 100644 --- a/arch/arm/mach-rk30/board-rk3168-tb.c +++ b/arch/arm/mach-rk30/board-rk3168-tb.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #if defined(CONFIG_MFD_RK610) @@ -1556,6 +1557,82 @@ static struct pmu_info tps65910_ldo_info[] = { #include "board-pmu-tps65910.c" #endif +#ifdef CONFIG_REGULATOR_ACT8846 +#define PMU_POWER_SLEEP RK30_PIN0_PA1 + +static struct pmu_info act8846_dcdc_info[] = { + { + .name = "act_dcdc1", //ddr + .min_uv = 1200000, + .max_uv = 1200000, + }, + { + .name = "vdd_core", //logic + .min_uv = 1100000, + .max_uv = 1100000, + .suspend_vol = 900000, + }, + { + .name = "vdd_cpu", //arm + .min_uv = 1100000, + .max_uv = 1100000, + .suspend_vol = 900000, + }, + { + .name = "act_dcdc4", //vccio + .min_uv = 3000000, + .max_uv = 3000000, + .suspend_vol = 2800000, + }, + +}; +static struct pmu_info act8846_ldo_info[] = { + { + .name = "act_ldo1", //vdd11 + .min_uv = 1100000, + .max_uv = 1100000, + }, + { + .name = "act_ldo2", //vcc25 + .min_uv = 2500000, + .max_uv = 2500000, + }, + { + .name = "act_ldo3", //vcc18_cif + .min_uv = 1900000, + .max_uv = 1900000, + }, + { + .name = "act_ldo4", //vcca33 + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "act_ldo5", //vcctp + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "act_ldo6", //vcc33 + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "act_ldo7", //vccio_wl + .min_uv = 1800000, + .max_uv = 1800000, + }, + { + .name = "act_ldo8", //vcc28_cif + .min_uv = 2800000, + .max_uv = 2800000, + }, + }; + +#include "board-pmu-act8846.c" +#endif + + static struct i2c_board_info __initdata i2c1_info[] = { #if defined (CONFIG_MFD_WM831X_I2C) { @@ -1575,6 +1652,16 @@ static struct i2c_board_info __initdata i2c1_info[] = { .platform_data = &tps65910_data, }, #endif + +#if defined (CONFIG_REGULATOR_ACT8846) + { + .type = "act8846", + .addr = 0x5a, + .flags = 0, + // .irq = ACT8846_HOST_IRQ, + .platform_data=&act8846_data, + }, +#endif }; #endif @@ -1588,6 +1675,11 @@ void __sramfunc board_pmu_suspend(void) if(pmic_is_tps65910()) board_pmu_tps65910_suspend(); #endif + #if defined (CONFIG_REGULATOR_ACT8846) + if(pmic_is_act8846()) + board_pmu_act8846_suspend(); + #endif + } void __sramfunc board_pmu_resume(void) @@ -1600,6 +1692,10 @@ void __sramfunc board_pmu_resume(void) if(pmic_is_tps65910()) board_pmu_tps65910_resume(); #endif + #if defined (CONFIG_REGULATOR_ACT8846) + if(pmic_is_act8846()) + board_pmu_act8846_resume(); + #endif } int __sramdata gpio3d6_iomux,gpio3d6_do,gpio3d6_dir,gpio3d6_en; -- 2.34.1