diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2012-12-05 01:21:09 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2012-12-05 01:21:09 +0100 |
commit | fb79dac2805ff303064c6c55e9b0a6d1e49d98a5 (patch) | |
tree | ba11cdfa1ccc8659431c58f3020427f0b0a12cd8 | |
parent | da3238b826f87e4825ecd860cf52e8dad1354eb1 (diff) |
colibri_t30: MMC: fix SDMMC4B pinmux
Fix two issues concerning SDMMC4B pinmux (e.g. using a regular SD card
as the boot device instead of the on-module eMMC). First according to
the TRM it is illegal to mux a certain function to two sets of balls
(e.g. the regular SDMMC4 as well as the SDMMC4B muxing). Second make
absolutely sure all unused balls are not only tri-stating their outputs
but also disable their inputs to prevent any illegal internal states.
-rw-r--r-- | arch/arm/mach-tegra/board-colibri_t30-pinmux.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/arch/arm/mach-tegra/board-colibri_t30-pinmux.c b/arch/arm/mach-tegra/board-colibri_t30-pinmux.c index 34a212d25364..d621160e2c39 100644 --- a/arch/arm/mach-tegra/board-colibri_t30-pinmux.c +++ b/arch/arm/mach-tegra/board-colibri_t30-pinmux.c @@ -131,15 +131,15 @@ static __initdata struct tegra_drive_pingroup_config colibri_t30_drive_pinmux[] static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = { //multiplexed KB_ROW_13 #ifdef COLIBRI_T30_SDMMC4B - DEFAULT_PINMUX(CAM_I2C_SCL, POPSDMMC4, PULL_UP, NORMAL, INPUT), + I2C_PINMUX(CAM_I2C_SCL, POPSDMMC4, PULL_UP, NORMAL, INPUT, DISABLE, DISABLE), #else - DEFAULT_PINMUX(CAM_I2C_SCL, I2C3, NORMAL, TRISTATE, INPUT), + DEFAULT_PINMUX(CAM_I2C_SCL, I2C3, NORMAL, TRISTATE, OUTPUT), #endif //multiplexed KB_ROW_14 #ifdef COLIBRI_T30_SDMMC4B - DEFAULT_PINMUX(CAM_I2C_SDA, POPSDMMC4, PULL_UP, NORMAL, INPUT), + I2C_PINMUX(CAM_I2C_SDA, POPSDMMC4, PULL_UP, NORMAL, INPUT, DISABLE, DISABLE), #else - DEFAULT_PINMUX(CAM_I2C_SDA, I2C3, NORMAL, TRISTATE, INPUT), + DEFAULT_PINMUX(CAM_I2C_SDA, I2C3, NORMAL, TRISTATE, OUTPUT), #endif //multiplexed KB_ROW_10 @@ -252,7 +252,7 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = { //multiplexed KB_ROW_11 #ifdef COLIBRI_T30_SDMMC4B - DEFAULT_PINMUX(GPIO_PCC1, POPSDMMC4, PULL_UP, NORMAL, INPUT), + DEFAULT_PINMUX(GPIO_PCC1, POPSDMMC4, NORMAL, NORMAL, INPUT), #else DEFAULT_PINMUX(GPIO_PCC1, RSVD1, NORMAL, TRISTATE, INPUT), #endif @@ -311,12 +311,12 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = { //multiplexed SDMMC4.B #ifdef COLIBRI_T30_SDMMC4B - DEFAULT_PINMUX(KB_ROW10, KBC, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(KB_ROW11, KBC, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(KB_ROW12, KBC, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(KB_ROW13, KBC, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(KB_ROW14, KBC, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(KB_ROW15, KBC, NORMAL, TRISTATE, INPUT), + DEFAULT_PINMUX(KB_ROW10, KBC, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(KB_ROW11, KBC, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(KB_ROW12, KBC, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(KB_ROW13, KBC, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(KB_ROW14, KBC, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(KB_ROW15, KBC, NORMAL, TRISTATE, OUTPUT), #else DEFAULT_PINMUX(KB_ROW10, SDMMC2, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(KB_ROW11, SDMMC2, PULL_UP, NORMAL, INPUT), @@ -441,17 +441,17 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = { //eMMC #ifdef COLIBRI_T30_SDMMC4B - DEFAULT_PINMUX(SDMMC4_CLK, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_CMD, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT0, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT1, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT2, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT3, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT4, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT5, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT6, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_DAT7, SDMMC4, NORMAL, TRISTATE, INPUT), - DEFAULT_PINMUX(SDMMC4_RST_N, RSVD1, NORMAL, TRISTATE, INPUT), + DEFAULT_PINMUX(SDMMC4_CLK, NAND, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_CMD, NAND, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT0, GMI, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT1, GMI, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT2, GMI, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT3, GMI, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT4, GMI, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT5, VGP3, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT6, VGP4, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_DAT7, VGP5, NORMAL, TRISTATE, OUTPUT), + DEFAULT_PINMUX(SDMMC4_RST_N, RSVD1, NORMAL, TRISTATE, OUTPUT), #else /* COLIBRI_T30_SDMMC4B */ DEFAULT_PINMUX(SDMMC4_CLK, SDMMC4, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(SDMMC4_CMD, SDMMC4, PULL_UP, NORMAL, INPUT), |