aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javier.martinez@collabora.co.uk>2015-02-26 16:08:51 -0500
committerKukjin Kim <kgene@kernel.org>2015-02-26 16:08:51 -0500
commitaf6ad88acbd66ddfe31066ebcf1e02f848ec406c (patch)
treec5ccf646ca8948b49dd9275306b4344692624ed6
parent1056a273ec2ce4446e38598c08ef782bbfe9bdc3 (diff)
ARM: dts: Mux XMMCnDATA[0] pad correctly for Exynos5420 boards
The Exynos5420 SoC has 3 sets of 8 pads used as data lines for the 3 MMC/SD/SDIO slots. These needs to be muxed as SD_n_DATA instead of a GPIO or external interrupt to allow the MMC controller to communicate with the attached cards or SDIO devices. Which data lines needs to be muxed as SD_n_DATA depends on the bus width used for data transfer: * bus-width = <1> needs SD_n_DATA[0] * bus-width = <4> needs SD_n_DATA[0-3] * bus-width = <8> needs SD_n_DATA[0-7] The Exynos5250-pinctrl.dtsi file that defines the groups of pins has SD_n_DATA[0] muxed for both sdn_bus1 and sdn_bus4 so just one of them needs to be included in the device node's pinctrl property. But Exynos5420-pinctrl has a different definition and only includes SD_n_DATA[1-3] for sdn_bus4. So for a bus-width = <4>, both sdn_bus1 and sdn_bus4 have to be in the dev pinctrl to mux all the needed pads. It seems all Exynos5420 boards had just cargo cult the pinctrl lines assuming that sdn_bus4 also included SD_n_DATA[0] and it only works because the bootloader muxes the pads correctly. But that is not the case for the devices not used by the bootloader such as WiFi modules. Add sdn_bus1 too in the nodes pinctrl to not rely on the bootloader. Suggested-by: Doug Anderson <dianders@chromium.org> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Kukjin Kim <kgene@kernel.org>
-rw-r--r--arch/arm/boot/dts/exynos5420-arndale-octa.dts4
-rw-r--r--arch/arm/boot/dts/exynos5420-peach-pit.dts4
-rw-r--r--arch/arm/boot/dts/exynos5420-smdk5420.dts4
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3.dts4
-rw-r--r--arch/arm/boot/dts/exynos5800-peach-pi.dts4
5 files changed, 10 insertions, 10 deletions
diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
index db2c1c4cd900..b82b6fa15f48 100644
--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -55,7 +55,7 @@
55 samsung,dw-mshc-sdr-timing = <0 4>; 55 samsung,dw-mshc-sdr-timing = <0 4>;
56 samsung,dw-mshc-ddr-timing = <0 2>; 56 samsung,dw-mshc-ddr-timing = <0 2>;
57 pinctrl-names = "default"; 57 pinctrl-names = "default";
58 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; 58 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
59 vmmc-supply = <&ldo10_reg>; 59 vmmc-supply = <&ldo10_reg>;
60 bus-width = <8>; 60 bus-width = <8>;
61 cap-mmc-highspeed; 61 cap-mmc-highspeed;
@@ -68,7 +68,7 @@
68 samsung,dw-mshc-sdr-timing = <2 3>; 68 samsung,dw-mshc-sdr-timing = <2 3>;
69 samsung,dw-mshc-ddr-timing = <1 2>; 69 samsung,dw-mshc-ddr-timing = <1 2>;
70 pinctrl-names = "default"; 70 pinctrl-names = "default";
71 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 71 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
72 vmmc-supply = <&ldo19_reg>; 72 vmmc-supply = <&ldo19_reg>;
73 vqmmc-supply = <&ldo13_reg>; 73 vqmmc-supply = <&ldo13_reg>;
74 bus-width = <4>; 74 bus-width = <4>;
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index ec86d9523935..c4db5aed8a8c 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -687,7 +687,7 @@
687 samsung,dw-mshc-sdr-timing = <0 4>; 687 samsung,dw-mshc-sdr-timing = <0 4>;
688 samsung,dw-mshc-ddr-timing = <0 2>; 688 samsung,dw-mshc-ddr-timing = <0 2>;
689 pinctrl-names = "default"; 689 pinctrl-names = "default";
690 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; 690 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
691 bus-width = <8>; 691 bus-width = <8>;
692}; 692};
693 693
@@ -701,7 +701,7 @@
701 samsung,dw-mshc-sdr-timing = <2 3>; 701 samsung,dw-mshc-sdr-timing = <2 3>;
702 samsung,dw-mshc-ddr-timing = <1 2>; 702 samsung,dw-mshc-ddr-timing = <1 2>;
703 pinctrl-names = "default"; 703 pinctrl-names = "default";
704 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 704 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
705 bus-width = <4>; 705 bus-width = <4>;
706}; 706};
707 707
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts
index 8be3d7b489ff..7a56852efada 100644
--- a/arch/arm/boot/dts/exynos5420-smdk5420.dts
+++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts
@@ -81,7 +81,7 @@
81 samsung,dw-mshc-sdr-timing = <0 4>; 81 samsung,dw-mshc-sdr-timing = <0 4>;
82 samsung,dw-mshc-ddr-timing = <0 2>; 82 samsung,dw-mshc-ddr-timing = <0 2>;
83 pinctrl-names = "default"; 83 pinctrl-names = "default";
84 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; 84 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
85 bus-width = <8>; 85 bus-width = <8>;
86 cap-mmc-highspeed; 86 cap-mmc-highspeed;
87 }; 87 };
@@ -93,7 +93,7 @@
93 samsung,dw-mshc-sdr-timing = <2 3>; 93 samsung,dw-mshc-sdr-timing = <2 3>;
94 samsung,dw-mshc-ddr-timing = <1 2>; 94 samsung,dw-mshc-ddr-timing = <1 2>;
95 pinctrl-names = "default"; 95 pinctrl-names = "default";
96 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 96 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
97 bus-width = <4>; 97 bus-width = <4>;
98 cap-sd-highspeed; 98 cap-sd-highspeed;
99 }; 99 };
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index 790fb4ce295d..edc25cf1d717 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -312,7 +312,7 @@
312 samsung,dw-mshc-sdr-timing = <0 4>; 312 samsung,dw-mshc-sdr-timing = <0 4>;
313 samsung,dw-mshc-ddr-timing = <0 2>; 313 samsung,dw-mshc-ddr-timing = <0 2>;
314 pinctrl-names = "default"; 314 pinctrl-names = "default";
315 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; 315 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
316 bus-width = <8>; 316 bus-width = <8>;
317 cap-mmc-highspeed; 317 cap-mmc-highspeed;
318}; 318};
@@ -324,7 +324,7 @@
324 samsung,dw-mshc-sdr-timing = <0 4>; 324 samsung,dw-mshc-sdr-timing = <0 4>;
325 samsung,dw-mshc-ddr-timing = <0 2>; 325 samsung,dw-mshc-ddr-timing = <0 2>;
326 pinctrl-names = "default"; 326 pinctrl-names = "default";
327 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 327 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
328 bus-width = <4>; 328 bus-width = <4>;
329 cap-sd-highspeed; 329 cap-sd-highspeed;
330}; 330};
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 06737c60d333..ca73fb2d2da5 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -649,7 +649,7 @@
649 samsung,dw-mshc-sdr-timing = <0 4>; 649 samsung,dw-mshc-sdr-timing = <0 4>;
650 samsung,dw-mshc-ddr-timing = <0 2>; 650 samsung,dw-mshc-ddr-timing = <0 2>;
651 pinctrl-names = "default"; 651 pinctrl-names = "default";
652 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; 652 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
653 bus-width = <8>; 653 bus-width = <8>;
654}; 654};
655 655
@@ -663,7 +663,7 @@
663 samsung,dw-mshc-sdr-timing = <2 3>; 663 samsung,dw-mshc-sdr-timing = <2 3>;
664 samsung,dw-mshc-ddr-timing = <1 2>; 664 samsung,dw-mshc-ddr-timing = <1 2>;
665 pinctrl-names = "default"; 665 pinctrl-names = "default";
666 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 666 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
667 bus-width = <4>; 667 bus-width = <4>;
668}; 668};
669 669