diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2011-08-22 19:01:55 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-08-23 14:41:17 -0700 |
commit | 292396ef92f02c0295a9bcd2987c8c943e7fcef3 (patch) | |
tree | 6ea6c3daeaea11b82888df46bd132883f975c7b1 /arch/arm/mach-tegra/board-cardhu-power.c | |
parent | 06ba2793ecdeaf22ab34e838d26a92cab552c998 (diff) |
arm: tegra: cardhu: Suport for E1198-A02
Adding support for the gpio changes for E1198-A02.
bug 864282
Change-Id: I96e985882a3f2d00a66b300e85cb24661f884746
Reviewed-on: http://git-master/r/48483
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-power.c')
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-power.c | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-power.c b/arch/arm/mach-tegra/board-cardhu-power.c index 9e2f499c664d..f6e10db37c7f 100644 --- a/arch/arm/mach-tegra/board-cardhu-power.c +++ b/arch/arm/mach-tegra/board-cardhu-power.c @@ -842,12 +842,35 @@ static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e118x[] = { }; /* Gpio switch regulator platform data for E1198 and E1291*/ -static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e1198[] = { +static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e1198_base[] = { COMMON_GPIO_REG E1291_1198_A00_GPIO_REG E1198_GPIO_REG }; +static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e1198_a02[] = { + ADD_GPIO_REG(en_5v_cp), + ADD_GPIO_REG(en_5v0), + ADD_GPIO_REG(en_ddr_a04), + ADD_GPIO_REG(en_3v3_sys_a04), + ADD_GPIO_REG(en_3v3_modem), + ADD_GPIO_REG(en_vdd_pnl1), + ADD_GPIO_REG(cam3_ldo_en), + ADD_GPIO_REG(en_vdd_com), + ADD_GPIO_REG(en_3v3_fuse), + ADD_GPIO_REG(en_3v3_emmc), + ADD_GPIO_REG(en_vdd_sdmmc1), + ADD_GPIO_REG(en_3v3_pex_hvdd), + ADD_GPIO_REG(en_1v8_cam), + ADD_GPIO_REG(en_usb1_vbus_oc_a03), + ADD_GPIO_REG(en_usb3_vbus_oc_a03), + ADD_GPIO_REG(en_vdd_bl1_a03), + ADD_GPIO_REG(en_vdd_bl2_a03), + ADD_GPIO_REG(en_vddio_vid_oc), + ADD_GPIO_REG(cam1_ldo_en), + ADD_GPIO_REG(cam2_ldo_en), +}; + /* Gpio switch regulator platform data for PM269*/ static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_pm269[] = { PM269_GPIO_REG @@ -884,9 +907,15 @@ int __init cardhu_gpio_switch_regulator_init(void) tegra_get_board_info(&board_info); switch (board_info.board_id) { case BOARD_E1198: - gswitch_pdata.num_subdevs = ARRAY_SIZE(gswitch_subdevs_e1198); - gswitch_pdata.subdevs = gswitch_subdevs_e1198; + if (board_info.fab <= BOARD_FAB_A01) { + gswitch_pdata.num_subdevs = ARRAY_SIZE(gswitch_subdevs_e1198_base); + gswitch_pdata.subdevs = gswitch_subdevs_e1198_base; + } else { + gswitch_pdata.num_subdevs = ARRAY_SIZE(gswitch_subdevs_e1198_a02); + gswitch_pdata.subdevs = gswitch_subdevs_e1198_a02; + } break; + case BOARD_E1291: if (board_info.fab == BOARD_FAB_A03) { gswitch_pdata.num_subdevs = @@ -898,10 +927,11 @@ int __init cardhu_gpio_switch_regulator_init(void) gswitch_pdata.subdevs = gswitch_subdevs_e1291_a04; } else { gswitch_pdata.num_subdevs = - ARRAY_SIZE(gswitch_subdevs_e1198); - gswitch_pdata.subdevs = gswitch_subdevs_e1198; + ARRAY_SIZE(gswitch_subdevs_e1198_base); + gswitch_pdata.subdevs = gswitch_subdevs_e1198_base; } break; + case BOARD_PM269: gswitch_pdata.num_subdevs = ARRAY_SIZE(gswitch_subdevs_pm269); gswitch_pdata.subdevs = gswitch_subdevs_pm269; |