Skip to content

Commit 418d551

Browse files
linuswolofj
authored andcommitted
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>
1 parent aa5306a commit 418d551

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

arch/arm/boot/dts/ste-nomadik-stn8815.dtsi

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -127,22 +127,14 @@
127127
};
128128
mmcsd_default_mode: mmcsd_default {
129129
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>;
146138
};
147139
};
148140
};
@@ -802,10 +794,21 @@
802794
clock-names = "mclk", "apb_pclk";
803795
interrupt-parent = <&vica>;
804796
interrupts = <22>;
805-
max-frequency = <48000000>;
797+
max-frequency = <400000>;
806798
bus-width = <4>;
807799
cap-mmc-highspeed;
808800
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;
809812
pinctrl-names = "default";
810813
pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
811814
vmmc-supply = <&vmmc_regulator>;

0 commit comments

Comments
 (0)