* [PATCH] ARM: nomadik: fix up SD/MMC DT settings
@ 2016-02-01 13:18 Linus Walleij
2016-02-04 15:49 ` Ulf Hansson
2016-02-04 21:24 ` Olof Johansson
0 siblings, 2 replies; 3+ messages in thread
From: Linus Walleij @ 2016-02-01 13:18 UTC (permalink / raw)
To: linux-arm-kernel
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 at vger.kernel.org
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ARM SoC folks: this fixes the non-working SD/MMC card on the
Nomadik please apply this directly for fixes if Ulf is OK with
it.
---
arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 37 ++++++++++++++++--------------
1 file 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 50c256f0fd98..b1707f6217bf 100644
--- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
+++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
@@ -128,22 +128,14 @@
};
mmcsd_default_mode: mmcsd_default {
mmcsd_default_cfg1 {
- /* MCCLK */
- pins = "GPIO8_B10";
- ste,output = <0>;
- };
- mmcsd_default_cfg2 {
- /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
- pins = "GPIO10_C11", "GPIO15_A12",
- "GPIO16_C13", "GPIO23_D15";
- 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>;
+ /*
+ * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2
+ * MCCMD, MCDAT3-0, MCMSFBCLK
+ */
+ pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11",
+ "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12",
+ "GPIO16_C13", "GPIO23_D15", "GPIO24_C15";
+ ste,output = <2>;
};
};
};
@@ -803,10 +795,21 @@
clock-names = "mclk", "apb_pclk";
interrupt-parent = <&vica>;
interrupts = <22>;
- max-frequency = <48000000>;
+ max-frequency = <400000>;
bus-width = <4>;
cap-mmc-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-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
vmmc-supply = <&vmmc_regulator>;
--
2.4.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH] ARM: nomadik: fix up SD/MMC DT settings
2016-02-01 13:18 [PATCH] ARM: nomadik: fix up SD/MMC DT settings Linus Walleij
@ 2016-02-04 15:49 ` Ulf Hansson
2016-02-04 21:24 ` Olof Johansson
1 sibling, 0 replies; 3+ messages in thread
From: Ulf Hansson @ 2016-02-04 15:49 UTC (permalink / raw)
To: linux-arm-kernel
On 1 February 2016 at 14:18, Linus Walleij <linus.walleij@linaro.org> wrote:
> 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 at vger.kernel.org
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
Looks good to me!
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ARM SoC folks: this fixes the non-working SD/MMC card on the
> Nomadik please apply this directly for fixes if Ulf is OK with
> it.
> ---
> arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 37 ++++++++++++++++--------------
> 1 file 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 50c256f0fd98..b1707f6217bf 100644
> --- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
> +++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
> @@ -128,22 +128,14 @@
> };
> mmcsd_default_mode: mmcsd_default {
> mmcsd_default_cfg1 {
> - /* MCCLK */
> - pins = "GPIO8_B10";
> - ste,output = <0>;
> - };
> - mmcsd_default_cfg2 {
> - /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
> - pins = "GPIO10_C11", "GPIO15_A12",
> - "GPIO16_C13", "GPIO23_D15";
> - 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>;
> + /*
> + * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2
> + * MCCMD, MCDAT3-0, MCMSFBCLK
> + */
> + pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11",
> + "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12",
> + "GPIO16_C13", "GPIO23_D15", "GPIO24_C15";
> + ste,output = <2>;
> };
> };
> };
> @@ -803,10 +795,21 @@
> clock-names = "mclk", "apb_pclk";
> interrupt-parent = <&vica>;
> interrupts = <22>;
> - max-frequency = <48000000>;
> + max-frequency = <400000>;
> bus-width = <4>;
> cap-mmc-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-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
> vmmc-supply = <&vmmc_regulator>;
> --
> 2.4.3
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] ARM: nomadik: fix up SD/MMC DT settings
2016-02-01 13:18 [PATCH] ARM: nomadik: fix up SD/MMC DT settings Linus Walleij
2016-02-04 15:49 ` Ulf Hansson
@ 2016-02-04 21:24 ` Olof Johansson
1 sibling, 0 replies; 3+ messages in thread
From: Olof Johansson @ 2016-02-04 21:24 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Feb 01, 2016 at 02:18:57PM +0100, Linus Walleij wrote:
> 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 at vger.kernel.org
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ARM SoC folks: this fixes the non-working SD/MMC card on the
> Nomadik please apply this directly for fixes if Ulf is OK with
> it.
Thanks, applied.
-Olof
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-02-04 21:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-01 13:18 [PATCH] ARM: nomadik: fix up SD/MMC DT settings Linus Walleij
2016-02-04 15:49 ` Ulf Hansson
2016-02-04 21:24 ` Olof Johansson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).