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.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-power.c b/arch/arm/mach-tegra/board-cardhu-power.c
index b2fcb5814155..caaaa95cbca9 100644
--- a/arch/arm/mach-tegra/board-cardhu-power.c
+++ b/arch/arm/mach-tegra/board-cardhu-power.c
@@ -379,12 +379,15 @@ int __init cardhu_regulator_init(void)
pmc_ctrl = readl(pmc + PMC_CTRL);
writel(pmc_ctrl | PMC_CTRL_INTR_LOW, pmc + PMC_CTRL);
- /* The regulator details have complete constraints */
- regulator_has_full_constraints();
-
tegra_get_board_info(&board_info);
tegra_get_pmu_board_info(&pmu_board_info);
+ if (pmu_board_info.board_id == BOARD_PMU_PM299)
+ return cardhu_pm299_regulator_init();
+
+ /* The regulator details have complete constraints */
+ regulator_has_full_constraints();
+
/* PMU-E1208-A03, the ldo2 should be set to 1200mV */
if ((pmu_board_info.board_id == BOARD_E1208) &&
(pmu_board_info.fab == BOARD_FAB_A03)) {
@@ -904,7 +907,14 @@ int __init cardhu_gpio_switch_regulator_init(void)
{
int i;
struct board_info board_info;
+ struct board_info pmu_board_info;
+
tegra_get_board_info(&board_info);
+ tegra_get_pmu_board_info(&pmu_board_info);
+
+ if (pmu_board_info.board_id == BOARD_PMU_PM299)
+ return cardhu_pm299_gpio_switch_regulator_init();
+
switch (board_info.board_id) {
case BOARD_E1198:
if (board_info.fab <= BOARD_FAB_A01) {