aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2016-02-01 08:18:57 -0500
committerOlof Johansson <olof@lixom.net>2016-02-04 16:24:08 -0500
commit418d5516568b3fdbc4e7b53677dd78aed8514565 (patch)
tree5466e493e9616f6986fe04789b33f8e8f854a002
parentaa5306a370a9384788d923e4eae15649f1f82671 (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.dtsi37
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>;