diff options
| author | Linus Walleij <linus.walleij@linaro.org> | 2016-02-01 08:18:57 -0500 |
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2016-02-04 16:24:08 -0500 |
| commit | 418d5516568b3fdbc4e7b53677dd78aed8514565 (patch) | |
| tree | 5466e493e9616f6986fe04789b33f8e8f854a002 | |
| parent | aa5306a370a9384788d923e4eae15649f1f82671 (diff) | |
ARM: nomadik: fix up SD/MMC DT settings
The DTSI file for the Nomadik does not properly specify how the
PL180 levelshifter is connected: the Nomadik actually needs all
the five st,sig-dir-* flags set to properly control all lines out.
Further this board supports full power cycling of the card, and
since this variant has no hardware clock gating, it needs a
ridiculously low frequency setting to keep up with the ever
overflowing FIFO.
The pin configuration set-up is a bit of a mystery, because of
course these pins are a mix of inputs and outputs. However the
reference implementation sets all pins to "output" with
unspecified initial value, so let's do that here as well.
Cc: stable@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
| -rw-r--r-- | arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi index d0c743853318..27a333eb8987 100644 --- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi +++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | |||
| @@ -127,22 +127,14 @@ | |||
| 127 | }; | 127 | }; |
| 128 | mmcsd_default_mode: mmcsd_default { | 128 | mmcsd_default_mode: mmcsd_default { |
| 129 | mmcsd_default_cfg1 { | 129 | mmcsd_default_cfg1 { |
| 130 | /* MCCLK */ | 130 | /* |
| 131 | pins = "GPIO8_B10"; | 131 | * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 |
| 132 | ste,output = <0>; | 132 | * MCCMD, MCDAT3-0, MCMSFBCLK |
| 133 | }; | 133 | */ |
| 134 | mmcsd_default_cfg2 { | 134 | pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11", |
| 135 | /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */ | 135 | "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12", |
| 136 | pins = "GPIO10_C11", "GPIO15_A12", | 136 | "GPIO16_C13", "GPIO23_D15", "GPIO24_C15"; |
| 137 | "GPIO16_C13", "GPIO23_D15"; | 137 | ste,output = <2>; |
| 138 | ste,output = <1>; | ||
| 139 | }; | ||
| 140 | mmcsd_default_cfg3 { | ||
| 141 | /* MCCMD, MCDAT3-0, MCMSFBCLK */ | ||
| 142 | pins = "GPIO9_A10", "GPIO11_B11", | ||
| 143 | "GPIO12_A11", "GPIO13_C12", | ||
| 144 | "GPIO14_B12", "GPIO24_C15"; | ||
| 145 | ste,input = <1>; | ||
| 146 | }; | 138 | }; |
| 147 | }; | 139 | }; |
| 148 | }; | 140 | }; |
| @@ -802,10 +794,21 @@ | |||
| 802 | clock-names = "mclk", "apb_pclk"; | 794 | clock-names = "mclk", "apb_pclk"; |
| 803 | interrupt-parent = <&vica>; | 795 | interrupt-parent = <&vica>; |
| 804 | interrupts = <22>; | 796 | interrupts = <22>; |
| 805 | max-frequency = <48000000>; | 797 | max-frequency = <400000>; |
| 806 | bus-width = <4>; | 798 | bus-width = <4>; |
| 807 | cap-mmc-highspeed; | 799 | cap-mmc-highspeed; |
| 808 | cap-sd-highspeed; | 800 | cap-sd-highspeed; |
| 801 | full-pwr-cycle; | ||
| 802 | /* | ||
| 803 | * The STw4811 circuit used with the Nomadik strictly | ||
| 804 | * requires that all of these signal direction pins be | ||
| 805 | * routed and used for its 4-bit levelshifter. | ||
| 806 | */ | ||
| 807 | st,sig-dir-dat0; | ||
| 808 | st,sig-dir-dat2; | ||
| 809 | st,sig-dir-dat31; | ||
| 810 | st,sig-dir-cmd; | ||
| 811 | st,sig-pin-fbclk; | ||
| 809 | pinctrl-names = "default"; | 812 | pinctrl-names = "default"; |
| 810 | pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; | 813 | pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; |
| 811 | vmmc-supply = <&vmmc_regulator>; | 814 | vmmc-supply = <&vmmc_regulator>; |
