diff mbox

[v2] ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings

Message ID 1411485172-7984-1-git-send-email-andreas.henriksson@endian.se (mailing list archive)
State New, archived
Headers show

Commit Message

Andreas Henriksson Sept. 23, 2014, 3:12 p.m. UTC
As discovered on a custom board similar to at91sam9263ek and basing
its devicetree on that one apparently the pin muxing doesn't get
set up properly. This was discovered since the custom boards u-boot
does funky stuff with the pin muxing and leaved it set to SPI
which made the MMC driver not work under Linux.
The fix is simply to define the given configuration as the default.
This probably worked by pure luck before, but it's better to
make the muxing explicitly set.

CC: Boris BREZILLON <boris.brezillon@free-electrons.com>
Signed-off-by: Andreas Henriksson <andreas.henriksson@endian.se>
---
 arch/arm/boot/dts/at91sam9263.dtsi | 2 ++
 1 file changed, 2 insertions(+)

v2: put pinctrl-names in dtsi instead as requested/suggested by Nicolas Ferre

Comments

Boris BREZILLON Sept. 23, 2014, 3:43 p.m. UTC | #1
On Tue, 23 Sep 2014 17:12:52 +0200
Andreas Henriksson <andreas.henriksson@endian.se> wrote:

> As discovered on a custom board similar to at91sam9263ek and basing
> its devicetree on that one apparently the pin muxing doesn't get
> set up properly. This was discovered since the custom boards u-boot
> does funky stuff with the pin muxing and leaved it set to SPI
> which made the MMC driver not work under Linux.
> The fix is simply to define the given configuration as the default.
> This probably worked by pure luck before, but it's better to
> make the muxing explicitly set.
> 
> CC: Boris BREZILLON <boris.brezillon@free-electrons.com>
> Signed-off-by: Andreas Henriksson <andreas.henriksson@endian.se>

Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>

> ---
>  arch/arm/boot/dts/at91sam9263.dtsi | 2 ++
>  1 file changed, 2 insertions(+)
> 
> v2: put pinctrl-names in dtsi instead as requested/suggested by Nicolas Ferre
> 
> 
> diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
> index bb23c2d..5e95a80 100644
> --- a/arch/arm/boot/dts/at91sam9263.dtsi
> +++ b/arch/arm/boot/dts/at91sam9263.dtsi
> @@ -834,6 +834,7 @@
>  				compatible = "atmel,hsmci";
>  				reg = <0xfff80000 0x600>;
>  				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
> +				pinctrl-names = "default";
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				clocks = <&mci0_clk>;
> @@ -845,6 +846,7 @@
>  				compatible = "atmel,hsmci";
>  				reg = <0xfff84000 0x600>;
>  				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
> +				pinctrl-names = "default";
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				clocks = <&mci1_clk>;
Nicolas Ferre Sept. 24, 2014, 4:11 p.m. UTC | #2
On 23/09/2014 17:12, Andreas Henriksson :
> As discovered on a custom board similar to at91sam9263ek and basing
> its devicetree on that one apparently the pin muxing doesn't get
> set up properly. This was discovered since the custom boards u-boot
> does funky stuff with the pin muxing and leaved it set to SPI
> which made the MMC driver not work under Linux.
> The fix is simply to define the given configuration as the default.
> This probably worked by pure luck before, but it's better to
> make the muxing explicitly set.
> 
> CC: Boris BREZILLON <boris.brezillon@free-electrons.com>
> Signed-off-by: Andreas Henriksson <andreas.henriksson@endian.se>

Thanks, I stacked it on at91-3.18-fixes-non-critical branch.

Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>

For the record, we chose to set this
pinctrl-names = "default";
property in the SoC file without the associated pinctrl-0 property
because there is not "default" setting: we never know if we would use
the slot A or slot B with different pins in play.
So, as we must add a pinctrl-0 property in the board anyway, we decided
to not add pinctrl-0 in the SoC while keeping pinctrl-names as it is
always needed (as you experienced the hard way ;-)).

Best regards,

> ---
>  arch/arm/boot/dts/at91sam9263.dtsi | 2 ++
>  1 file changed, 2 insertions(+)
> 
> v2: put pinctrl-names in dtsi instead as requested/suggested by Nicolas Ferre
> 
> 
> diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
> index bb23c2d..5e95a80 100644
> --- a/arch/arm/boot/dts/at91sam9263.dtsi
> +++ b/arch/arm/boot/dts/at91sam9263.dtsi
> @@ -834,6 +834,7 @@
>  				compatible = "atmel,hsmci";
>  				reg = <0xfff80000 0x600>;
>  				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
> +				pinctrl-names = "default";
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				clocks = <&mci0_clk>;
> @@ -845,6 +846,7 @@
>  				compatible = "atmel,hsmci";
>  				reg = <0xfff84000 0x600>;
>  				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
> +				pinctrl-names = "default";
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				clocks = <&mci1_clk>;
>
diff mbox

Patch

diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index bb23c2d..5e95a80 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -834,6 +834,7 @@ 
 				compatible = "atmel,hsmci";
 				reg = <0xfff80000 0x600>;
 				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
+				pinctrl-names = "default";
 				#address-cells = <1>;
 				#size-cells = <0>;
 				clocks = <&mci0_clk>;
@@ -845,6 +846,7 @@ 
 				compatible = "atmel,hsmci";
 				reg = <0xfff84000 0x600>;
 				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
+				pinctrl-names = "default";
 				#address-cells = <1>;
 				#size-cells = <0>;
 				clocks = <&mci1_clk>;