diff mbox

[PATCHv6,2/2] ARM: dts: unuse the slot-node and deprecated supports-highspeed for dw-mmc.

Message ID 1402284855-3968-3-git-send-email-jh80.chung@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jaehoon Chung June 9, 2014, 3:34 a.m. UTC
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".

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Tushar Behera <trblinux@gmail.com>
---
Changelog V6:
	- Add the missing property.
Changelog V5:
	- Fix typo.
Changelog V4:
	- Remove the slot-node.
	- Rename Subject.
		"[PATCHv3 4/4]ARM: dts: replace the slot property into slot sub-node for dwmmc"
Changelog V3:
	- Merge "[PATCH 2/5] mmc: dw_mmc: rmove the "supports-highspeed" property"
Changelog V2:
	- None

 .../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      |   28 ++++++--------------
 arch/arm/boot/dts/exynos5250-smdk5250.dts          |   18 ++++---------
 arch/arm/boot/dts/exynos5250-snow.dts              |    6 ++---
 arch/arm/boot/dts/exynos5420-arndale-octa.dts      |   16 +++--------
 arch/arm/boot/dts/exynos5420-smdk5420.dts          |   16 +++--------
 arch/arm/boot/dts/rk3066a-bqcurie2.dts             |   16 +++--------
 arch/arm/boot/dts/socfpga_arria5.dtsi              |    5 ++--
 arch/arm/boot/dts/socfpga_cyclone5.dtsi            |    9 +++----
 arch/arm/boot/dts/socfpga_vt.dts                   |    9 +++----
 16 files changed, 62 insertions(+), 144 deletions(-)

Comments

Dinh Nguyen June 9, 2014, 3:53 p.m. UTC | #1
On Mon, 2014-06-09 at 12:34 +0900, Jaehoon Chung wrote:
> 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".
> 
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Reviewed-by: Tushar Behera <trblinux@gmail.com>
> ---
> Changelog V6:
> 	- Add the missing property.
> Changelog V5:
> 	- Fix typo.
> Changelog V4:
> 	- Remove the slot-node.
> 	- Rename Subject.
> 		"[PATCHv3 4/4]ARM: dts: replace the slot property into slot sub-node for dwmmc"
> Changelog V3:
> 	- Merge "[PATCH 2/5] mmc: dw_mmc: rmove the "supports-highspeed" property"
> Changelog V2:
> 	- None
> 
>  .../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      |   28 ++++++--------------
>  arch/arm/boot/dts/exynos5250-smdk5250.dts          |   18 ++++---------
>  arch/arm/boot/dts/exynos5250-snow.dts              |    6 ++---
>  arch/arm/boot/dts/exynos5420-arndale-octa.dts      |   16 +++--------
>  arch/arm/boot/dts/exynos5420-smdk5420.dts          |   16 +++--------
>  arch/arm/boot/dts/rk3066a-bqcurie2.dts             |   16 +++--------
>  arch/arm/boot/dts/socfpga_arria5.dtsi              |    5 ++--
>  arch/arm/boot/dts/socfpga_cyclone5.dtsi            |    9 +++----
>  arch/arm/boot/dts/socfpga_vt.dts                   |    9 +++----
>  16 files changed, 62 insertions(+), 144 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
> index 532b1d4..4cdd283 100644
> --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
> +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
> @@ -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@12200000 {
>  		num-slots = <1>;
> -		supports-highspeed;
>  		broken-cd;
> +		cap-mmc-highspeed;
> +		cap-sd-highspeed;
>  		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@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>;
>  	};
> diff --git a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
> index b8653ea..514c0fc 100644
> --- a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
> +++ b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
> @@ -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@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;
>  	};

[snip]

>  
>  		gpio-keys {
> diff --git a/arch/arm/boot/dts/socfpga_arria5.dtsi b/arch/arm/boot/dts/socfpga_arria5.dtsi
> index 6c87b70..1da0e81 100644
> --- a/arch/arm/boot/dts/socfpga_arria5.dtsi
> +++ b/arch/arm/boot/dts/socfpga_arria5.dtsi
> @@ -29,12 +29,13 @@
>  
>  		dwmmc0@ff704000 {
>  			num-slots = <1>;
> -			supports-highspeed;
> -			broken-cd;
>  
>  			slot@0 {

You can remove the slot@0 here too right?

Thanks,
Dinh

>  				reg = <0>;
>  				bus-width = <4>;
> +				broken-cd;
> +				cap-mmc-highspeed;
> +				cap-sd-highspeed;
>  			};
>  		};
>  
> diff --git a/arch/arm/boot/dts/socfpga_cyclone5.dtsi b/arch/arm/boot/dts/socfpga_cyclone5.dtsi
> index ca41b0e..c4ebf65 100644
> --- a/arch/arm/boot/dts/socfpga_cyclone5.dtsi
> +++ b/arch/arm/boot/dts/socfpga_cyclone5.dtsi
> @@ -30,13 +30,10 @@
>  
>  		dwmmc0@ff704000 {
>  			num-slots = <1>;
> -			supports-highspeed;
>  			broken-cd;
> -
> -			slot@0 {
> -				reg = <0>;
> -				bus-width = <4>;
> -			};
> +			bus-width = <4>;
> +			cap-mmc-highspeed;
> +			cap-sd-highspeed;
>  		};
>  
>  		ethernet@ff702000 {
> diff --git a/arch/arm/boot/dts/socfpga_vt.dts b/arch/arm/boot/dts/socfpga_vt.dts
> index 87d6f75..07e7206 100644
> --- a/arch/arm/boot/dts/socfpga_vt.dts
> +++ b/arch/arm/boot/dts/socfpga_vt.dts
> @@ -43,13 +43,10 @@
>  
>  		dwmmc0@ff704000 {
>  			num-slots = <1>;
> -			supports-highspeed;
>  			broken-cd;
> -
> -			slot@0 {
> -				reg = <0>;
> -				bus-width = <4>;
> -			};
> +			bus-width = <4>;
> +			cap-mmc-highspeed;
> +			cap-sd-highspeed;
>  		};
>  
>  		ethernet@ff700000 {


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jaehoon Chung June 11, 2014, 6:49 a.m. UTC | #2
Hi, Dinh.

Thanks for pointing out.
Will Fix it.

Best Regards,
Jaehoon Chung

On 06/10/2014 12:53 AM, Dinh Nguyen wrote:
> On Mon, 2014-06-09 at 12:34 +0900, Jaehoon Chung wrote:
>> 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".
>>
>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>> Reviewed-by: Tushar Behera <trblinux@gmail.com>
>> ---
>> Changelog V6:
>> 	- Add the missing property.
>> Changelog V5:
>> 	- Fix typo.
>> Changelog V4:
>> 	- Remove the slot-node.
>> 	- Rename Subject.
>> 		"[PATCHv3 4/4]ARM: dts: replace the slot property into slot sub-node for dwmmc"
>> Changelog V3:
>> 	- Merge "[PATCH 2/5] mmc: dw_mmc: rmove the "supports-highspeed" property"
>> Changelog V2:
>> 	- None
>>
>>  .../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      |   28 ++++++--------------
>>  arch/arm/boot/dts/exynos5250-smdk5250.dts          |   18 ++++---------
>>  arch/arm/boot/dts/exynos5250-snow.dts              |    6 ++---
>>  arch/arm/boot/dts/exynos5420-arndale-octa.dts      |   16 +++--------
>>  arch/arm/boot/dts/exynos5420-smdk5420.dts          |   16 +++--------
>>  arch/arm/boot/dts/rk3066a-bqcurie2.dts             |   16 +++--------
>>  arch/arm/boot/dts/socfpga_arria5.dtsi              |    5 ++--
>>  arch/arm/boot/dts/socfpga_cyclone5.dtsi            |    9 +++----
>>  arch/arm/boot/dts/socfpga_vt.dts                   |    9 +++----
>>  16 files changed, 62 insertions(+), 144 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
>> index 532b1d4..4cdd283 100644
>> --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
>> +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
>> @@ -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@12200000 {
>>  		num-slots = <1>;
>> -		supports-highspeed;
>>  		broken-cd;
>> +		cap-mmc-highspeed;
>> +		cap-sd-highspeed;
>>  		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@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>;
>>  	};
>> diff --git a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
>> index b8653ea..514c0fc 100644
>> --- a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
>> +++ b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
>> @@ -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@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;
>>  	};
> 
> [snip]
> 
>>  
>>  		gpio-keys {
>> diff --git a/arch/arm/boot/dts/socfpga_arria5.dtsi b/arch/arm/boot/dts/socfpga_arria5.dtsi
>> index 6c87b70..1da0e81 100644
>> --- a/arch/arm/boot/dts/socfpga_arria5.dtsi
>> +++ b/arch/arm/boot/dts/socfpga_arria5.dtsi
>> @@ -29,12 +29,13 @@
>>  
>>  		dwmmc0@ff704000 {
>>  			num-slots = <1>;
>> -			supports-highspeed;
>> -			broken-cd;
>>  
>>  			slot@0 {
> 
> You can remove the slot@0 here too right?
> 
> Thanks,
> Dinh
> 
>>  				reg = <0>;
>>  				bus-width = <4>;
>> +				broken-cd;
>> +				cap-mmc-highspeed;
>> +				cap-sd-highspeed;
>>  			};
>>  		};
>>  
>> diff --git a/arch/arm/boot/dts/socfpga_cyclone5.dtsi b/arch/arm/boot/dts/socfpga_cyclone5.dtsi
>> index ca41b0e..c4ebf65 100644
>> --- a/arch/arm/boot/dts/socfpga_cyclone5.dtsi
>> +++ b/arch/arm/boot/dts/socfpga_cyclone5.dtsi
>> @@ -30,13 +30,10 @@
>>  
>>  		dwmmc0@ff704000 {
>>  			num-slots = <1>;
>> -			supports-highspeed;
>>  			broken-cd;
>> -
>> -			slot@0 {
>> -				reg = <0>;
>> -				bus-width = <4>;
>> -			};
>> +			bus-width = <4>;
>> +			cap-mmc-highspeed;
>> +			cap-sd-highspeed;
>>  		};
>>  
>>  		ethernet@ff702000 {
>> diff --git a/arch/arm/boot/dts/socfpga_vt.dts b/arch/arm/boot/dts/socfpga_vt.dts
>> index 87d6f75..07e7206 100644
>> --- a/arch/arm/boot/dts/socfpga_vt.dts
>> +++ b/arch/arm/boot/dts/socfpga_vt.dts
>> @@ -43,13 +43,10 @@
>>  
>>  		dwmmc0@ff704000 {
>>  			num-slots = <1>;
>> -			supports-highspeed;
>>  			broken-cd;
>> -
>> -			slot@0 {
>> -				reg = <0>;
>> -				bus-width = <4>;
>> -			};
>> +			bus-width = <4>;
>> +			cap-mmc-highspeed;
>> +			cap-sd-highspeed;
>>  		};
>>  
>>  		ethernet@ff700000 {
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
index 532b1d4..4cdd283 100644
--- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
@@ -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@12200000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
+		cap-mmc-highspeed;
+		cap-sd-highspeed;
 		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@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>;
 	};
diff --git a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
index b8653ea..514c0fc 100644
--- a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
@@ -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@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;
 	};
diff --git a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
index 2d4a725..346c609 100644
--- a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
@@ -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@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
+		cap-sd-highspeed;
 	};
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts
index 31db28a..778aec6 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx.dts
@@ -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@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	regulator_p3v3 {
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
index e2c0dca..8832424 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -128,17 +128,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@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	codec@13400000 {
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 73be464..47b6f3a 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -459,7 +459,6 @@ 
 
 	mmc@12550000 {
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		non-removable;
 		card-detect-delay = <200>;
@@ -468,14 +467,11 @@ 
 		samsung,dw-mshc-ciu-div = <0>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
 		samsung,dw-mshc-ddr-timing = <1 2>;
+		bus-width = <8>;
+		cap-mmc-highspeed;
 		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
 		pinctrl-names = "default";
 		status = "okay";
-
-		slot@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
 	};
 
 	sd_reg: voltage-regulator@1 {
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
index 090f983..2f61e4d 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -399,7 +399,6 @@ 
 	mmc_0: mmc@12200000 {
 		status = "okay";
 		num-slots = <1>;
-		supports-highspeed;
 		broken-cd;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
@@ -408,17 +407,13 @@ 
 		vmmc-supply = <&mmc_reg>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-		slot@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc_2: mmc@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>;
@@ -426,12 +421,9 @@ 
 		vmmc-supply = <&mmc_reg>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-		slot@0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-		};
+		bus-width = <4>;
+		disable-wp;
+		cap-sd-highspeed;
 	};
 
 	i2s0: i2s@03830000 {
diff --git a/arch/arm/boot/dts/exynos5250-cros-common.dtsi b/arch/arm/boot/dts/exynos5250-cros-common.dtsi
index 2c1560d..70bbd03 100644
--- a/arch/arm/boot/dts/exynos5250-cros-common.dtsi
+++ b/arch/arm/boot/dts/exynos5250-cros-common.dtsi
@@ -248,7 +248,6 @@ 
 
 	mmc@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@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc@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@0 {
-			reg = <0>;
-			bus-width = <4>;
-			wp-gpios = <&gpc2 1 0>;
-		};
+		bus-width = <4>;
+		wp-gpios = <&gpc2 1 0>;
+		cap-sd-highspeed;
 	};
 
 	mmc@12230000 {
 		num-slots = <1>;
-		supports-highspeed;
-		broken-cd;
 		card-detect-delay = <200>;
+		broken-cd;
 		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@0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <4>;
+		cap-sd-highspeed;
 	};
 
 	spi_1: spi@12d30000 {
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index a794a70..e00ffc6 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -282,7 +282,6 @@ 
 	mmc@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@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc@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@0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-		};
+		bus-width = <4>;
+		disable-wp;
+		cap-sd-highspeed;
 	};
 
 	spi_1: spi@12d30000 {
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts
index 1ce1088..2245278 100644
--- a/arch/arm/boot/dts/exynos5250-snow.dts
+++ b/arch/arm/boot/dts/exynos5250-snow.dts
@@ -190,10 +190,8 @@ 
 	 */
 	mmc@12230000 {
 		status = "okay";
-		slot@0 {
-			pinctrl-names = "default";
-			pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
-		};
+		pinctrl-names = "default";
+		pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
 	};
 
 	usb@12110000 {
diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
index 80a3bf4..752715a 100644
--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -40,7 +40,6 @@ 
 	mmc@12200000 {
 		status = "okay";
 		broken-cd;
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <0 4>;
@@ -48,16 +47,12 @@ 
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc@12220000 {
 		status = "okay";
-		supports-highspeed;
 		card-detect-delay = <200>;
 		samsung,dw-mshc-ciu-div = <3>;
 		samsung,dw-mshc-sdr-timing = <2 3>;
@@ -65,11 +60,8 @@ 
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 		vmmc-supply = <&ldo10_reg>;
-
-		slot@0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <4>;
+		cap-sd-highspeed;
 	};
 
 	hsi2c_4: i2c@12CA0000 {
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts
index 6910485..7f5e35b 100644
--- a/arch/arm/boot/dts/exynos5420-smdk5420.dts
+++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts
@@ -71,34 +71,26 @@ 
 	mmc@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@0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
+		bus-width = <8>;
+		cap-mmc-highspeed;
 	};
 
 	mmc@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@0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
+		bus-width = <4>;
+		cap-sd-highspeed;
 	};
 
 	dp-controller@145B0000 {
diff --git a/arch/arm/boot/dts/rk3066a-bqcurie2.dts b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
index 035df40..0e618d5 100644
--- a/arch/arm/boot/dts/rk3066a-bqcurie2.dts
+++ b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
@@ -58,12 +58,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 */
@@ -73,12 +69,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 {
diff --git a/arch/arm/boot/dts/socfpga_arria5.dtsi b/arch/arm/boot/dts/socfpga_arria5.dtsi
index 6c87b70..1da0e81 100644
--- a/arch/arm/boot/dts/socfpga_arria5.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria5.dtsi
@@ -29,12 +29,13 @@ 
 
 		dwmmc0@ff704000 {
 			num-slots = <1>;
-			supports-highspeed;
-			broken-cd;
 
 			slot@0 {
 				reg = <0>;
 				bus-width = <4>;
+				broken-cd;
+				cap-mmc-highspeed;
+				cap-sd-highspeed;
 			};
 		};
 
diff --git a/arch/arm/boot/dts/socfpga_cyclone5.dtsi b/arch/arm/boot/dts/socfpga_cyclone5.dtsi
index ca41b0e..c4ebf65 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5.dtsi
+++ b/arch/arm/boot/dts/socfpga_cyclone5.dtsi
@@ -30,13 +30,10 @@ 
 
 		dwmmc0@ff704000 {
 			num-slots = <1>;
-			supports-highspeed;
 			broken-cd;
-
-			slot@0 {
-				reg = <0>;
-				bus-width = <4>;
-			};
+			bus-width = <4>;
+			cap-mmc-highspeed;
+			cap-sd-highspeed;
 		};
 
 		ethernet@ff702000 {
diff --git a/arch/arm/boot/dts/socfpga_vt.dts b/arch/arm/boot/dts/socfpga_vt.dts
index 87d6f75..07e7206 100644
--- a/arch/arm/boot/dts/socfpga_vt.dts
+++ b/arch/arm/boot/dts/socfpga_vt.dts
@@ -43,13 +43,10 @@ 
 
 		dwmmc0@ff704000 {
 			num-slots = <1>;
-			supports-highspeed;
 			broken-cd;
-
-			slot@0 {
-				reg = <0>;
-				bus-width = <4>;
-			};
+			bus-width = <4>;
+			cap-mmc-highspeed;
+			cap-sd-highspeed;
 		};
 
 		ethernet@ff700000 {