summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/pinmux-t2-tables.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/pinmux-t2-tables.c b/arch/arm/mach-tegra/pinmux-t2-tables.c
index 5d9f65bacdbc..d1b54662689a 100644
--- a/arch/arm/mach-tegra/pinmux-t2-tables.c
+++ b/arch/arm/mach-tegra/pinmux-t2-tables.c
@@ -967,9 +967,11 @@ const struct tegra_pingroup_desc* tegra_pinmux_get_pingroups(void) {
#define PIN_MUX_CTL_REG_NUM 8
#define PULLUPDOWN_REG_A 0xa0
#define PULLUPDOWN_REG_NUM 5
+#define PADCTRL_REG 0x868
+#define PADCTRL_REG_NUM 42
static u32 pinmux_reg[TRISTATE_REG_NUM + PIN_MUX_CTL_REG_NUM +
- PULLUPDOWN_REG_NUM];
+ PULLUPDOWN_REG_NUM + PADCTRL_REG_NUM];
static inline unsigned long pg_readl(unsigned long offset)
{
@@ -994,6 +996,9 @@ void tegra_pinmux_suspend(void)
for (i=0; i<TRISTATE_REG_NUM; i++)
*ctx++ = pg_readl(TRISTATE_REG_A + i*4);
+
+ for (i=0; i<PADCTRL_REG_NUM; i++)
+ *ctx++ = pg_readl(PADCTRL_REG + i*4);
}
void tegra_pinmux_resume(void)
@@ -1009,5 +1014,13 @@ void tegra_pinmux_resume(void)
for (i=0; i<TRISTATE_REG_NUM; i++)
pg_writel(*ctx++, TRISTATE_REG_A + i*4);
+
+ for (i=PADCTRL_REG; i< PADCTRL_REG + 4 * PADCTRL_REG_NUM; i+=4, ctx++) {
+ /* Skip DRAM pads */
+ if (i == 0x8c8 || i == 0x8cc || i == 0x8d0 || i == 0x8d4 ||
+ i == 0x8d8 || i == 0x8e4 || i == 0x8e8)
+ continue;
+ pg_writel(*ctx, i);
+ }
}
#endif