[PATCH v4 14/38] arm: dts: exynos: Add upstream DW MMC properties to all Exynos dts

Henrik Grimler henrik at grimler.se
Sun Aug 4 01:33:50 CEST 2024


Hi Sam,

Thanks for working on this, makes switching to upstream dts'es easier
:)

I tested the series on exynos4412-odroid-u2 and exynos5422-odroid-xu4.
One issue for exynos4412-odroid to resolve below, with that fixed
booting from both eMMC and sdcard works on my devices.

On Thu, Jul 25, 2024 at 03:44:56PM -0500, Sam Protsenko wrote:
> Some device tree properties for DW MMC block were updated in Linux
> kernel. Let's follow its example and rework corresponding properties in
> all Exynos device trees. Don't remove outdated properties yet, it'll be
> done later once DW MMC driver is updated accordingly to read the updated
> properties instead of outdated ones.
> 
> Next properties are added:
> 
> * samsung,dw-mshc-ciu-div and samsung,dw-mshc-sdr-timing:
> 
>   They were derived from outdated samsung,timing property.
> 
> * fifo-depth (generic replacement for fifoth_val):
> 
>   FIFO depth was calculated from fifoth_val (using expressions from
>   FIFOTH register description in TRM):
> 
>       fifo-depth = ((fifoth_val >> 16) + 1) * 2
> 
> * bus-width: generic replacement for samsung,bus-width
> * clock-frequency: generic replacement for bus_hz
> * non-removable: generic replacement for samsung,removable = <0>
> 
> No functional change.
> 
> Signed-off-by: Sam Protsenko <semen.protsenko at linaro.org>
> ---
> Changes in v4:
>   - (none)
> 
> Changes in v3:
>   - (none)
> 
> Changes in v2:
>   - (none)
> 
>  arch/arm/dts/exynos4210-origen.dts         | 1 +
>  arch/arm/dts/exynos4210-trats.dts          | 2 ++
>  arch/arm/dts/exynos4210-universal_c210.dts | 2 ++
>  arch/arm/dts/exynos4412-odroid.dts         | 6 ++++++
>  arch/arm/dts/exynos4412-trats2.dts         | 8 ++++++++
>  arch/arm/dts/exynos5250-arndale.dts        | 6 ++++++
>  arch/arm/dts/exynos5250-smdk5250.dts       | 7 +++++++
>  arch/arm/dts/exynos5250-snow.dts           | 7 +++++++
>  arch/arm/dts/exynos5250-spring.dts         | 4 ++++
>  arch/arm/dts/exynos5420-smdk5420.dts       | 7 +++++++
>  arch/arm/dts/exynos5422-odroidxu3.dts      | 2 ++
>  arch/arm/dts/exynos54xx.dtsi               | 7 +++++++
>  12 files changed, 59 insertions(+)
> 
> diff --git a/arch/arm/dts/exynos4210-origen.dts b/arch/arm/dts/exynos4210-origen.dts
> index 65a5fcd67eff..a4915de2c49c 100644
> --- a/arch/arm/dts/exynos4210-origen.dts
> +++ b/arch/arm/dts/exynos4210-origen.dts
> @@ -26,6 +26,7 @@
>  
>  &sdhci2 {
>  	samsung,bus-width = <4>;
> +	bus-width = <4>;
>  	samsung,timing = <1 2 3>;
>  	cd-gpios = <&gpk2 2 0>;
>  	status = "okay";
> diff --git a/arch/arm/dts/exynos4210-trats.dts b/arch/arm/dts/exynos4210-trats.dts
> index 05989ee97e5b..4fbdf4730994 100644
> --- a/arch/arm/dts/exynos4210-trats.dts
> +++ b/arch/arm/dts/exynos4210-trats.dts
> @@ -241,6 +241,7 @@
>  
>  &sdhci0 {
>  	samsung,bus-width = <8>;
> +	bus-width = <8>;
>  	samsung,timing = <1 3 3>;
>  	pwr-gpios = <&gpk0 2 0>;
>  	status = "okay";
> @@ -248,6 +249,7 @@
>  
>  &sdhci2 {
>  	samsung,bus-width = <4>;
> +	bus-width = <4>;
>  	samsung,timing = <1 2 3>;
>  	cd-gpios = <&gpx3 4 0>;
>  	status = "okay";
> diff --git a/arch/arm/dts/exynos4210-universal_c210.dts b/arch/arm/dts/exynos4210-universal_c210.dts
> index 610a8ad2e71e..1b3ac1fee15f 100644
> --- a/arch/arm/dts/exynos4210-universal_c210.dts
> +++ b/arch/arm/dts/exynos4210-universal_c210.dts
> @@ -236,6 +236,7 @@
>  
>  &sdhci0 {
>  	samsung,bus-width = <8>;
> +	bus-width = <8>;
>  	samsung,timing = <1 3 3>;
>  	pwr-gpios = <&gpk0 2 0>;
>  	status = "okay";
> @@ -243,6 +244,7 @@
>  
>  &sdhci2 {
>  	samsung,bus-width = <4>;
> +	bus-width = <4>;
>  	samsung,timing = <1 2 3>;
>  	cd-gpios = <&gpx3 4 0>;
>  	status = "okay";
> diff --git a/arch/arm/dts/exynos4412-odroid.dts b/arch/arm/dts/exynos4412-odroid.dts
> index ce08e8dc1ebb..24e96ed05868 100644
> --- a/arch/arm/dts/exynos4412-odroid.dts
> +++ b/arch/arm/dts/exynos4412-odroid.dts
> @@ -243,9 +243,15 @@
>  
>  &mshc_0 {
>  	samsung,bus-width = <8>;
> +	bus-width = <8>;
>  	samsung,timing = <2 1 0>;
> +	samsung,dw-mshc-ciu-div = <0>;
> +	samsung,dw-mshc-sdr-timing = <2 1>;
>  	samsung,removable = <0>;
> +	non-removable;
>  	fifoth_val = <0x203f0040>;
> +	fifo-depth = <0x80>;
> +	clock-frequency = <400000000>;
>  	bus_hz = <400000000>;
>  	div = <0x3>;
>  	index = <4>;

bus-width needs to be added to sdhci2 (sdcard) node above as well.

Best regards,
Henrik Grimler

> diff --git a/arch/arm/dts/exynos4412-trats2.dts b/arch/arm/dts/exynos4412-trats2.dts
> index c4db137e01f6..30758ffa1ef9 100644
> --- a/arch/arm/dts/exynos4412-trats2.dts
> +++ b/arch/arm/dts/exynos4412-trats2.dts
> @@ -109,6 +109,7 @@
>  
>  	sdhci at 12510000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
>  		pwr-gpios = <&gpk0 4 0>;
>  		status = "disabled";
> @@ -432,6 +433,7 @@
>  
>  &sdhci0 {
>  	samsung,bus-width = <8>;
> +	bus-width = <8>;
>  	samsung,timing = <1 3 3>;
>  	pwr-gpios = <&gpk0 4 0>;
>  	status = "disabled";
> @@ -439,6 +441,7 @@
>  
>  &sdhci2 {
>  	samsung,bus-width = <4>;
> +	bus-width = <4>;
>  	samsung,timing = <1 2 3>;
>  	cd-gpios = <&gpk2 2 0>;
>  	status = "okay";
> @@ -446,9 +449,14 @@
>  
>  &mshc_0 {
>  	samsung,bus-width = <8>;
> +	bus-width = <8>;
>  	samsung,timing = <2 1 0>;
> +	samsung,dw-mshc-ciu-div = <0>;
> +	samsung,dw-mshc-sdr-timing = <2 1>;
>  	samsung,removable = <0>;
> +	non-removable;
>  	fifoth_val = <0x203f0040>;
> +	clock-frequency = <400000000>;
>  	bus_hz = <400000000>;
>  	div = <0x3>;
>  	index = <4>;
> diff --git a/arch/arm/dts/exynos5250-arndale.dts b/arch/arm/dts/exynos5250-arndale.dts
> index 60309c61f302..7f84589c97a2 100644
> --- a/arch/arm/dts/exynos5250-arndale.dts
> +++ b/arch/arm/dts/exynos5250-arndale.dts
> @@ -28,7 +28,10 @@
>  
>  	mmc at 12200000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 3>;
>  	};
>  
>  	mmc at 12210000 {
> @@ -37,7 +40,10 @@
>  
>  	mmc at 12220000 {
>  		samsung,bus-width = <4>;
> +		bus-width = <4>;
>  		samsung,timing = <1 2 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 2>;
>  	};
>  
>  	mmc at 12230000 {
> diff --git a/arch/arm/dts/exynos5250-smdk5250.dts b/arch/arm/dts/exynos5250-smdk5250.dts
> index afe0cca48a93..882db2d1f608 100644
> --- a/arch/arm/dts/exynos5250-smdk5250.dts
> +++ b/arch/arm/dts/exynos5250-smdk5250.dts
> @@ -146,8 +146,12 @@
>  
>  	mmc at 12200000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 3>;
>  		samsung,removable = <0>;
> +		non-removable;
>  	};
>  
>  	mmc at 12210000 {
> @@ -156,7 +160,10 @@
>  
>  	mmc at 12220000 {
>  		samsung,bus-width = <4>;
> +		bus-width = <4>;
>  		samsung,timing = <1 2 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 2>;
>  		samsung,removable = <1>;
>  	};
>  
> diff --git a/arch/arm/dts/exynos5250-snow.dts b/arch/arm/dts/exynos5250-snow.dts
> index e41f2d3041e2..bcf04d5c07c0 100644
> --- a/arch/arm/dts/exynos5250-snow.dts
> +++ b/arch/arm/dts/exynos5250-snow.dts
> @@ -302,8 +302,12 @@
>  
>  	mmc at 12200000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 3>;
>  		samsung,removable = <0>;
> +		non-removable;
>  	};
>  
>  	mmc at 12210000 {
> @@ -312,7 +316,10 @@
>  
>  	mmc at 12220000 {
>  		samsung,bus-width = <4>;
> +		bus-width = <4>;
>  		samsung,timing = <1 2 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 2>;
>  		samsung,removable = <1>;
>  	};
>  
> diff --git a/arch/arm/dts/exynos5250-spring.dts b/arch/arm/dts/exynos5250-spring.dts
> index 77e7a6b9e45a..7270a546a795 100644
> --- a/arch/arm/dts/exynos5250-spring.dts
> +++ b/arch/arm/dts/exynos5250-spring.dts
> @@ -104,8 +104,12 @@
>  
>  	mmc at 12200000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 3>;
>  		samsung,removable = <0>;
> +		non-removable;
>  	};
>  
>  	mmc at 12210000 {
> diff --git a/arch/arm/dts/exynos5420-smdk5420.dts b/arch/arm/dts/exynos5420-smdk5420.dts
> index 7a5da674fbed..1f27baafebaf 100644
> --- a/arch/arm/dts/exynos5420-smdk5420.dts
> +++ b/arch/arm/dts/exynos5420-smdk5420.dts
> @@ -107,8 +107,12 @@
>  
>  	mmc at 12200000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 3>;
>  		samsung,removable = <0>;
> +		non-removable;
>  		samsung,pre-init;
>  	};
>  
> @@ -118,7 +122,10 @@
>  
>  	mmc at 12220000 {
>  		samsung,bus-width = <4>;
> +		bus-width = <4>;
>  		samsung,timing = <1 2 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 2>;
>  		samsung,removable = <1>;
>  	};
>  
> diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts b/arch/arm/dts/exynos5422-odroidxu3.dts
> index 9d055d066fd3..767b3e415d58 100644
> --- a/arch/arm/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/dts/exynos5422-odroidxu3.dts
> @@ -281,10 +281,12 @@
>  
>  	mmc at 12200000 {
>  		fifoth_val = <0x201f0020>;
> +		fifo-depth = <0x40>;
>  	};
>  
>  	mmc at 12220000 {
>  		fifoth_val = <0x201f0020>;
> +		fifo-depth = <0x40>;
>  	};
>  
>  	emmc-reset {
> diff --git a/arch/arm/dts/exynos54xx.dtsi b/arch/arm/dts/exynos54xx.dtsi
> index 221da8b4850b..fd74166c7e48 100644
> --- a/arch/arm/dts/exynos54xx.dtsi
> +++ b/arch/arm/dts/exynos54xx.dtsi
> @@ -120,8 +120,12 @@
>  
>  	mmc at 12200000 {
>  		samsung,bus-width = <8>;
> +		bus-width = <8>;
>  		samsung,timing = <1 3 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 3>;
>  		samsung,removable = <0>;
> +		non-removable;
>  		samsung,pre-init;
>  	};
>  
> @@ -131,7 +135,10 @@
>  
>  	mmc at 12220000 {
>  		samsung,bus-width = <4>;
> +		bus-width = <4>;
>  		samsung,timing = <1 2 3>;
> +		samsung,dw-mshc-ciu-div = <3>;
> +		samsung,dw-mshc-sdr-timing = <1 2>;
>  		samsung,removable = <1>;
>  	};
>  
> -- 
> 2.39.2
> 


More information about the U-Boot mailing list