summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-enterprise-power.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/board-enterprise-power.c')
-rw-r--r--arch/arm/mach-tegra/board-enterprise-power.c35
1 files changed, 28 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise-power.c b/arch/arm/mach-tegra/board-enterprise-power.c
index f974c49c9f50..7ea2095e6622 100644
--- a/arch/arm/mach-tegra/board-enterprise-power.c
+++ b/arch/arm/mach-tegra/board-enterprise-power.c
@@ -446,6 +446,10 @@ static struct regulator_consumer_supply fixed_reg_pmu_3v3_en_supply[] = {
static struct regulator_consumer_supply fixed_reg_pmu_hdmi_5v0_en_supply[] = {
REGULATOR_SUPPLY("hdmi_5v0", NULL),
};
+static struct regulator_consumer_supply
+fixed_reg_pmu_hdmi_5v0_en_tai_supply[] = {
+ REGULATOR_SUPPLY("hdmi_5v0", NULL),
+};
/* LCD-D16 (GPIO M0) from T30*/
static struct regulator_consumer_supply fixed_reg_vdd_fuse_en_supply[] = {
@@ -627,6 +631,9 @@ FIXED_REG(7, vdd_sdmmc3_2v85_en, NULL,
FIXED_REG(8, lcd_1v8_en, NULL,
TEGRA_GPIO_PB2, true, 1800, 0, 0);
+FIXED_REG(9, pmu_hdmi_5v0_en_tai, NULL,
+ ENT_TPS80031_GPIO_SYSEN, true, 5000, 0, 0);
+
#define ADD_FIXED_REG(_name) (&fixed_reg_##_name##_dev)
static struct platform_device *fixed_regs_devices_a02[] = {
ADD_FIXED_REG(pmu_5v15_en),
@@ -647,6 +654,14 @@ static struct platform_device *fixed_regs_devices_a03[] = {
ADD_FIXED_REG(lcd_1v8_en),
};
+static struct platform_device *fixed_regs_devices_tai[] = {
+ ADD_FIXED_REG(pmu_hdmi_5v0_en_tai),
+ ADD_FIXED_REG(cam_ldo_2v8_en),
+ ADD_FIXED_REG(cam_ldo_1v8_en),
+ ADD_FIXED_REG(vdd_sdmmc3_2v85_en),
+ ADD_FIXED_REG(lcd_1v8_en),
+};
+
#define ADD_GPIO_REG(_name) (&gpio_reg_##_name##_dev)
static struct platform_device *gpio_regs_devices[] = {
ADD_GPIO_REG(sdmmc3_vdd_sel),
@@ -660,14 +675,18 @@ static int __init enterprise_fixed_regulator_init(void)
tegra_get_board_info(&board_info);
- if (board_info.fab < BOARD_FAB_A03) {
- fixed_regs_devices = fixed_regs_devices_a02;
- nfixreg_devs = ARRAY_SIZE(fixed_regs_devices_a02);
+ if (board_info.board_id == BOARD_E1239) {
+ fixed_regs_devices = fixed_regs_devices_tai;
+ nfixreg_devs = ARRAY_SIZE(fixed_regs_devices_tai);
} else {
- fixed_regs_devices = fixed_regs_devices_a03;
- nfixreg_devs = ARRAY_SIZE(fixed_regs_devices_a03);
+ if (board_info.fab < BOARD_FAB_A03) {
+ fixed_regs_devices = fixed_regs_devices_a02;
+ nfixreg_devs = ARRAY_SIZE(fixed_regs_devices_a02);
+ } else {
+ fixed_regs_devices = fixed_regs_devices_a03;
+ nfixreg_devs = ARRAY_SIZE(fixed_regs_devices_a03);
+ }
}
-
return platform_add_devices(fixed_regs_devices, nfixreg_devs);
}
@@ -721,7 +740,8 @@ int __init enterprise_regulator_init(void)
battery_gauge_data.battery_present = 0;
}
- if (board_info.fab < BOARD_FAB_A03) {
+ if ((board_info.fab < BOARD_FAB_A03) &&
+ (board_info.board_id != BOARD_E1239)) {
tps_platform.num_regulator_pdata = ARRAY_SIZE(tps80031_reg_pdata_a02);
tps_platform.regulator_pdata = tps80031_reg_pdata_a02;
} else {
@@ -770,6 +790,7 @@ static void enterprise_init_deep_sleep_mode(void)
enterprise_suspend_data.suspend_mode = TEGRA_SUSPEND_LP1;
if ((bi.board_id == BOARD_E1205 && (bi.sku & BOARD_SKU_VF_BIT) == 0) ||
+ (bi.board_id == BOARD_E1239 && (bi.sku & BOARD_SKU_VF_BIT) == 0) ||
(bi.board_id == BOARD_E1197 && (bi.sku & BOARD_SKU_VF_BIT)))
enterprise_suspend_data.cpu_timer = 8000;
}