Skip to contentSkip to conversation

ARM: remove the sub-node and deprecated supports-highspeed property for dwmmc.

PATCH Superseded Jaehoon Chung 4 participants 13 messages Jun 30, 2014 – Jul 7, 2014

Subsystems (4)

v2 of 10 Superseded Latest is v10 →

lore
Share & tools
lore

Jaehoon Chung

author maintainer
#0 lore raw

v2 cover ARM: remove the sub-node and deprecated supports-highspeed property for dwmmc.

Since used the mmc_of_parse(), didn't parse the sub-node.
So we can remove the sub-node, because almost SoC used the only one card per a host. And supports-highspeed can be replaced to "cap-mmc/sd-highspeed" property.

Jaehoon Chung (5):
mmc: dw_mmc: modify the dt-binding for removing slot-node and
supports-highspeed
ARM: dts: exynos: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
ARM: dts: socfpga: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
ARM: dts: rockchip: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
mmc: dw_mmc: replace "disable-wp" from slot's quirk to host's quirk

 .../devicetree/bindings/mmc/exynos-dw-mshc.txt     |   17 ++++---------
 .../devicetree/bindings/mmc/k3-dw-mshc.txt         |   12 ++++-----
 .../devicetree/bindings/mmc/synopsys-dw-mshc.txt   |   12 ++++-----
 arch/arm/boot/dts/exynos4412-odroidx.dts           |    8 ++----
 arch/arm/boot/dts/exynos4412-origen.dts            |    8 ++----
 arch/arm/boot/dts/exynos4412-trats2.dts            |    8 ++----
 arch/arm/boot/dts/exynos5250-arndale.dts           |   18 ++++----------
 arch/arm/boot/dts/exynos5250-cros-common.dtsi      |   26 ++++++--------------
 arch/arm/boot/dts/exynos5250-smdk5250.dts          |   18 ++++----------
 arch/arm/boot/dts/exynos5250-snow.dts              |    6 ++---
 arch/arm/boot/dts/exynos5260-xyref5260.dts         |   18 ++++----------
 arch/arm/boot/dts/exynos5410-smdk5410.dts          |   18 ++++----------
 arch/arm/boot/dts/exynos5420-arndale-octa.dts      |   16 +++---------
 arch/arm/boot/dts/exynos5420-peach-pit.dts         |   16 +++---------
 arch/arm/boot/dts/exynos5420-smdk5420.dts          |   16 +++---------
 arch/arm/boot/dts/exynos5800-peach-pi.dts          |   16 +++---------
 arch/arm/boot/dts/rk3066a-bqcurie2.dts             |   16 +++---------
 arch/arm/boot/dts/socfpga_arria5.dtsi              |    9 +++----
 arch/arm/boot/dts/socfpga_cyclone5.dtsi            |    9 +++----
 arch/arm/boot/dts/socfpga_vt.dts                   |    9 +++----
 drivers/mmc/host/dw_mmc.c                          |   13 +++++-----
 21 files changed, 85 insertions(+), 204 deletions(-)
Signature · 1 line
1.7.9.5
author maintainer
#1 lore raw

PATCH v2 1/5 mmc: dw_mmc: modify the dt-binding for removing slot-node and supports-highspeed

Almost Soc is used the slot per a host.
Don't use the slot-node and deprecated the "supports-highsped" property. Instead, use the cap-mmc/sd-highspeed.

---
 .../devicetree/bindings/mmc/exynos-dw-mshc.txt     |   17 +++++------------
 .../devicetree/bindings/mmc/k3-dw-mshc.txt         |   12 +++++-------
 .../devicetree/bindings/mmc/synopsys-dw-mshc.txt   |   12 +++++-------
 3 files changed, 15 insertions(+), 26 deletions(-)
Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt +5 -12
index 532b1d4..9308325 100644
@@ -46,13 +46,14 @@ Required Properties:
       - if CIU clock divider value is 0 (that is divide by 1), both tx and rx
         phase shift clocks should be 0.
 
-Required properties for a slot:
+Required properties for a slot (Deprecated - Recommend to use one slot per a host):
 
 * gpios: specifies a list of gpios used for command, clock and data bus. The
   first gpio is the command line and the second gpio is the clock line. The
   rest of the gpios (depending on the bus-width property) are the data lines in
   no particular order. The format of the gpio specifier depends on the gpio
   controller.
+ (Deprecated - Refer to Documentaion/devicetree/binding/pinctrl/samsung-pinctrl.txt)
 
 Example:
 
@@ -69,21 +70,13 @@ Example:
 
 	dwmmc0 at 12200000 {
 		num-slots = <1>;
-		supports-highspeed;
+		cap-mmc-highspeed;
+		cap-sd-highspeed;
 		broken-cd;
 		fifo-depth = <0x80>;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-			gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
-				<&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
-				<&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>,
-				<&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
-				<&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>;
-		};
+		bus-width = <8>;
 	};
Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt +5 -7
index e5bc49f..3b35449 100644
@@ -34,13 +34,11 @@ Example:
 		num-slots = <1>;
 		vmmc-supply = <&ldo12>;
 		fifo-depth = <0x100>;
-		supports-highspeed;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd_pmx_pins &sd_cfg_func1 &sd_cfg_func2>;
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-			cd-gpios = <&gpio10 3 0>;
-		};
+		bus-width = <4>;
+		disable-wp;
+		cd-gpios = <&gpio10 3 0>;
+		cap-mmc-highspeed;
+		cap-sd-highspeed;
 	};
Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +5 -7
index 2d4a725..346c609 100644
@@ -67,7 +67,8 @@ Optional properties:
 * card-detect-delay: Delay in milli-seconds before detecting card after card
   insert event. The default value is 0.
 
-* supports-highspeed: Enables support for high speed cards (up to 50MHz)
+* supports-highspeed (DEPRECATED): Enables support for high speed cards (up to 50MHz)
+			   (use "cap-mmc-highspeed" or "cap-sd-highspeed" instead)
 
 * broken-cd: as documented in mmc core bindings.
 
@@ -98,14 +99,11 @@ board specific portions as listed below.
 		clock-frequency = <400000000>;
 		clock-freq-min-max = <400000 200000000>;
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		fifo-depth = <0x80>;
 		card-detect-delay = <200>;
 		vmmc-supply = <&buck8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
+		cap-sd-highspeed;
 	};
Signature · 1 line
1.7.9.5
author maintainer
#2 lore raw

PATCH v2 2/5 ARM: dts: exynos: unuse the slot-node and deprecated the supports-highspeed for dw-mmc

In reply to Jaehoon Chung

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated. "supports-highspeed" property can be replaced to "cap-sd/mmc-highspeed".

---
 arch/arm/boot/dts/exynos4412-odroidx.dts      |    8 ++------
 arch/arm/boot/dts/exynos4412-origen.dts       |    8 ++------
 arch/arm/boot/dts/exynos4412-trats2.dts       |    8 ++------
 arch/arm/boot/dts/exynos5250-arndale.dts      |   18 +++++------------
 arch/arm/boot/dts/exynos5250-cros-common.dtsi |   26 +++++++------------------
 arch/arm/boot/dts/exynos5250-smdk5250.dts     |   18 +++++------------
 arch/arm/boot/dts/exynos5250-snow.dts         |    6 ++----
 arch/arm/boot/dts/exynos5260-xyref5260.dts    |   18 +++++------------
 arch/arm/boot/dts/exynos5410-smdk5410.dts     |   18 +++++------------
 arch/arm/boot/dts/exynos5420-arndale-octa.dts |   16 ++++-----------
 arch/arm/boot/dts/exynos5420-peach-pit.dts    |   16 ++++-----------
 arch/arm/boot/dts/exynos5420-smdk5420.dts     |   16 ++++-----------
 arch/arm/boot/dts/exynos5800-peach-pi.dts     |   16 ++++-----------
 13 files changed, 51 insertions(+), 141 deletions(-)
arch/arm/boot/dts/exynos4412-odroidx.dts +2 -6
index 31db28a..778aec6 100644
@@ -45,17 +45,13 @@
 		status = "okay";
 
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	regulator_p3v3 {
arch/arm/boot/dts/exynos4412-origen.dts +2 -6
index e925c9f..de15114 100644
@@ -137,17 +137,13 @@
 		status = "okay";
 
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	codec at 13400000 {
arch/arm/boot/dts/exynos4412-trats2.dts +2 -6
index 7787844..65ab885 100644
@@ -520,7 +520,6 @@
 
 	mmc at 12550000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		non-removable;
 		card-detect-delay = <200>;
@@ -532,11 +531,8 @@
 		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
 		pinctrl-names = "default";
 		status = "okay";
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	serial at 13800000 {
arch/arm/boot/dts/exynos5250-arndale.dts +5 -13
index d0de1f5..42a3590 100644
@@ -401,7 +401,6 @@
 	mmc_0: mmc at 12200000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -410,17 +409,13 @@
 		vmmc-supply = <&mmc_reg>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc_2: mmc at 12220000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
@@ -428,12 +423,9 @@
 		vmmc-supply = <&mmc_reg>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-		};
+		bus-width = <4>;
+		disable-wp;
+		cap-sd-highspeed;
 	};
 
 	i2s0: i2s at 03830000 {
arch/arm/boot/dts/exynos5250-cros-common.dtsi +7 -19
index 89ac90f..af51361 100644
@@ -248,7 +248,6 @@
 
 	mmc at 12200000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -256,44 +255,33 @@
 		samsung,dw-mshc-ddr-timing = <1 2>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc at 12220000 {
 		num-slots = <1>;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			wp-gpios = <&gpc2 1 0>;
-		};
+		bus-width = <4>;
+		wp-gpios = <&gpc2 1 0>;
+		cap-sd-highspeed;
 	};
 
 	mmc at 12230000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
 		/* See board-specific dts files for pin setup */
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <4>;
+		cap-sd-highspeed;
 	};
 
 	spi_1: spi at 12d30000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +5 -13
index a794a70..e00ffc6 100644
@@ -282,7 +282,6 @@
 	mmc at 12200000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -290,29 +289,22 @@
 		samsung,dw-mshc-ddr-timing = <1 2>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc at 12220000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-		};
+		bus-width = <4>;
+		disable-wp;
+		cap-sd-highspeed;
 	};
 
 	spi_1: spi at 12d30000 {
arch/arm/boot/dts/exynos5250-snow.dts +2 -4
index 7bd2df1..fb66005 100644
@@ -240,10 +240,8 @@
 	 */
 	mmc at 12230000 {
 		status = "okay";
-		slot at 0 {
-			pinctrl-names = "default";
-			pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
-		};
+		pinctrl-names = "default";
+		pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
 	};
 
 	i2c at 12CD0000 {
arch/arm/boot/dts/exynos5260-xyref5260.dts +5 -13
index 8c84ab2..a803b60 100644
@@ -69,7 +69,7 @@
 	num-slots = <1>;
 	broken-cd;
 	bypass-smu;
-	supports-highspeed;
+	cap-mmc-highspeed;
 	supports-hs200-mode; /* 200 Mhz */
 	card-detect-delay = <200>;
 	samsung,dw-mshc-ciu-div = <3>;
@@ -77,27 +77,19 @@
 	samsung,dw-mshc-ddr-timing = <0 2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_rdqs &sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <8>;
-	};
+	bus-width = <8>;
 };
 
 &mmc_2 {
 	status = "okay";
 	num-slots = <1>;
-	supports-highspeed;
+	cap-sd-highspeed;
 	card-detect-delay = <200>;
 	samsung,dw-mshc-ciu-div = <3>;
 	samsung,dw-mshc-sdr-timing = <2 3>;
 	samsung,dw-mshc-ddr-timing = <1 2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-		disable-wp;
-	};
+	bus-width = <4>;
+	disable-wp;
 };
arch/arm/boot/dts/exynos5410-smdk5410.dts +5 -13
index 7275bbd..be3e025 100644
@@ -40,33 +40,25 @@
 &mmc_0 {
 	status = "okay";
 	num-slots = <1>;
-	supports-highspeed;
+	cap-mmc-highspeed;
 	broken-cd;
 	card-detect-delay = <200>;
 	samsung,dw-mshc-ciu-div = <3>;
 	samsung,dw-mshc-sdr-timing = <2 3>;
 	samsung,dw-mshc-ddr-timing = <1 2>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <8>;
-	};
+	bus-width = <8>;
 };
 
 &mmc_2 {
 	status = "okay";
 	num-slots = <1>;
-	supports-highspeed;
+	cap-sd-highspeed;
 	card-detect-delay = <200>;
 	samsung,dw-mshc-ciu-div = <3>;
 	samsung,dw-mshc-sdr-timing = <2 3>;
 	samsung,dw-mshc-ddr-timing = <1 2>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-		disable-wp;
-	};
+	bus-width = <4>;
+	disable-wp;
 };
 
 &uart0 {
arch/arm/boot/dts/exynos5420-arndale-octa.dts +4 -12
index 434fd9d..5f37b81 100644
@@ -50,7 +50,6 @@
 	mmc at 12200000 {
 		status = "okay";
 		broken-cd;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <0 4>;
@@ -58,16 +57,12 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc at 12220000 {
 		status = "okay";
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
@@ -75,11 +70,8 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	hsi2c_4: i2c at 12CA0000 {
arch/arm/boot/dts/exynos5420-peach-pit.dts +4 -12
index 7649982..76484a6 100644
@@ -174,7 +174,7 @@
 	num-slots = <1>;
 	broken-cd;
 	caps2-mmc-hs200-1_8v;
-	supports-highspeed;
+	cap-mmc-highspeed;
 	non-removable;
 	card-detect-delay = <200>;
 	clock-frequency = <400000000>;
@@ -183,17 +183,13 @@
 	samsung,dw-mshc-ddr-timing = <0 2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <8>;
-	};
+	bus-width = <8>;
 };
 
 &mmc_2 {
 	status = "okay";
 	num-slots = <1>;
-	supports-highspeed;
+	cap-sd-highspeed;
 	card-detect-delay = <200>;
 	clock-frequency = <400000000>;
 	samsung,dw-mshc-ciu-div = <3>;
@@ -201,11 +197,7 @@
 	samsung,dw-mshc-ddr-timing = <1 2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-	};
+	bus-width = <4>;
 };
 
 
arch/arm/boot/dts/exynos5420-smdk5420.dts +4 -12
index 6052aa9..8be3d7b 100644
@@ -76,34 +76,26 @@
 	mmc at 12200000 {
 		status = "okay";
 		broken-cd;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <0 4>;
 		samsung,dw-mshc-ddr-timing = <0 2>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc at 12220000 {
 		status = "okay";
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <4>;
+		cap-sd-highspeed;
 	};
 
 	dp-controller at 145B0000 {
arch/arm/boot/dts/exynos5800-peach-pi.dts +4 -12
index 2c2c137..3c52a81 100644
@@ -172,7 +172,7 @@
 	num-slots = <1>;
 	broken-cd;
 	caps2-mmc-hs200-1_8v;
-	supports-highspeed;
+	cap-mmc-highspeed;
 	non-removable;
 	card-detect-delay = <200>;
 	clock-frequency = <400000000>;
@@ -181,17 +181,13 @@
 	samsung,dw-mshc-ddr-timing = <0 2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <8>;
-	};
+	bus-width = <8>;
 };
 
 &mmc_2 {
 	status = "okay";
 	num-slots = <1>;
-	supports-highspeed;
+	cap-sd-highspeed;
 	card-detect-delay = <200>;
 	clock-frequency = <400000000>;
 	samsung,dw-mshc-ciu-div = <3>;
@@ -199,11 +195,7 @@
 	samsung,dw-mshc-ddr-timing = <1 2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-	};
+	bus-width = <4>;
 };
 
 
Signature · 1 line
1.7.9.5
#3 lore raw

PATCH v2 2/5 ARM: dts: exynos: unuse the slot-node and deprecated the supports-highspeed for dw-mmc

Hi Jaehoon,

Please check one thing below.

Quoted 44 lines · Jaehoon Chung

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated. "supports-highspeed" property can be replaced to "cap-sd/mmc-highspeed".

---

arch/arm/boot/dts/exynos5420-arndale- renamed from arch/arm/boot/dts/exynos5420-arndale-octa.dts +0 -0

octa.dts
index 434fd9d..5f37b81 100644

arch/arm/boot/dts/exynos5420-arndale-octa.dts +2 -7
@@ -50,7 +50,6 @@
 	mmc at 12200000 {
 		status = "okay";
 		broken-cd;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <0 4>;
@@ -58,16 +57,12 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc at 12220000 {
 		status = "okay";
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;

arch/arm/boot/dts/exynos5420-arndale-octa.dts line 73

Quoted 9 lines
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -5
@@ -75,11 +70,8 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <8>;

<4> is correct?

arch/arm/boot/dts/exynos5420-arndale-octa.dts line 74

Quoted 1 line
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -0
+		cap-mmc-highspeed;

Thanks,
Seungwon Jeon

author maintainer
#4 lore raw

PATCH v2 2/5 ARM: dts: exynos: unuse the slot-node and deprecated the supports-highspeed for dw-mmc

Hi, Seungwon.

I will fix it, and add dt-file related with exynos3250.

Best Regards,
Jaehoon Chung

Quoted 66 lines · Seungwon Jeon

Hi Jaehoon,

Please check one thing below.

Quoted 44 lines · Jaehoon Chung

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated. "supports-highspeed" property can be replaced to "cap-sd/mmc-highspeed".

---

arch/arm/boot/dts/exynos5420-arndale- renamed from arch/arm/boot/dts/exynos5420-arndale-octa.dts +0 -0

octa.dts
index 434fd9d..5f37b81 100644

arch/arm/boot/dts/exynos5420-arndale-octa.dts +2 -7
@@ -50,7 +50,6 @@
 	mmc at 12200000 {
 		status = "okay";
 		broken-cd;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <0 4>;
@@ -58,16 +57,12 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc at 12220000 {
 		status = "okay";
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;

arch/arm/boot/dts/exynos5420-arndale-octa.dts line 73

Quoted 9 lines
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -5
@@ -75,11 +70,8 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <8>;

<4> is correct?

arch/arm/boot/dts/exynos5420-arndale-octa.dts line 74

Quoted 1 line
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -0
+		cap-mmc-highspeed;

Thanks,
Seungwon Jeon

author maintainer
#5 lore raw

PATCH v2 3/5 ARM: dts: socfpga: unuse the slot-node and deprecated the supports-highspeed for dw-mmc

In reply to Jaehoon Chung

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated. "supports-highspeed" property can be replaced to "cap-sd/mmc-highspeed".

---
 arch/arm/boot/dts/socfpga_arria5.dtsi   |    9 +++------
 arch/arm/boot/dts/socfpga_cyclone5.dtsi |    9 +++------
 arch/arm/boot/dts/socfpga_vt.dts        |    9 +++------
 3 files changed, 9 insertions(+), 18 deletions(-)
arch/arm/boot/dts/socfpga_arria5.dtsi +3 -6
index 12d1c2c..468fc4c 100644
@@ -29,13 +29,10 @@
 
 		dwmmc0 at ff704000 {
 			num-slots = <1>;
-			supports-highspeed;
 			broken-cd;
-
-			slot at 0 {
-				reg = <0>;
-				bus-width = <4>;
-			};
+			bus-width = <4>;
+			cap-mmc-highspeed;
+			cap-sd-highspeed;
 		};
 
 		sysmgr at ffd08000 {
arch/arm/boot/dts/socfpga_cyclone5.dtsi +3 -6
index bf51182..1ee03c4 100644
@@ -30,13 +30,10 @@
 
 		dwmmc0 at ff704000 {
 			num-slots = <1>;
-			supports-highspeed;
 			broken-cd;
-
-			slot at 0 {
-				reg = <0>;
-				bus-width = <4>;
-			};
+			bus-width = <4>;
+			cap-mmc-highspeed;
+			cap-sd-highspeed;
 		};
 
 		ethernet at ff702000 {
arch/arm/boot/dts/socfpga_vt.dts +3 -6
index 09792b4..f9345e0 100644
@@ -43,13 +43,10 @@
 
 		dwmmc0 at ff704000 {
 			num-slots = <1>;
-			supports-highspeed;
 			broken-cd;
-
-			slot at 0 {
-				reg = <0>;
-				bus-width = <4>;
-			};
+			bus-width = <4>;
+			cap-mmc-highspeed;
+			cap-sd-highspeed;
 		};
 
 		ethernet at ff700000 {
Signature · 1 line
1.7.9.5
author maintainer
#6 lore raw

PATCH v2 4/5 ARM: dts: rockchip: unuse the slot-node and deprecated the supports-highspeed for dw-mmc

In reply to Jaehoon Chung

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated. "supports-highspeed" property can be replaced to "cap-sd/mmc-highspeed".

---
 arch/arm/boot/dts/rk3066a-bqcurie2.dts |   16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)
arch/arm/boot/dts/rk3066a-bqcurie2.dts +4 -12
index afb3273..ecea889 100644
@@ -59,12 +59,8 @@
 			pinctrl-names = "default";
 			pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4>;
 			vmmc-supply = <&vcc_sd0>;
-
-			slot at 0 {
-				reg = <0>;
-				bus-width = <4>;
-				disable-wp;
-			};
+			bus-width = <4>;
+			disable-wp;
 		};
 
 		dwmmc at 10218000 { /* wifi */
@@ -74,12 +70,8 @@
 
 			pinctrl-names = "default";
 			pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
-
-			slot at 0 {
-				reg = <0>;
-				bus-width = <4>;
-				disable-wp;
-			};
+			bus-width = <4>;
+			disable-wp;
 		};
 
 		gpio-keys {
Signature · 1 line
1.7.9.5
#7 lore raw

PATCH v2 4/5 ARM: dts: rockchip: unuse the slot-node and deprecated the supports-highspeed for dw-mmc

Am Montag, 30. Juni 2014, 20:49:18 schrieb Jaehoon Chung:

Quoted 9 lines

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated. "supports-highspeed" property can be replaced to "cap-sd/mmc-highspeed".

Quoted 38 lines
---
 arch/arm/boot/dts/rk3066a-bqcurie2.dts |   16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)
(quoted diff) +0 -0

b/arch/arm/boot/dts/rk3066a-bqcurie2.dts index afb3273..ecea889 100644

arch/arm/boot/dts/rk3066a-bqcurie2.dts +4 -12
@@ -59,12 +59,8 @@
 			pinctrl-names = "default";
 			pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4>;
 			vmmc-supply = <&vcc_sd0>;
-
-			slot@0 {
-				reg = <0>;
-				bus-width = <4>;
-				disable-wp;
-			};
+			bus-width = <4>;
+			disable-wp;
 		};
 
 		dwmmc@10218000 { /* wifi */
@@ -74,12 +70,8 @@
 
 			pinctrl-names = "default";
 			pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
-
-			slot@0 {
-				reg = <0>;
-				bus-width = <4>;
-				disable-wp;
-			};
+			bus-width = <4>;
+			disable-wp;
 		};
 
 		gpio-keys {
author maintainer
#8 lore raw

PATCH v2 5/5 mmc: dw_mmc: replace "disable-wp" from slot's quirk to host's quirk

In reply to Jaehoon Chung

Replaced the "disable-wp" into host's quirks.
(Because the slot-node is removed at dt-file.)

---
 drivers/mmc/host/dw_mmc.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
drivers/mmc/host/dw_mmc.c +6 -7
index 1ac227c..6c5d696 100644
@@ -994,10 +994,11 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
 {
 	int read_only;
 	struct dw_mci_slot *slot = mmc_priv(mmc);
+	struct dw_mci_board *brd = slot->host->pdata;
 	int gpio_ro = mmc_gpio_get_ro(mmc);
 
 	/* Use platform get_ro function, else try on board write protect */
-	if (slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT)
+	if (brd->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT)
 		read_only = 0;
 	else if (!IS_ERR_VALUE(gpio_ro))
 		read_only = gpio_ro;
@@ -2006,12 +2007,7 @@ static struct device_node *dw_mci_of_find_slot_node(struct device *dev, u8 slot)
 static struct dw_mci_of_slot_quirks {
 	char *quirk;
 	int id;
-} of_slot_quirks[] = {
-	{
-		.quirk	= "disable-wp",
-		.id	= DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT,
-	},
-};
+} of_slot_quirks[] = {};
 
 static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)
 {
@@ -2238,6 +2234,9 @@ static struct dw_mci_of_quirks {
 	{
 		.quirk	= "broken-cd",
 		.id	= DW_MCI_QUIRK_BROKEN_CARD_DETECTION,
+	},{
+		.quirk	= "disable-wp",
+		.id	= DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT,
 	},
 };
 
Signature · 1 line
1.7.9.5
#9 lore raw

PATCH v2 5/5 mmc: dw_mmc: replace "disable-wp" from slot's quirk to host's quirk

Sorry for late review.
If you're in progress for next, please consider it.

Quoted 13 lines · Jaehoon Chung

Replaced the "disable-wp" into host's quirks.
(Because the slot-node is removed at dt-file.)

---
 drivers/mmc/host/dw_mmc.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
drivers/mmc/host/dw_mmc.c +0 -0
index 1ac227c..6c5d696 100644

drivers/mmc/host/dw_mmc.c static int dw_mci_get_ro(struct mmc_host *mmc) · line 1000

Quoted 8 lines
drivers/mmc/host/dw_mmc.c +1 -1
@@ -994,10 +994,11 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
 {
 	int read_only;
 	struct dw_mci_slot *slot = mmc_priv(mmc);
+	struct dw_mci_board *brd = slot->host->pdata;
 	int gpio_ro = mmc_gpio_get_ro(mmc);
 
 	/* Use platform get_ro function, else try on board write protect */
-	if (slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT)

It would be better to use host->quirks instead of brd->quirks It's finally updated with host->pdata->quirks on probing.

Thanks,
Seungwon Jeon

author maintainer
#10 lore raw

PATCH v2 5/5 mmc: dw_mmc: replace "disable-wp" from slot's quirk to host's quirk

Hi, Seungwon.

Quoted 1 line · Seungwon Jeon

Sorry for late review.

Never mind. :)

Quoted 22 lines

If you're in progress for next, please consider it.

Quoted 19 lines · Jaehoon Chung

Replaced the "disable-wp" into host's quirks.
(Because the slot-node is removed at dt-file.)

---
 drivers/mmc/host/dw_mmc.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
drivers/mmc/host/dw_mmc.c +1 -0
index 1ac227c..6c5d696 100644
@@ -994,10 +994,11 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
 {
 	int read_only;
 	struct dw_mci_slot *slot = mmc_priv(mmc);
+	struct dw_mci_board *brd = slot->host->pdata;
 	int gpio_ro = mmc_gpio_get_ro(mmc);
 
Quoted 4 lines

drivers/mmc/host/dw_mmc.c static int dw_mci_get_ro(struct mmc_host *mmc) · line 1000

Quoted 2 lines
drivers/mmc/host/dw_mmc.c +0 -1
 	/* Use platform get_ro function, else try on board write protect */
-	if (slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT)

It would be better to use host->quirks instead of brd->quirks It's finally updated with host->pdata->quirks on probing.

It's reasonable, i will fix it and resend.

Best Regards,
Jaehoon Chung

Quoted 5 lines

Thanks,
Seungwon Jeon

#11 lore raw

v2 cover ARM: remove the sub-node and deprecated supports-highspeed property for dwmmc.

In reply to Jaehoon Chung

Hi Jaehoon,

Quoted 4 lines · Jaehoon Chung

Since used the mmc_of_parse(), didn't parse the sub-node.
So we can remove the sub-node, because almost SoC used the only one card per a host. And supports-highspeed can be replaced to "cap-mmc/sd-highspeed" property.

Quoted 10 lines

Jaehoon Chung (5):
mmc: dw_mmc: modify the dt-binding for removing slot-node and
supports-highspeed
ARM: dts: exynos: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
ARM: dts: socfpga: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
ARM: dts: rockchip: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
mmc: dw_mmc: replace "disable-wp" from slot's quirk to host's quirk

It is a good practice to include revision history for subsequent versions.

Tested on Exynos 5250 based Snow and Arndale boards. Works fine now.

Signature · 2 lines
Regards,
Sachin.
author maintainer
#12 lore raw

v2 cover ARM: remove the sub-node and deprecated supports-highspeed property for dwmmc.

Hi, All.

Any other comment or review? I hope that these are merged.

Best Regards,
Jaehoon Chung

Quoted 24 lines · Sachin Kamat

Hi Jaehoon,

Quoted 4 lines · Jaehoon Chung

Since used the mmc_of_parse(), didn't parse the sub-node.
So we can remove the sub-node, because almost SoC used the only one card per a host. And supports-highspeed can be replaced to "cap-mmc/sd-highspeed" property.

Quoted 10 lines

Jaehoon Chung (5):
mmc: dw_mmc: modify the dt-binding for removing slot-node and
supports-highspeed
ARM: dts: exynos: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
ARM: dts: socfpga: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
ARM: dts: rockchip: unuse the slot-node and deprecated the
supports-highspeed for dw-mmc
mmc: dw_mmc: replace "disable-wp" from slot's quirk to host's quirk

It is a good practice to include revision history for subsequent versions.

Tested on Exynos 5250 based Snow and Arndale boards. Works fine now.