summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu-power.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2011-08-22 19:01:55 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-08-23 14:41:17 -0700
commit292396ef92f02c0295a9bcd2987c8c943e7fcef3 (patch)
tree6ea6c3daeaea11b82888df46bd132883f975c7b1 /arch/arm/mach-tegra/board-cardhu-power.c
parent06ba2793ecdeaf22ab34e838d26a92cab552c998 (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.c40
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;