summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu-power.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-power.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu-power.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-power.c b/arch/arm/mach-tegra/board-cardhu-power.c
index a906298bbc21..c85bd4cb11e6 100644
--- a/arch/arm/mach-tegra/board-cardhu-power.c
+++ b/arch/arm/mach-tegra/board-cardhu-power.c
@@ -334,6 +334,26 @@ static struct tps6591x_subdev_info tps_devs_e1198_skubit0_1[] = {
#endif
};
+#define TPS_GPIO_INIT_PDATA(gpio_nr, _init_apply, _sleep_en, _pulldn_en, _output_en, _output_val) \
+ [gpio_nr] = { \
+ .sleep_en = _sleep_en, \
+ .pulldn_en = _pulldn_en, \
+ .output_mode_en = _output_en, \
+ .output_val = _output_val, \
+ .init_apply = _init_apply, \
+ }
+static struct tps6591x_gpio_init_data tps_gpio_pdata_e1291_a04[] = {
+ TPS_GPIO_INIT_PDATA(0, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(1, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(2, 1, 1, 0, 1, 1),
+ TPS_GPIO_INIT_PDATA(3, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(4, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(5, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(6, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(7, 0, 0, 0, 0, 0),
+ TPS_GPIO_INIT_PDATA(8, 0, 0, 0, 0, 0),
+};
+
static struct tps6591x_platform_data tps_platform = {
.irq_base = TPS6591X_IRQ_BASE,
.gpio_base = TPS6591X_GPIO_BASE,
@@ -416,6 +436,14 @@ int __init cardhu_regulator_init(void)
}
}
+ /* E1291-A04: Enable DEV_SLP and enable sleep on GPIO2 */
+ if ((board_info.board_id == BOARD_E1291) && (board_info.fab == 0x4)) {
+ tps_platform.dev_slp_en = true;
+ tps_platform.gpio_init_data = tps_gpio_pdata_e1291_a04;
+ tps_platform.num_gpioinit_data =
+ ARRAY_SIZE(tps_gpio_pdata_e1291_a04);
+ }
+
i2c_register_board_info(4, cardhu_regulators, 1);
/* Resgister the TPS6236x for all boards whose sku bit 0 is set. */