summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2016-06-27 11:02:40 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-01-11 21:27:15 +0100
commit9b44a6adb9c63388c865b9807f42c25346128306 (patch)
treefe1ec636ce9e96d07258b72594b31702842d8a7d
parent4a54f9869e24cca95f05da3abae81cf9c80d7e77 (diff)
apalis/colibri_t30: vdd core pmic handling
Just release TPS65911 GPIO1 (EN_CORE_DVFS_N) connected to TPS62362 VSEL1 to switch VDD_CORE back to boot set 1 defaulting to 1.200V. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 622d408fea7af6d2ed778b546de346e90ea1a21f)
-rw-r--r--arch/arm/mach-tegra/tegra30/cpu.c10
-rw-r--r--include/configs/apalis_t30.h3
-rw-r--r--include/configs/colibri_t30.h3
-rw-r--r--scripts/config_whitelist.txt1
4 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/tegra30/cpu.c b/arch/arm/mach-tegra/tegra30/cpu.c
index 66b021b824..e0c99842a0 100644
--- a/arch/arm/mach-tegra/tegra30/cpu.c
+++ b/arch/arm/mach-tegra/tegra30/cpu.c
@@ -40,6 +40,8 @@ void tegra_i2c_ll_write_data(uint data, uint config)
#define TPS62361B_SET3_DATA (0x4600 | TPS62361B_SET3_REG)
#define TPS65911_I2C_ADDR 0x5A
+#define TPS65911_GPIO1_REG 0x61
+#define TPS65911_GPIO1_DATA (0x0000 | TPS65911_GPIO1_REG)
#define TPS65911_VDDCTRL_OP_REG 0x28
#define TPS65911_VDDCTRL_SR_REG 0x27
#define TPS65911_VDDCTRL_OP_DATA (0x2400 | TPS65911_VDDCTRL_OP_REG)
@@ -65,6 +67,14 @@ static void enable_cpu_power_rail(void)
tegra_i2c_ll_write_addr(TPS62361B_I2C_ADDR, 2);
tegra_i2c_ll_write_data(TPS62361B_SET3_DATA, I2C_SEND_2_BYTES);
#endif
+#ifdef CONFIG_TEGRA_VDD_CORE_TPS62362_SET_TPS65911_GPIO1
+ /*
+ * Just release TPS65911 GPIO1 (EN_CORE_DVFS_N) connected to TPS62362
+ * VSEL1 to switch VDD_CORE back to boot set 1 defaulting to 1.200V
+ */
+ tegra_i2c_ll_write_addr(TPS65911_I2C_ADDR, 2);
+ tegra_i2c_ll_write_data(TPS65911_GPIO1_DATA, I2C_SEND_2_BYTES);
+#endif
udelay(1000);
/*
diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h
index fcd230ed75..cf9e40bfb2 100644
--- a/include/configs/apalis_t30.h
+++ b/include/configs/apalis_t30.h
@@ -15,6 +15,9 @@
#define CONFIG_ARCH_MISC_INIT
+/* VDD core PMIC */
+#define CONFIG_TEGRA_VDD_CORE_TPS62362_SET_TPS65911_GPIO1
+
/* High-level configuration options */
#define CONFIG_DISPLAY_BOARDINFO_LATE /* Calls show_board_info() */
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
index d93a874c3e..8a7ea2c8df 100644
--- a/include/configs/colibri_t30.h
+++ b/include/configs/colibri_t30.h
@@ -15,6 +15,9 @@
#define CONFIG_ARCH_MISC_INIT
+/* VDD core PMIC */
+#define CONFIG_TEGRA_VDD_CORE_TPS62362_SET_TPS65911_GPIO1
+
/* High-level configuration options */
#define CONFIG_DISPLAY_BOARDINFO_LATE /* Calls show_board_info() */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 5d5ecdc845..482b075ef3 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -7928,6 +7928,7 @@ CONFIG_TEGRA_UARTA_GPU
CONFIG_TEGRA_UARTA_SDIO1
CONFIG_TEGRA_UARTA_UAA_UAB
CONFIG_TEGRA_VDD_CORE_TPS62361B_SET3
+CONFIG_TEGRA_VDD_CORE_TPS62362_SET_TPS65911_GPIO1
CONFIG_TEGRA_VDD_CORE_TPS62366A_SET1
CONFIG_TESTPIN_MASK
CONFIG_TESTPIN_REG