Hi Henrik
On 15.03.2023 22:26, Henrik Grimler wrote:
> Previously, the mshc0 alias has been necessary so that
> MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA are set for mshc_0/mmc_0.
> However, these capabilities should be described in the device tree so
> that we do not have to rely on the alias.
>
> The property mmc-ddr-1_8v replaces MMC_CAP_1_8V_DDR, while bus_width =
> <8>, which is already set for all the mshc0/mmc0 nodes, replaces
> MMC_CAP_8_BIT_DATA.
>
> Also drop other mshc aliases as they are not needed.
>
> Signed-off-by: Henrik Grimler <henrik@grimler.se>
> ---
>
> Changes since v3:
> * Drop attempt at node sorting/cleaning
> * Move two mmc alias additions to the other patch
> * Update commit message
>
> Changes since v2:
> * Set mmc-ddr-1_8v in device trees for mshc_0/mmc_0
>
> arch/arm/boot/dts/exynos3250-artik5.dtsi | 1 +
> arch/arm/boot/dts/exynos3250-monk.dts | 1 +
> arch/arm/boot/dts/exynos3250-rinato.dts | 1 +
> arch/arm/boot/dts/exynos4210-i9100.dts | 1 +
> arch/arm/boot/dts/exynos4210-origen.dts | 1 +
> arch/arm/boot/dts/exynos4210-trats.dts | 1 +
> arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 +
> arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi | 1 +
> arch/arm/boot/dts/exynos4412-midas.dtsi | 1 +
> arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 1 +
> arch/arm/boot/dts/exynos4412-origen.dts | 1 +
> arch/arm/boot/dts/exynos4412-p4note.dtsi | 1 +
> arch/arm/boot/dts/exynos4412.dtsi | 1 -
> arch/arm/boot/dts/exynos5250-arndale.dts | 1 +
> arch/arm/boot/dts/exynos5250-smdk5250.dts | 1 +
> arch/arm/boot/dts/exynos5250-snow-common.dtsi | 1 +
> arch/arm/boot/dts/exynos5250-spring.dts | 1 +
> arch/arm/boot/dts/exynos5250.dtsi | 4 ----
> arch/arm/boot/dts/exynos5260-xyref5260.dts | 1 +
> arch/arm/boot/dts/exynos5410-odroidxu.dts | 1 +
> arch/arm/boot/dts/exynos5410-smdk5410.dts | 1 +
> arch/arm/boot/dts/exynos5420-arndale-octa.dts | 1 +
> arch/arm/boot/dts/exynos5420-galaxy-tab-common.dtsi | 1 +
> arch/arm/boot/dts/exynos5420-peach-pit.dts | 1 +
> arch/arm/boot/dts/exynos5420-smdk5420.dts | 1 +
> arch/arm/boot/dts/exynos5420.dtsi | 3 ---
> arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 +
> arch/arm/boot/dts/exynos5422-samsung-k3g.dts | 1 +
> arch/arm/boot/dts/exynos5800-peach-pi.dts | 1 +
> 29 files changed, 26 insertions(+), 8 deletions(-)
>
> ...
> diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
> index bba85011ecc9..a370a5fa20d8 100644
> --- a/arch/arm/boot/dts/exynos4210-i9100.dts
> +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> @@ -776,6 +776,7 @@ &sdhci_0 {
> status = "okay";
>
> bus-width = <8>;
> + mmc-ddr-1_8v;
> non-removable;
> vmmc-supply = <&vemmc_reg>;
>
> diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
> index 1103e7f92b57..d8dd13ce29e1 100644
> --- a/arch/arm/boot/dts/exynos4210-origen.dts
> +++ b/arch/arm/boot/dts/exynos4210-origen.dts
> @@ -326,6 +326,7 @@ max8997_irq: max8997-irq-pins {
>
> &sdhci_0 {
> bus-width = <4>;
> + mmc-ddr-1_8v;
> pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
> pinctrl-names = "default";
> vmmc-supply = <&mmc_reg>;
> diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
> index b8e9dd23fc51..d757228a5676 100644
> --- a/arch/arm/boot/dts/exynos4210-trats.dts
> +++ b/arch/arm/boot/dts/exynos4210-trats.dts
> @@ -491,6 +491,7 @@ &rtc {
>
> &sdhci_0 {
> bus-width = <8>;
> + mmc-ddr-1_8v;
> non-removable;
> pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
> pinctrl-names = "default";
> diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
> index 140abfb38e1d..57dbed908131 100644
> --- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
> +++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
> @@ -584,6 +584,7 @@ &rtc {
>
> &sdhci_0 {
> bus-width = <8>;
> + mmc-ddr-1_8v;
> non-removable;
> pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
> pinctrl-names = "default";
SDHCI is a different MMC controller than MSHC (DW-MMC), so please drop
the above changes as they break SDHCI based MMC device operation (tested
on Exynos4210 based Trats). With that fixed, feel free to add:
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Best regards
@@ -321,6 +321,7 @@ &mshc_0 {
vmmc-supply = <&ldo12_reg>;
clock-frequency = <100000000>;
max-frequency = <100000000>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <1>;
samsung,dw-mshc-sdr-timing = <0 1>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -443,6 +443,7 @@ &mshc_0 {
vmmc-supply = <&vemmc_reg>;
clock-frequency = <100000000>;
max-frequency = <100000000>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <1>;
samsung,dw-mshc-sdr-timing = <0 1>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -624,6 +624,7 @@ &mshc_0 {
vmmc-supply = <&ldo12_reg>;
clock-frequency = <100000000>;
max-frequency = <100000000>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <1>;
samsung,dw-mshc-sdr-timing = <0 1>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -776,6 +776,7 @@ &sdhci_0 {
status = "okay";
bus-width = <8>;
+ mmc-ddr-1_8v;
non-removable;
vmmc-supply = <&vemmc_reg>;
@@ -326,6 +326,7 @@ max8997_irq: max8997-irq-pins {
&sdhci_0 {
bus-width = <4>;
+ mmc-ddr-1_8v;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
pinctrl-names = "default";
vmmc-supply = <&mmc_reg>;
@@ -491,6 +491,7 @@ &rtc {
&sdhci_0 {
bus-width = <8>;
+ mmc-ddr-1_8v;
non-removable;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
pinctrl-names = "default";
@@ -584,6 +584,7 @@ &rtc {
&sdhci_0 {
bus-width = <8>;
+ mmc-ddr-1_8v;
non-removable;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
pinctrl-names = "default";
@@ -476,6 +476,7 @@ &mshc_0 {
vmmc-supply = <&buck9_reg>;
broken-cd;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <2 3>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -977,6 +977,7 @@ &mshc_0 {
samsung,dw-mshc-ciu-div = <0>;
samsung,dw-mshc-sdr-timing = <2 3>;
samsung,dw-mshc-ddr-timing = <1 2>;
+ mmc-ddr-1_8v;
pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
pinctrl-names = "default";
status = "okay";
@@ -533,6 +533,7 @@ &mshc_0 {
broken-cd;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <2 3>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -498,6 +498,7 @@ &mshc_0 {
broken-cd;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <2 3>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -693,6 +693,7 @@ &mshc_0 {
samsung,dw-mshc-ciu-div = <0>;
samsung,dw-mshc-sdr-timing = <2 3>;
samsung,dw-mshc-ddr-timing = <1 2>;
+ mmc-ddr-1_8v;
pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
pinctrl-names = "default";
bus-width = <4>;
@@ -28,7 +28,6 @@ aliases {
pinctrl3 = &pinctrl_3;
fimc-lite0 = &fimc_lite_0;
fimc-lite1 = &fimc_lite_1;
- mshc0 = &mshc_0;
};
bus_acp: bus-acp {
@@ -589,6 +589,7 @@ &mmc_0 {
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
};
&mmc_2 {
@@ -350,6 +350,7 @@ &mmc_0 {
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
};
&mmc_2 {
@@ -549,6 +549,7 @@ &mmc_0 {
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
};
/* uSD card */
@@ -431,6 +431,7 @@ &mmc_0 {
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
};
/*
@@ -30,10 +30,6 @@ aliases {
gsc1 = &gsc_1;
gsc2 = &gsc_2;
gsc3 = &gsc_3;
- mshc0 = &mmc_0;
- mshc1 = &mmc_1;
- mshc2 = &mmc_2;
- mshc3 = &mmc_3;
i2c4 = &i2c_4;
i2c5 = &i2c_5;
i2c6 = &i2c_6;
@@ -89,6 +89,7 @@ &mmc_0 {
cap-mmc-highspeed;
mmc-hs200-1_8v;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
@@ -513,6 +513,7 @@ &mmc_0 {
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd>;
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&ldo20_reg>;
vqmmc-supply = <&ldo11_reg>;
@@ -61,6 +61,7 @@ &mmc_0 {
cap-mmc-highspeed;
broken-cd;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <2 3>;
samsung,dw-mshc-ddr-timing = <1 2>;
@@ -778,6 +778,7 @@ &mmc_0 {
status = "okay";
non-removable;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
@@ -604,6 +604,7 @@ &mmc_0 {
bus-width = <8>;
cap-mmc-highspeed;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
non-removable;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
@@ -722,6 +722,7 @@ &mixer {
/* eMMC flash */
&mmc_0 {
status = "okay";
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
cap-mmc-highspeed;
non-removable;
@@ -355,6 +355,7 @@ &mmc_0 {
status = "okay";
broken-cd;
card-detect-delay = <200>;
+ mmc-ddr-1_8v;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
@@ -19,9 +19,6 @@ / {
compatible = "samsung,exynos5420", "samsung,exynos5";
aliases {
- mshc0 = &mmc_0;
- mshc1 = &mmc_1;
- mshc2 = &mmc_2;
pinctrl0 = &pinctrl_0;
pinctrl1 = &pinctrl_1;
pinctrl2 = &pinctrl_2;
@@ -472,6 +472,7 @@ &mmc_0 {
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
@@ -597,6 +597,7 @@ rmi4-f12@12 {
/* eMMC flash */
&mmc_0 {
status = "okay";
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
cap-mmc-highspeed;
non-removable;
@@ -703,6 +703,7 @@ &mixer {
/* eMMC flash */
&mmc_0 {
status = "okay";
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
cap-mmc-highspeed;