Skip to contentSkip to conversation

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

PATCH Superseded Jaehoon Chung 7 participants 24 messages Aug 7, 2014 – Aug 27, 2014

Subsystems (4)
lore
Share & tools
lore

Jaehoon Chung

author maintainer
#0 lore raw

v10 cover ARM: remove the sub-node and deprecate 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 with "cap-mmc/sd-highspeed" property.

Changelog V10:
- Rebased for next.
- Remove conflict
Changelog V9:
- Fix typos.
- Relocated the warning message.
- Change patch's sequence.
Changelog V8:
- Add the warning message to notice that slot-node was removed. (As Doug's suggestion)
Changelog V7:
- Fixed typo and modified the commit message.
Changelog V6:
- Fixed Wrong bit control for host's quirks and rename.
- Add "Acked-by" for each SoC maintainers.
Changelog V5:
- Rebased on v3.16-rc4.
- Add Acked-by.
Changelog V4:
- Fix the checkpatch error.
Changelog V3:
- Fix the wrong bus-width value.
- Use the slot->host->quirks instead of brq->quirks.
- Add tested-by and reviewd-by.
Changelog V2:
- Add the "mmc: dw_mmc: replace "disable-wp" from slot's quirks to host's quirk"

Jaehoon Chung (5):
mmc: dw_mmc: Slot quirk "disable-wp" is deprecated.
mmc: dw_mmc: modify the dt-binding for removing slot-node and
supports-highspeed
ARM: dts: exynos: unuse the slot-node and deprecate the
supports-highspeed for dw-mmc
ARM: dts: socfpga: unuse the slot-node and deprecate the
supports-highspeed for dw-mmc
ARM: dts: rockchip: unuse the slot-node and deprecate the
supports-highspeed for dw-mmc

 .../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-odroid-common.dtsi    |    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      |   25 ++++++--------------
 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             |   15 ++++--------
 arch/arm/boot/dts/rk3188-radxarock.dts             |    7 ++----
 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                          |   11 +++++++--
 include/linux/mmc/dw_mmc.h                         |    2 ++
 23 files changed, 92 insertions(+), 202 deletions(-)
Signature · 1 line
1.7.9.5
author maintainer
#1 lore raw

PATCH v10 1/5 mmc: dw_mmc: Slot quirk "disable-wp" is deprecated.

Slot quirks "disable-wp" is deprecated. Instead, use the host quirk "disable-wp". (Because the slot-node is removed in dt-file.)

---
 drivers/mmc/host/dw_mmc.c  |   11 +++++++++--
 include/linux/mmc/dw_mmc.h |    2 ++
 2 files changed, 11 insertions(+), 2 deletions(-)
drivers/mmc/host/dw_mmc.c +9 -2
index 1ac227c..47b52cc 100644
@@ -997,7 +997,8 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
 	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 ((slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT) ||
+			(slot->host->quirks & DW_MCI_QUIRK_NO_WRITE_PROTECT))
 		read_only = 0;
 	else if (!IS_ERR_VALUE(gpio_ro))
 		read_only = gpio_ro;
@@ -2021,8 +2022,11 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)
 
 	/* get quirks */
 	for (idx = 0; idx < ARRAY_SIZE(of_slot_quirks); idx++)
-		if (of_get_property(np, of_slot_quirks[idx].quirk, NULL))
+		if (of_get_property(np, of_slot_quirks[idx].quirk, NULL)) {
+			dev_warn(dev, "Slot quirk %s is deprecated\n",
+					of_slot_quirks[idx].quirk);
 			quirks |= of_slot_quirks[idx].id;
+		}
 
 	return quirks;
 }
@@ -2238,6 +2242,9 @@ static struct dw_mci_of_quirks {
 	{
 		.quirk	= "broken-cd",
 		.id	= DW_MCI_QUIRK_BROKEN_CARD_DETECTION,
+	}, {
+		.quirk	= "disable-wp",
+		.id	= DW_MCI_QUIRK_NO_WRITE_PROTECT,
 	},
 };
 
include/linux/mmc/dw_mmc.h +2 -0
index babaea9..29ce014 100644
@@ -213,6 +213,8 @@ struct dw_mci_dma_ops {
 #define DW_MCI_QUIRK_HIGHSPEED			BIT(2)
 /* Unreliable card detection */
 #define DW_MCI_QUIRK_BROKEN_CARD_DETECTION	BIT(3)
+/* No write protect */
+#define DW_MCI_QUIRK_NO_WRITE_PROTECT		BIT(4)
 
 /* Slot level quirks */
 /* This slot has no write protect */
Signature · 1 line
1.7.9.5
Applied
#2 lore raw

PATCH v10 1/5 mmc: dw_mmc: Slot quirk "disable-wp" is deprecated.

Quoted 9 lines · Jaehoon Chung

Slot quirks "disable-wp" is deprecated. Instead, use the host quirk "disable-wp". (Because the slot-node is removed in dt-file.)

Thanks! Applied for next!

Kind regards
Uffe

Quoted 58 lines
---
 drivers/mmc/host/dw_mmc.c  |   11 +++++++++--
 include/linux/mmc/dw_mmc.h |    2 ++
 2 files changed, 11 insertions(+), 2 deletions(-)
drivers/mmc/host/dw_mmc.c +9 -2
index 1ac227c..47b52cc 100644
@@ -997,7 +997,8 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
        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 ((slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT) ||
+                       (slot->host->quirks & DW_MCI_QUIRK_NO_WRITE_PROTECT))
                read_only = 0;
        else if (!IS_ERR_VALUE(gpio_ro))
                read_only = gpio_ro;
@@ -2021,8 +2022,11 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)
 
        /* get quirks */
        for (idx = 0; idx < ARRAY_SIZE(of_slot_quirks); idx++)
-               if (of_get_property(np, of_slot_quirks[idx].quirk, NULL))
+               if (of_get_property(np, of_slot_quirks[idx].quirk, NULL)) {
+                       dev_warn(dev, "Slot quirk %s is deprecated\n",
+                                       of_slot_quirks[idx].quirk);
                        quirks |= of_slot_quirks[idx].id;
+               }
 
        return quirks;
 }
@@ -2238,6 +2242,9 @@ static struct dw_mci_of_quirks {
        {
                .quirk  = "broken-cd",
                .id     = DW_MCI_QUIRK_BROKEN_CARD_DETECTION,
+       }, {
+               .quirk  = "disable-wp",
+               .id     = DW_MCI_QUIRK_NO_WRITE_PROTECT,
        },
 };
 
include/linux/mmc/dw_mmc.h +2 -1
index babaea9..29ce014 100644
@@ -213,6 +213,8 @@ struct dw_mci_dma_ops {
 #define DW_MCI_QUIRK_HIGHSPEED                 BIT(2)
 /* Unreliable card detection */
 #define DW_MCI_QUIRK_BROKEN_CARD_DETECTION     BIT(3)
+/* No write protect */
+#define DW_MCI_QUIRK_NO_WRITE_PROTECT          BIT(4)
 
 /* Slot level quirks */
 /* This slot has no write protect */
--

1.7.9.5

author maintainer
#3 lore raw

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

In reply to Jaehoon Chung

Almost all SoCs use one slot per host controller.
(Even if controller can support the multiple slot, Recommend to use one slot per host controller.) Don't use the slot-node and deprecate the "supports-highspeed" 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..6cd3525 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 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 Documentation/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
Applied
#4 lore raw

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

Quoted 11 lines · Jaehoon Chung

Almost all SoCs use one slot per host controller.
(Even if controller can support the multiple slot, Recommend to use one slot per host controller.) Don't use the slot-node and deprecate the "supports-highspeed" property.
Instead, use the cap-mmc/sd-highspeed.

Thanks! Applied for next!

Kind regards
Uffe

Quoted 109 lines
---
 .../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..6cd3525 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 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 Documentation/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 -8
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;
        };
--

1.7.9.5

author maintainer
#5 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate 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 with "cap-sd/mmc-highspeed".

---
 arch/arm/boot/dts/exynos4412-odroid-common.dtsi |    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   |   25 +++++++----------------
 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(+), 140 deletions(-)
arch/arm/boot/dts/exynos4412-odroid-common.dtsi +2 -6
index 6d6d23c..f5c0f81 100644
@@ -54,17 +54,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;
 	};
 
 	watchdog at 10060000 {
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 11967f4..5e066cd 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 -18
index e603e9c..89034fd 100644
@@ -89,7 +89,6 @@
 
 	mmc at 12200000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -97,33 +96,25 @@
 		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>;
@@ -131,10 +122,8 @@
 		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 b4b35ad..6a0f4c0 100644
@@ -284,7 +284,6 @@
 	mmc at 12200000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -292,29 +291,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 f2b8c41..eb437f6 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..70a559c 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 = <4>;
+		cap-sd-highspeed;
 	};
 
 	hsi2c_4: i2c at 12CA0000 {
arch/arm/boot/dts/exynos5420-peach-pit.dts +4 -12
index 228a6b1..7b1ed2c 100644
@@ -187,7 +187,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>;
@@ -196,17 +196,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>;
@@ -214,11 +210,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 f3ee48b..a587dd6 100644
@@ -185,7 +185,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>;
@@ -194,17 +194,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>;
@@ -212,11 +208,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
author maintainer
#6 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Hi, Kukjin.

Socfpga and Rockchip were queued into each SoC tree.
I want to know whether this patch is queued or not into Samsung-Soc tree. Do you have any other plan for this patch?

Best Regards,
Jaehoon Chung

Quoted 545 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 with "cap-sd/mmc-highspeed".

---
 arch/arm/boot/dts/exynos4412-odroid-common.dtsi |    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   |   25 +++++++----------------
 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(+), 140 deletions(-)
arch/arm/boot/dts/exynos4412-odroid-common.dtsi +2 -6
index 6d6d23c..f5c0f81 100644
@@ -54,17 +54,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;
 	};
 
 	watchdog at 10060000 {
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 11967f4..5e066cd 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 -18
index e603e9c..89034fd 100644
@@ -89,7 +89,6 @@
 
 	mmc at 12200000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -97,33 +96,25 @@
 		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>;
@@ -131,10 +122,8 @@
 		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 b4b35ad..6a0f4c0 100644
@@ -284,7 +284,6 @@
 	mmc at 12200000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -292,29 +291,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 f2b8c41..eb437f6 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..70a559c 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 = <4>;
+		cap-sd-highspeed;
 	};
 
 	hsi2c_4: i2c at 12CA0000 {
arch/arm/boot/dts/exynos5420-peach-pit.dts +4 -12
index 228a6b1..7b1ed2c 100644
@@ -187,7 +187,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>;
@@ -196,17 +196,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>;
@@ -214,11 +210,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 f3ee48b..a587dd6 100644
@@ -185,7 +185,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>;
@@ -194,17 +194,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>;
@@ -212,11 +208,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>;
 };
 
 
#7 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Hi Jaehoon,

Am 18.08.2014 14:23, schrieb Jaehoon Chung:

Quoted 3 lines

Socfpga and Rockchip were queued into each SoC tree.
I want to know whether this patch is queued or not into Samsung-Soc tree. Do you have any other plan for this patch?

It isn't applied in his tree:

http://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/

In fact Kukjin has not applied any patches for 3 weeks now, which likely means he's on vacation. I am hoping he will review this and the other pending conflicting patches to decide on a merge order and fix any trivial conflicts himself. ;)

Cheers,
Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#8 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Quoted 7 lines · Andreas F?rber

Hi Jaehoon,

Am 18.08.2014 14:23, schrieb Jaehoon Chung:

Quoted 3 lines

Socfpga and Rockchip were queued into each SoC tree.
I want to know whether this patch is queued or not into Samsung-Soc tree. Do you have any other plan for this patch?

Quoted 9 lines

It isn't applied in his tree:

http://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/

In fact Kukjin has not applied any patches for 3 weeks now, which likely means he's on vacation. I am hoping he will review this and the other pending conflicting patches to decide on a merge order and fix any trivial conflicts himself. ;)

Oh, I thought it has been queued in previous merge window with my ack.

OK, I've applied this in my tree for 3.18.

Thanks,
Kukjin

#9 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Am 18.08.2014 18:54, schrieb Kukjin Kim:

Quoted 13 lines · Andreas F?rber
Quoted 12 lines

Hi Jaehoon,

Am 18.08.2014 14:23, schrieb Jaehoon Chung:

Quoted 4 lines

Socfpga and Rockchip were queued into each SoC tree.
I want to know whether this patch is queued or not into Samsung-Soc tree.
Do you have any other plan for this patch?

It isn't applied in his tree:

http://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/

Quoted 8 lines
Quoted 5 lines

In fact Kukjin has not applied any patches for 3 weeks now, which likely means he's on vacation. I am hoping he will review this and the other pending conflicting patches to decide on a merge order and fix any trivial conflicts himself. ;)

Oh, I thought it has been queued in previous merge window with my ack.

OK, I've applied this in my tree for 3.18.

So, are you dropping the snow mmc pinctrl patch Doug asked you to queue before this one, and are you merging this with my exynos5250 cros-common/style cleanups yourself or do I need yet another respin?

Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#10 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Quoted 19 lines · Andreas F?rber

Am 18.08.2014 18:54, schrieb Kukjin Kim:

Quoted 18 lines · Andreas F?rber
Quoted 17 lines

Hi Jaehoon,

Am 18.08.2014 14:23, schrieb Jaehoon Chung:

Quoted 4 lines

Socfpga and Rockchip were queued into each SoC tree.
I want to know whether this patch is queued or not into Samsung-Soc tree.
Do you have any other plan for this patch?

It isn't applied in his tree:

http://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/

In fact Kukjin has not applied any patches for 3 weeks now, which likely means he's on vacation. I am hoping he will review this and the other pending conflicting patches to decide on a merge order and fix any trivial conflicts himself. ;)

Quoted 8 lines
Quoted 3 lines

Oh, I thought it has been queued in previous merge window with my ack.

OK, I've applied this in my tree for 3.18.

So, are you dropping the snow mmc pinctrl patch Doug asked you to queue before this one, and are you merging this with my exynos5250 cros-common/style cleanups yourself or do I need yet another respin?

Hi Andreas,

Thanks for your gentle reminder and I think I can handle it when I apply it in my tree :)

Note I will check them today and if any problems, I'll let you know.

- Kukjin

author maintainer
#11 lore raw

PATCH v10 3/5 ARM: dts: exynos: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

In reply to Kukjin Kim

Hi, Kukjin

Quoted 12 lines · Kukjin Kim
Quoted 11 lines · Andreas F?rber

Hi Jaehoon,

Am 18.08.2014 14:23, schrieb Jaehoon Chung:

Quoted 3 lines

Socfpga and Rockchip were queued into each SoC tree.
I want to know whether this patch is queued or not into Samsung-Soc tree. Do you have any other plan for this patch?

It isn't applied in his tree:

http://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/

Quoted 8 lines
Quoted 5 lines

In fact Kukjin has not applied any patches for 3 weeks now, which likely means he's on vacation. I am hoping he will review this and the other pending conflicting patches to decide on a merge order and fix any trivial conflicts himself. ;)

Oh, I thought it has been queued in previous merge window with my ack.

OK, I've applied this in my tree for 3.18.

Thanks!

Best Regards,
Jaehoon Chung

Quoted 4 lines

Thanks,
Kukjin

author maintainer
#12 lore raw

PATCH v10 4/5 ARM: dts: socfpga: unuse the slot-node and deprecate 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 with "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
#13 lore raw

PATCH v10 4/5 ARM: dts: socfpga: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Quoted 6 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 with "cap-sd/mmc-highspeed".

Quoted 6 lines

---

I've queued this patch in my tree for v3.18.

Thanks,
Dinh

Quoted 76 lines
 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 -7
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 {
--

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author maintainer
#14 lore raw

PATCH v10 5/5 ARM: dts: rockchip: unuse the slot-node and deprecate 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 with "cap-sd/mmc-highspeed".

---
 arch/arm/boot/dts/rk3066a-bqcurie2.dts |   15 ++++-----------
 arch/arm/boot/dts/rk3188-radxarock.dts |    7 ++-----
 2 files changed, 6 insertions(+), 16 deletions(-)
arch/arm/boot/dts/rk3066a-bqcurie2.dts +4 -11
index 042f821d..665dd56 100644
@@ -150,12 +150,8 @@
 	num-slots = <1>;
 	status = "okay";
 	vmmc-supply = <&vcc_sd0>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-		disable-wp;
-	};
+	bus-width = <4>;
+	disable-wp;
 };
 
 &mmc1 { /* wifi */
@@ -166,11 +162,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;
 };
 
 &uart0 {
arch/arm/boot/dts/rk3188-radxarock.dts +2 -5
index 171b610..ef72faf 100644
@@ -181,11 +181,8 @@
 	status = "okay";
 	vmmc-supply = <&vcc_sd0>;
 
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-		disable-wp;
-	};
+	bus-width = <4>;
+	disable-wp;
 };
 
 &pinctrl {
Signature · 1 line
1.7.9.5
#15 lore raw

PATCH v10 5/5 ARM: dts: rockchip: unuse the slot-node and deprecate the supports-highspeed for dw-mmc

Am Donnerstag, 7. August 2014, 16:38:02 schrieb Jaehoon Chung:

Quoted 11 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 with "cap-sd/mmc-highspeed".

I've added this one to my queue for 3.18

Heiko

Quoted 56 lines
---
 arch/arm/boot/dts/rk3066a-bqcurie2.dts |   15 ++++-----------
 arch/arm/boot/dts/rk3188-radxarock.dts |    7 ++-----
 2 files changed, 6 insertions(+), 16 deletions(-)
(quoted diff) +0 -0

b/arch/arm/boot/dts/rk3066a-bqcurie2.dts index 042f821d..665dd56 100644

arch/arm/boot/dts/rk3066a-bqcurie2.dts +4 -11
@@ -150,12 +150,8 @@
 	num-slots = <1>;
 	status = "okay";
 	vmmc-supply = <&vcc_sd0>;
-
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-		disable-wp;
-	};
+	bus-width = <4>;
+	disable-wp;
 };
 
 &mmc1 { /* wifi */
@@ -166,11 +162,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;
 };
 
 &uart0 {
(quoted diff) +0 -0

b/arch/arm/boot/dts/rk3188-radxarock.dts index 171b610..ef72faf 100644

arch/arm/boot/dts/rk3188-radxarock.dts +2 -5
@@ -181,11 +181,8 @@
 	status = "okay";
 	vmmc-supply = <&vcc_sd0>;
 
-	slot at 0 {
-		reg = <0>;
-		bus-width = <4>;
-		disable-wp;
-	};
+	bus-width = <4>;
+	disable-wp;
 };
 
 &pinctrl {
#16 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

In reply to Jaehoon Chung
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 with "cap-mmc/sd-highspeed" property.

Would it be better to fix parsing of the device tree, and not to change all the device trees?

Someone will want to do two slots sooner or later...

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
author maintainer
#17 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Quoted 11 lines · Pavel Machek
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 with "cap-mmc/sd-highspeed" property.

Would it be better to fix parsing of the device tree, and not to change all the device trees?

Someone will want to do two slots sooner or later...

First, I had considered that controller can be supported the multiple slot. But MMC maintainers and other people suggested that consider the only one card per a host. Two slots or more don't have any benefit, (power or performance, etc).

Best Regards,
Jaehoon Chung

#18 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Quoted 10 lines · Jaehoon Chung
Quoted 9 lines · Pavel Machek
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 with "cap-mmc/sd-highspeed" property.

Would it be better to fix parsing of the device tree, and not to change all the device trees?

Quoted 6 lines
Quoted 2 lines

Someone will want to do two slots sooner or later...

First, I had considered that controller can be supported the multiple slot. But MMC maintainers and other people suggested that consider the only one card per a host. Two slots or more don't have any benefit, (power or performance, etc).

Would you elaborate?

If I have a device like a phone, I may want to put one "slot" inside phone for basic system, and offer second slot for user expansion (initially empty).

Or I may want to have internal slot with a card to boot from and have external slot (initially empty) for system update for embedded system.

I see quite an obvious benefit there.
Pavel

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
author maintainer
#19 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Quoted 18 lines · Pavel Machek
Quoted 10 lines · Jaehoon Chung
Quoted 9 lines · Pavel Machek
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 with "cap-mmc/sd-highspeed" property.

Would it be better to fix parsing of the device tree, and not to change all the device trees?

Quoted 6 lines
Quoted 2 lines

Someone will want to do two slots sooner or later...

First, I had considered that controller can be supported the multiple slot. But MMC maintainers and other people suggested that consider the only one card per a host. Two slots or more don't have any benefit, (power or performance, etc).

Quoted 5 lines

Would you elaborate?

If I have a device like a phone, I may want to put one "slot" inside phone for basic system, and offer second slot for user expansion (initially empty).

if multiple slot is supported, then a mmcqd should be processing for multiple slots. It's too inefficient, and affect the whole performance reduction.

If want to offer the second slot for user expansion, add the host for expansion slot. Almost All SoC didn't use the multiple slot per a host controller for eMMC/SD/SDIO.

If Some device(Phone) supports the SD-card and eMMC, then there are two Host IP. One Host IP is used for eMMC, other is used for SD-card.

this is H/W design issue.

a) You means the below,

One Host IP -------- eMMC

		|
		---- SD
		|
		---- SDIO

b) We means the below
One Host IP -------- eMMC
One Host IP -------- SD
One Host IP -------- SDIO

In now, I knew every SoC have used like b) type. I didn't see a) type (especially, dwmmc's case).

If i missed something, let me know, plz.

Best Regards,
Jaehoon Chung

Quoted 7 lines

Or I may want to have internal slot with a card to boot from and have external slot (initially empty) for system update for embedded system.

I see quite an obvious benefit there.
Pavel

author maintainer
#20 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Quoted 19 lines · Jaehoon Chung
Quoted 18 lines · Pavel Machek
Quoted 16 lines · Jaehoon Chung
Quoted 11 lines · Pavel Machek
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 with "cap-mmc/sd-highspeed" property.

Would it be better to fix parsing of the device tree, and not to change all the device trees?

Someone will want to do two slots sooner or later...

First, I had considered that controller can be supported the multiple slot. But MMC maintainers and other people suggested that consider the only one card per a host. Two slots or more don't have any benefit, (power or performance, etc).

Quoted 8 lines
Quoted 5 lines

Would you elaborate?

If I have a device like a phone, I may want to put one "slot" inside phone for basic system, and offer second slot for user expansion (initially empty).

if multiple slot is supported, then a mmcqd should be processing for multiple slots. It's too inefficient, and affect the whole performance reduction.

Sorry, Discard this comment. it means dwmci, not mmcqd.

Quoted 37 lines

If want to offer the second slot for user expansion, add the host for expansion slot. Almost All SoC didn't use the multiple slot per a host controller for eMMC/SD/SDIO.

If Some device(Phone) supports the SD-card and eMMC, then there are two Host IP. One Host IP is used for eMMC, other is used for SD-card.

this is H/W design issue.

a) You means the below,

One Host IP -------- eMMC

		|
		---- SD
		|
		---- SDIO

b) We means the below
One Host IP -------- eMMC
One Host IP -------- SD
One Host IP -------- SDIO

In now, I knew every SoC have used like b) type. I didn't see a) type (especially, dwmmc's case).

If i missed something, let me know, plz.

Best Regards,
Jaehoon Chung

Quoted 7 lines

Or I may want to have internal slot with a card to boot from and have external slot (initially empty) for system update for embedded system.

I see quite an obvious benefit there.
Pavel

#21 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Hi!

Quoted 9 lines
Quoted 8 lines
Quoted 5 lines

Would you elaborate?

If I have a device like a phone, I may want to put one "slot" inside phone for basic system, and offer second slot for user expansion (initially empty).

if multiple slot is supported, then a mmcqd should be processing for multiple slots. It's too inefficient, and affect the whole performance reduction.

Sorry, Discard this comment. it means dwmci, not mmcqd.

Well, that's a Linux problem, and for many applications, not even problem at all.

Device tree should describe hardware, and hardware can do multiple slots per controller, so device tree should describe multiple slots per controller.

Now, the configuration may be uncommon, but you are moving from good hardware description to bad hardware description.

Pavel

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
author maintainer
#22 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Hi,

Quoted 15 lines · Pavel Machek

Hi!

Quoted 9 lines
Quoted 8 lines
Quoted 5 lines

Would you elaborate?

If I have a device like a phone, I may want to put one "slot" inside phone for basic system, and offer second slot for user expansion (initially empty).

if multiple slot is supported, then a mmcqd should be processing for multiple slots. It's too inefficient, and affect the whole performance reduction.

Sorry, Discard this comment. it means dwmci, not mmcqd.

Well, that's a Linux problem, and for many applications, not even problem at all.

Quoted 6 lines

Device tree should describe hardware, and hardware can do multiple slots per controller, so device tree should describe multiple slots per controller.

Now, the configuration may be uncommon, but you are moving from good hardware description to bad hardware description.

Well, i don't think it's bad hardware description. And this policy is suggested by other mmc developers and maintainers. At first time, I had also suggested same opinion with yours.
Refer to below..

https://patchwork.kernel.org/patch/4276481/

Best Regards,
Jaehoon Chung

Quoted 3 lines

Pavel

#23 lore raw

v10 cover ARM: remove the sub-node and deprecate supports-highspeed property for dwmmc.

Quoted 22 lines · Jaehoon Chung

Hi,

Quoted 19 lines · Pavel Machek

Hi!

Quoted 9 lines
Quoted 8 lines
Quoted 5 lines

Would you elaborate?

If I have a device like a phone, I may want to put one "slot" inside phone for basic system, and offer second slot for user expansion (initially empty).

if multiple slot is supported, then a mmcqd should be processing for multiple slots. It's too inefficient, and affect the whole performance reduction.

Sorry, Discard this comment. it means dwmci, not mmcqd.

Well, that's a Linux problem, and for many applications, not even problem at all.

Device tree should describe hardware, and hardware can do multiple slots per controller, so device tree should describe multiple slots per controller.

Quoted 6 lines
Quoted 2 lines

Now, the configuration may be uncommon, but you are moving from good hardware description to bad hardware description.

Well, i don't think it's bad hardware description. And this policy is suggested by other mmc developers and maintainers. At first time, I had also suggested same opinion with yours.
Refer to below..

Well, I disagree with them. They want to modify device tree because of linux limitations.

Plus. I guess that sooner or later someone will wire just the slot 1 (not 0) and not match this description.
Pavel

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html