[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