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>

authored by

Linus Walleij and committed by
Olof Johansson
418d5516 aa5306a3

+20 -17
+20 -17
arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
··· 127 127 }; 128 128 mmcsd_default_mode: mmcsd_default { 129 129 mmcsd_default_cfg1 { 130 - /* MCCLK */ 131 - pins = "GPIO8_B10"; 132 - ste,output = <0>; 133 - }; 134 - mmcsd_default_cfg2 { 135 - /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */ 136 - pins = "GPIO10_C11", "GPIO15_A12", 137 - "GPIO16_C13", "GPIO23_D15"; 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>; 130 + /* 131 + * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 132 + * MCCMD, MCDAT3-0, MCMSFBCLK 133 + */ 134 + pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11", 135 + "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12", 136 + "GPIO16_C13", "GPIO23_D15", "GPIO24_C15"; 137 + ste,output = <2>; 146 138 }; 147 139 }; 148 140 }; ··· 794 802 clock-names = "mclk", "apb_pclk"; 795 803 interrupt-parent = <&vica>; 796 804 interrupts = <22>; 797 - max-frequency = <48000000>; 805 + max-frequency = <400000>; 798 806 bus-width = <4>; 799 807 cap-mmc-highspeed; 800 808 cap-sd-highspeed; 809 + full-pwr-cycle; 810 + /* 811 + * The STw4811 circuit used with the Nomadik strictly 812 + * requires that all of these signal direction pins be 813 + * routed and used for its 4-bit levelshifter. 814 + */ 815 + st,sig-dir-dat0; 816 + st,sig-dir-dat2; 817 + st,sig-dir-dat31; 818 + st,sig-dir-cmd; 819 + st,sig-pin-fbclk; 801 820 pinctrl-names = "default"; 802 821 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; 803 822 vmmc-supply = <&vmmc_regulator>;