diff options
author | Ximing Chen <ximingc@nvidia.com> | 2014-12-18 19:15:46 +0800 |
---|---|---|
committer | Matthew Pedro <mapedro@nvidia.com> | 2015-01-03 17:58:22 -0800 |
commit | 5409510f2e8de7f747f2b626a7f840eab7a01766 (patch) | |
tree | 6522e5ecc109c92021278de3328402a05122128f | |
parent | 0c7b62fa9cede7057bf066d9d7150ad6f0a4af5f (diff) |
arm: tegra: disable pinmux input clamping
Pinmux global control could be configured CLAMP_INPUTS_WHEN_TRISTATED
in bootloader/U-Boot, here is to disable it.
Bug 1551864
Change-Id: If30042237ff4ce8c68ff840b11f438d333285723
Signed-off-by: Ximing Chen <ximingc@nvidia.com>
Reviewed-on: http://git-master/r/665717
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/common.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index de7173b67cb0..07faddfcfd70 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -988,6 +988,26 @@ void __init tegra30_init_early(void) init_dma_coherent_pool_size(SZ_1M); } #endif + +#if !defined(CONFIG_ARCH_TEGRA_2x_SOC) && !defined(CONFIG_ARCH_TEGRA_3x_SOC) +/* This register/field only exists on Tegra114 and later */ +#define APB_MISC_PP_PINMUX_GLOBAL_0 0x40 +#define CLAMP_INPUTS_WHEN_TRISTATED 1 +static void tegra_pinmux_set_tristate_input_clamping(bool enable) +{ + u32 val; + val = readl(IO_ADDRESS(TEGRA_APB_MISC_BASE + + APB_MISC_PP_PINMUX_GLOBAL_0)); + if (enable) + val |= CLAMP_INPUTS_WHEN_TRISTATED; + else + val &= ~CLAMP_INPUTS_WHEN_TRISTATED; + + writel(val, IO_ADDRESS(TEGRA_APB_MISC_BASE + + APB_MISC_PP_PINMUX_GLOBAL_0)); +} +#endif + #ifdef CONFIG_ARCH_TEGRA_11x_SOC void __init tegra11x_init_early(void) { @@ -1006,6 +1026,7 @@ void __init tegra11x_init_early(void) tegra30_hotplug_init(); tegra_init_power(); tegra_init_ahb_gizmo_settings(); + tegra_pinmux_set_tristate_input_clamping(false); tegra_init_debug_uart_rate(); init_dma_coherent_pool_size(SZ_2M); @@ -1037,6 +1058,7 @@ void __init tegra12x_init_early(void) #endif tegra_init_power(); tegra_init_ahb_gizmo_settings(); + tegra_pinmux_set_tristate_input_clamping(false); tegra_init_debug_uart_rate(); } #endif @@ -1066,6 +1088,7 @@ void __init tegra14x_init_early(void) tegra30_hotplug_init(); tegra_init_power(); tegra_init_ahb_gizmo_settings(); + tegra_pinmux_set_tristate_input_clamping(false); tegra_init_debug_uart_rate(); } #endif |