Commit 418d5516 authored by Linus Walleij's avatar Linus Walleij Committed by Olof Johansson

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: default avatarLinus Walleij <linus.walleij@linaro.org>
Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parent aa5306a3
...@@ -127,22 +127,14 @@ mmcsd_default_mux { ...@@ -127,22 +127,14 @@ mmcsd_default_mux {
}; };
mmcsd_default_mode: mmcsd_default { mmcsd_default_mode: mmcsd_default {
mmcsd_default_cfg1 { mmcsd_default_cfg1 {
/* MCCLK */ /*
pins = "GPIO8_B10"; * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2
ste,output = <0>; * MCCMD, MCDAT3-0, MCMSFBCLK
}; */
mmcsd_default_cfg2 { pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11",
/* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */ "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12",
pins = "GPIO10_C11", "GPIO15_A12", "GPIO16_C13", "GPIO23_D15", "GPIO24_C15";
"GPIO16_C13", "GPIO23_D15"; ste,output = <2>;
ste,output = <1>;
};
mmcsd_default_cfg3 {
/* MCCMD, MCDAT3-0, MCMSFBCLK */
pins = "GPIO9_A10", "GPIO11_B11",
"GPIO12_A11", "GPIO13_C12",
"GPIO14_B12", "GPIO24_C15";
ste,input = <1>;
}; };
}; };
}; };
...@@ -802,10 +794,21 @@ mmcsd: sdi@101f6000 { ...@@ -802,10 +794,21 @@ mmcsd: sdi@101f6000 {
clock-names = "mclk", "apb_pclk"; clock-names = "mclk", "apb_pclk";
interrupt-parent = <&vica>; interrupt-parent = <&vica>;
interrupts = <22>; interrupts = <22>;
max-frequency = <48000000>; max-frequency = <400000>;
bus-width = <4>; bus-width = <4>;
cap-mmc-highspeed; cap-mmc-highspeed;
cap-sd-highspeed; cap-sd-highspeed;
full-pwr-cycle;
/*
* The STw4811 circuit used with the Nomadik strictly
* requires that all of these signal direction pins be
* routed and used for its 4-bit levelshifter.
*/
st,sig-dir-dat0;
st,sig-dir-dat2;
st,sig-dir-dat31;
st,sig-dir-cmd;
st,sig-pin-fbclk;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
vmmc-supply = <&vmmc_regulator>; vmmc-supply = <&vmmc_regulator>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment