diff options
author | Bibek Basu <bbasu@nvidia.com> | 2013-12-17 11:42:31 +0530 |
---|---|---|
committer | Bibek Basu <bbasu@nvidia.com> | 2013-12-18 23:10:17 -0800 |
commit | eb9cb05c85664502898ff26032c2b1307f1742e1 (patch) | |
tree | b4b4800bb4641ae701e9ed33d7923cc1f685c4b0 /arch/arm/mach-tegra/board-laguna-power.c | |
parent | b714c5e402c1261c1860e4bda3db3da2c4919b45 (diff) |
ARM: tegra124: support new AMS PMIC
Add platforma support for detection of
new AMS PMIC for SD0 reg for
PM374 FAB B board & PM359C board
Bug 1425474
Change-Id: Id6b92f3d5f48648973736350177478374da2a7da
Signed-off-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-on: http://git-master/r/346287
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-laguna-power.c')
-rw-r--r-- | arch/arm/mach-tegra/board-laguna-power.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-laguna-power.c b/arch/arm/mach-tegra/board-laguna-power.c index c38deca9a95c..594b076a4398 100644 --- a/arch/arm/mach-tegra/board-laguna-power.c +++ b/arch/arm/mach-tegra/board-laguna-power.c @@ -246,6 +246,8 @@ static struct as3722_platform_data as3722_pdata = { .enable_clk32k_out = true, .use_power_off = true, .extcon_pdata = &as3722_adc_extcon_pdata, + .major_rev = 1, + .minor_rev = 1, }; static struct pca953x_platform_data tca6416_pdata = { @@ -319,6 +321,10 @@ int __init laguna_as3722_regulator_init(void) as3722_ldo3_reg_pdata.enable_tracking = true; as3722_ldo3_reg_pdata.disable_tracking_suspend = true; + if ((board_info.board_id == BOARD_PM359) && + (board_info.major_revision == 'C')) + as3722_pdata.minor_rev = 2; + printk(KERN_INFO "%s: i2c_register_board_info\n", __func__); if (board_info.board_id == BOARD_PM358) { @@ -385,8 +391,16 @@ static struct voltage_reg_map pmu_cpu_vdd_map[PMU_CPU_VDD_MAP_SIZE]; static inline void fill_reg_map(void) { int i; + u32 reg_init_value = 0x0a; + struct board_info board_info; + + tegra_get_board_info(&board_info); + if ((board_info.board_id == BOARD_PM359) && + (board_info.major_revision == 'C')) + reg_init_value = 0x1e; + for (i = 0; i < PMU_CPU_VDD_MAP_SIZE; i++) { - pmu_cpu_vdd_map[i].reg_value = i + 0xa; + pmu_cpu_vdd_map[i].reg_value = i + reg_init_value; pmu_cpu_vdd_map[i].reg_uV = 700000 + 10000 * i; } } |