2020-05-12 20:40:19

by Faiz Abbas

[permalink] [raw]
Subject: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

Move mmc nodes to be compatible with the sdhci-omap driver. The following
modifications are required for omap_hsmmc specific properties:

ti,non-removable: convert to the generic mmc non-removable
ti,needs-special-reset: co-opted into the sdhci-omap driver
ti,dual-volt: removed. Legacy property not used in am335x or am43xx
ti,needs-special-hs-handling: removed. Legacy property not used in am335x
or am43xx

Also since the sdhci-omap driver does not support runtime PM, explicitly
disable the mmc3 instance in the dtsi.

Signed-off-by: Faiz Abbas <[email protected]>
---

v2: Rebased to latest mainline where all kernel dependancies have been merged.

Suspend/Resume is now supported in the sdhci-omap driver.

Tested on: am335x-evm, am335x-boneblack, am335x-sk, am335x-bone, am437x-idk,
am43xx-gp-evm, am43xx-epos-evm.

arch/arm/boot/dts/am335x-baltos.dtsi | 2 +-
arch/arm/boot/dts/am335x-boneblack-common.dtsi | 1 +
arch/arm/boot/dts/am335x-boneblack-wireless.dts | 1 -
arch/arm/boot/dts/am335x-boneblue.dts | 1 -
arch/arm/boot/dts/am335x-bonegreen-wireless.dts | 1 -
arch/arm/boot/dts/am335x-evm.dts | 3 +--
arch/arm/boot/dts/am335x-evmsk.dts | 2 +-
arch/arm/boot/dts/am335x-lxm.dts | 2 +-
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 2 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts | 2 +-
arch/arm/boot/dts/am335x-pepper.dts | 4 ++--
arch/arm/boot/dts/am335x-phycore-som.dtsi | 2 +-
arch/arm/boot/dts/am33xx-l4.dtsi | 6 ++----
arch/arm/boot/dts/am33xx.dtsi | 3 ++-
arch/arm/boot/dts/am4372.dtsi | 3 ++-
arch/arm/boot/dts/am437x-cm-t43.dts | 2 +-
arch/arm/boot/dts/am437x-gp-evm.dts | 4 ++--
arch/arm/boot/dts/am437x-l4.dtsi | 5 ++---
arch/arm/boot/dts/am437x-sk-evm.dts | 2 +-
19 files changed, 22 insertions(+), 26 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-baltos.dtsi b/arch/arm/boot/dts/am335x-baltos.dtsi
index 05e7b5d4a95b..04f0b1227efe 100644
--- a/arch/arm/boot/dts/am335x-baltos.dtsi
+++ b/arch/arm/boot/dts/am335x-baltos.dtsi
@@ -369,7 +369,7 @@
&mmc2 {
status = "okay";
vmmc-supply = <&wl12xx_vmmc>;
- ti,non-removable;
+ non-removable;
bus-width = <4>;
cap-power-off-card;
pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/am335x-boneblack-common.dtsi b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
index 91f93bc89716..dd932220a8bf 100644
--- a/arch/arm/boot/dts/am335x-boneblack-common.dtsi
+++ b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
@@ -22,6 +22,7 @@
pinctrl-0 = <&emmc_pins>;
bus-width = <8>;
status = "okay";
+ non-removable;
};

&am33xx_pinmux {
diff --git a/arch/arm/boot/dts/am335x-boneblack-wireless.dts b/arch/arm/boot/dts/am335x-boneblack-wireless.dts
index 3124d94c0b3c..e07dd7979586 100644
--- a/arch/arm/boot/dts/am335x-boneblack-wireless.dts
+++ b/arch/arm/boot/dts/am335x-boneblack-wireless.dts
@@ -75,7 +75,6 @@
bus-width = <4>;
non-removable;
cap-power-off-card;
- ti,needs-special-hs-handling;
keep-power-in-suspend;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
diff --git a/arch/arm/boot/dts/am335x-boneblue.dts b/arch/arm/boot/dts/am335x-boneblue.dts
index 5811fb8d4fdf..83f9452c9cd3 100644
--- a/arch/arm/boot/dts/am335x-boneblue.dts
+++ b/arch/arm/boot/dts/am335x-boneblue.dts
@@ -367,7 +367,6 @@
bus-width = <4>;
non-removable;
cap-power-off-card;
- ti,needs-special-hs-handling;
keep-power-in-suspend;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
diff --git a/arch/arm/boot/dts/am335x-bonegreen-wireless.dts b/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
index 4092cd193b8a..609c8db687ec 100644
--- a/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
+++ b/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
@@ -75,7 +75,6 @@
bus-width = <4>;
non-removable;
cap-power-off-card;
- ti,needs-special-hs-handling;
keep-power-in-suspend;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 68252dab32c3..a4fc6b168a85 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -743,8 +743,7 @@
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wlan_pins>;
- ti,non-removable;
- ti,needs-special-hs-handling;
+ non-removable;
cap-power-off-card;
keep-power-in-suspend;

diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 32f515a295ee..78b6e1f594c9 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -655,7 +655,7 @@
&mmc2 {
status = "okay";
vmmc-supply = <&wl12xx_vmmc>;
- ti,non-removable;
+ non-removable;
bus-width = <4>;
cap-power-off-card;
keep-power-in-suspend;
diff --git a/arch/arm/boot/dts/am335x-lxm.dts b/arch/arm/boot/dts/am335x-lxm.dts
index fef582852820..dbedf729205c 100644
--- a/arch/arm/boot/dts/am335x-lxm.dts
+++ b/arch/arm/boot/dts/am335x-lxm.dts
@@ -339,7 +339,7 @@
pinctrl-0 = <&emmc_pins>;
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <8>;
- ti,non-removable;
+ non-removable;
status = "okay";
};

diff --git a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
index 6495a125c01f..4e90f9c23d2e 100644
--- a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
+++ b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
@@ -159,7 +159,7 @@
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <8>;
pinctrl-0 = <&mmc1_pins_default>;
- ti,non-removable;
+ non-removable;
status = "okay";
};

diff --git a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
index 244df9c5a537..f03e72cada41 100644
--- a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
+++ b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
@@ -451,7 +451,7 @@
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <8>;
pinctrl-0 = <&mmc2_pins_default>;
- ti,non-removable;
+ non-removable;
status = "okay";
};

diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
index 6d7608d9377b..f9a027b47962 100644
--- a/arch/arm/boot/dts/am335x-pepper.dts
+++ b/arch/arm/boot/dts/am335x-pepper.dts
@@ -341,7 +341,7 @@
pinctrl-0 = <&emmc_pins>;
vmmc-supply = <&ldo3_reg>;
bus-width = <8>;
- ti,non-removable;
+ non-removable;
};

&mmc3 {
@@ -351,7 +351,7 @@
pinctrl-0 = <&wireless_pins>;
vmmmc-supply = <&v3v3c_reg>;
bus-width = <4>;
- ti,non-removable;
+ non-removable;
dmas = <&edma_xbar 12 0 1
&edma_xbar 13 0 2>;
dma-names = "tx", "rx";
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
index 3d0672b53d77..7e46b4c02709 100644
--- a/arch/arm/boot/dts/am335x-phycore-som.dtsi
+++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -69,7 +69,7 @@
pinctrl-0 = <&emmc_pins>;
vmmc-supply = <&vmmc_reg>;
bus-width = <8>;
- ti,non-removable;
+ non-removable;
status = "disabled";
};

diff --git a/arch/arm/boot/dts/am33xx-l4.dtsi b/arch/arm/boot/dts/am33xx-l4.dtsi
index 5ed7f3c58c0f..573ff076178b 100644
--- a/arch/arm/boot/dts/am33xx-l4.dtsi
+++ b/arch/arm/boot/dts/am33xx-l4.dtsi
@@ -1337,10 +1337,8 @@
ranges = <0x0 0x60000 0x1000>;

mmc1: mmc@0 {
- compatible = "ti,omap4-hsmmc";
- ti,dual-volt;
+ compatible = "ti,am335-sdhci";
ti,needs-special-reset;
- ti,needs-special-hs-handling;
dmas = <&edma_xbar 24 0 0
&edma_xbar 25 0 0>;
dma-names = "tx", "rx";
@@ -1818,7 +1816,7 @@
ranges = <0x0 0xd8000 0x1000>;

mmc2: mmc@0 {
- compatible = "ti,omap4-hsmmc";
+ compatible = "ti,am335-sdhci";
ti,needs-special-reset;
dmas = <&edma 2 0
&edma 3 0>;
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index a35f5052d76f..3b9d4d2d35bf 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -322,10 +322,11 @@
ranges = <0x0 0x47810000 0x1000>;

mmc3: mmc@0 {
- compatible = "ti,omap4-hsmmc";
+ compatible = "ti,am335-sdhci";
ti,needs-special-reset;
interrupts = <29>;
reg = <0x0 0x1000>;
+ status = "disabled";
};
};

diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index dba87bfaf33e..092b3d4404f4 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -316,10 +316,11 @@
ranges = <0x0 0x47810000 0x1000>;

mmc3: mmc@0 {
- compatible = "ti,omap4-hsmmc";
+ compatible = "ti,am437-sdhci";
ti,needs-special-reset;
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x0 0x1000>;
+ status = "disabled";
};
};

diff --git a/arch/arm/boot/dts/am437x-cm-t43.dts b/arch/arm/boot/dts/am437x-cm-t43.dts
index 063113a5da2d..a6b4fca8626a 100644
--- a/arch/arm/boot/dts/am437x-cm-t43.dts
+++ b/arch/arm/boot/dts/am437x-cm-t43.dts
@@ -291,7 +291,7 @@
pinctrl-0 = <&emmc_pins>;
vmmc-supply = <&vmmc_3v3>;
bus-width = <8>;
- ti,non-removable;
+ non-removable;
};

&spi0 {
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 811c8cae315b..cadf47ee337f 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -869,7 +869,7 @@
pinctrl-names = "default", "sleep";
pinctrl-0 = <&emmc_pins_default>;
pinctrl-1 = <&emmc_pins_sleep>;
- ti,non-removable;
+ non-removable;
};

&mmc3 {
@@ -886,7 +886,7 @@
pinctrl-1 = <&mmc3_pins_sleep>;
cap-power-off-card;
keep-power-in-suspend;
- ti,non-removable;
+ non-removable;

#address-cells = <1>;
#size-cells = <0>;
diff --git a/arch/arm/boot/dts/am437x-l4.dtsi b/arch/arm/boot/dts/am437x-l4.dtsi
index 49c6a872052e..f4eb36d8b660 100644
--- a/arch/arm/boot/dts/am437x-l4.dtsi
+++ b/arch/arm/boot/dts/am437x-l4.dtsi
@@ -1086,9 +1086,8 @@
ranges = <0x0 0x60000 0x1000>;

mmc1: mmc@0 {
- compatible = "ti,omap4-hsmmc";
+ compatible = "ti,am437-sdhci";
reg = <0x0 0x1000>;
- ti,dual-volt;
ti,needs-special-reset;
dmas = <&edma 24 0>,
<&edma 25 0>;
@@ -1601,7 +1600,7 @@
ranges = <0x0 0xd8000 0x1000>;

mmc2: mmc@0 {
- compatible = "ti,omap4-hsmmc";
+ compatible = "ti,am437-sdhci";
reg = <0x0 0x1000>;
ti,needs-special-reset;
dmas = <&edma 2 0>,
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index 25222497f828..2416597a4f5c 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -719,7 +719,7 @@
pinctrl-1 = <&mmc3_pins_sleep>;
cap-power-off-card;
keep-power-in-suspend;
- ti,non-removable;
+ non-removable;

#address-cells = <1>;
#size-cells = <0>;
--
2.17.1


2020-05-13 20:51:57

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

* Faiz Abbas <[email protected]> [200512 13:39]:
> Move mmc nodes to be compatible with the sdhci-omap driver. The following
> modifications are required for omap_hsmmc specific properties:
>
> ti,non-removable: convert to the generic mmc non-removable
> ti,needs-special-reset: co-opted into the sdhci-omap driver
> ti,dual-volt: removed. Legacy property not used in am335x or am43xx
> ti,needs-special-hs-handling: removed. Legacy property not used in am335x
> or am43xx
>
> Also since the sdhci-omap driver does not support runtime PM, explicitly
> disable the mmc3 instance in the dtsi.
>
> Signed-off-by: Faiz Abbas <[email protected]>
> ---
>
> v2: Rebased to latest mainline where all kernel dependancies have been merged.
>
> Suspend/Resume is now supported in the sdhci-omap driver.

Great, thanks for updating it.

Keerthy, care to test for am3 and am4?

Regards,

Tony


> Tested on: am335x-evm, am335x-boneblack, am335x-sk, am335x-bone, am437x-idk,
> am43xx-gp-evm, am43xx-epos-evm.
>
> arch/arm/boot/dts/am335x-baltos.dtsi | 2 +-
> arch/arm/boot/dts/am335x-boneblack-common.dtsi | 1 +
> arch/arm/boot/dts/am335x-boneblack-wireless.dts | 1 -
> arch/arm/boot/dts/am335x-boneblue.dts | 1 -
> arch/arm/boot/dts/am335x-bonegreen-wireless.dts | 1 -
> arch/arm/boot/dts/am335x-evm.dts | 3 +--
> arch/arm/boot/dts/am335x-evmsk.dts | 2 +-
> arch/arm/boot/dts/am335x-lxm.dts | 2 +-
> arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 2 +-
> arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts | 2 +-
> arch/arm/boot/dts/am335x-pepper.dts | 4 ++--
> arch/arm/boot/dts/am335x-phycore-som.dtsi | 2 +-
> arch/arm/boot/dts/am33xx-l4.dtsi | 6 ++----
> arch/arm/boot/dts/am33xx.dtsi | 3 ++-
> arch/arm/boot/dts/am4372.dtsi | 3 ++-
> arch/arm/boot/dts/am437x-cm-t43.dts | 2 +-
> arch/arm/boot/dts/am437x-gp-evm.dts | 4 ++--
> arch/arm/boot/dts/am437x-l4.dtsi | 5 ++---
> arch/arm/boot/dts/am437x-sk-evm.dts | 2 +-
> 19 files changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/arch/arm/boot/dts/am335x-baltos.dtsi b/arch/arm/boot/dts/am335x-baltos.dtsi
> index 05e7b5d4a95b..04f0b1227efe 100644
> --- a/arch/arm/boot/dts/am335x-baltos.dtsi
> +++ b/arch/arm/boot/dts/am335x-baltos.dtsi
> @@ -369,7 +369,7 @@
> &mmc2 {
> status = "okay";
> vmmc-supply = <&wl12xx_vmmc>;
> - ti,non-removable;
> + non-removable;
> bus-width = <4>;
> cap-power-off-card;
> pinctrl-names = "default";
> diff --git a/arch/arm/boot/dts/am335x-boneblack-common.dtsi b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
> index 91f93bc89716..dd932220a8bf 100644
> --- a/arch/arm/boot/dts/am335x-boneblack-common.dtsi
> +++ b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
> @@ -22,6 +22,7 @@
> pinctrl-0 = <&emmc_pins>;
> bus-width = <8>;
> status = "okay";
> + non-removable;
> };
>
> &am33xx_pinmux {
> diff --git a/arch/arm/boot/dts/am335x-boneblack-wireless.dts b/arch/arm/boot/dts/am335x-boneblack-wireless.dts
> index 3124d94c0b3c..e07dd7979586 100644
> --- a/arch/arm/boot/dts/am335x-boneblack-wireless.dts
> +++ b/arch/arm/boot/dts/am335x-boneblack-wireless.dts
> @@ -75,7 +75,6 @@
> bus-width = <4>;
> non-removable;
> cap-power-off-card;
> - ti,needs-special-hs-handling;
> keep-power-in-suspend;
> pinctrl-names = "default";
> pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
> diff --git a/arch/arm/boot/dts/am335x-boneblue.dts b/arch/arm/boot/dts/am335x-boneblue.dts
> index 5811fb8d4fdf..83f9452c9cd3 100644
> --- a/arch/arm/boot/dts/am335x-boneblue.dts
> +++ b/arch/arm/boot/dts/am335x-boneblue.dts
> @@ -367,7 +367,6 @@
> bus-width = <4>;
> non-removable;
> cap-power-off-card;
> - ti,needs-special-hs-handling;
> keep-power-in-suspend;
> pinctrl-names = "default";
> pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
> diff --git a/arch/arm/boot/dts/am335x-bonegreen-wireless.dts b/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
> index 4092cd193b8a..609c8db687ec 100644
> --- a/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
> +++ b/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
> @@ -75,7 +75,6 @@
> bus-width = <4>;
> non-removable;
> cap-power-off-card;
> - ti,needs-special-hs-handling;
> keep-power-in-suspend;
> pinctrl-names = "default";
> pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
> diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
> index 68252dab32c3..a4fc6b168a85 100644
> --- a/arch/arm/boot/dts/am335x-evm.dts
> +++ b/arch/arm/boot/dts/am335x-evm.dts
> @@ -743,8 +743,7 @@
> bus-width = <4>;
> pinctrl-names = "default";
> pinctrl-0 = <&mmc3_pins &wlan_pins>;
> - ti,non-removable;
> - ti,needs-special-hs-handling;
> + non-removable;
> cap-power-off-card;
> keep-power-in-suspend;
>
> diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
> index 32f515a295ee..78b6e1f594c9 100644
> --- a/arch/arm/boot/dts/am335x-evmsk.dts
> +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> @@ -655,7 +655,7 @@
> &mmc2 {
> status = "okay";
> vmmc-supply = <&wl12xx_vmmc>;
> - ti,non-removable;
> + non-removable;
> bus-width = <4>;
> cap-power-off-card;
> keep-power-in-suspend;
> diff --git a/arch/arm/boot/dts/am335x-lxm.dts b/arch/arm/boot/dts/am335x-lxm.dts
> index fef582852820..dbedf729205c 100644
> --- a/arch/arm/boot/dts/am335x-lxm.dts
> +++ b/arch/arm/boot/dts/am335x-lxm.dts
> @@ -339,7 +339,7 @@
> pinctrl-0 = <&emmc_pins>;
> vmmc-supply = <&vmmcsd_fixed>;
> bus-width = <8>;
> - ti,non-removable;
> + non-removable;
> status = "okay";
> };
>
> diff --git a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
> index 6495a125c01f..4e90f9c23d2e 100644
> --- a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
> +++ b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
> @@ -159,7 +159,7 @@
> vmmc-supply = <&vmmcsd_fixed>;
> bus-width = <8>;
> pinctrl-0 = <&mmc1_pins_default>;
> - ti,non-removable;
> + non-removable;
> status = "okay";
> };
>
> diff --git a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
> index 244df9c5a537..f03e72cada41 100644
> --- a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
> +++ b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
> @@ -451,7 +451,7 @@
> vmmc-supply = <&vmmcsd_fixed>;
> bus-width = <8>;
> pinctrl-0 = <&mmc2_pins_default>;
> - ti,non-removable;
> + non-removable;
> status = "okay";
> };
>
> diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
> index 6d7608d9377b..f9a027b47962 100644
> --- a/arch/arm/boot/dts/am335x-pepper.dts
> +++ b/arch/arm/boot/dts/am335x-pepper.dts
> @@ -341,7 +341,7 @@
> pinctrl-0 = <&emmc_pins>;
> vmmc-supply = <&ldo3_reg>;
> bus-width = <8>;
> - ti,non-removable;
> + non-removable;
> };
>
> &mmc3 {
> @@ -351,7 +351,7 @@
> pinctrl-0 = <&wireless_pins>;
> vmmmc-supply = <&v3v3c_reg>;
> bus-width = <4>;
> - ti,non-removable;
> + non-removable;
> dmas = <&edma_xbar 12 0 1
> &edma_xbar 13 0 2>;
> dma-names = "tx", "rx";
> diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
> index 3d0672b53d77..7e46b4c02709 100644
> --- a/arch/arm/boot/dts/am335x-phycore-som.dtsi
> +++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
> @@ -69,7 +69,7 @@
> pinctrl-0 = <&emmc_pins>;
> vmmc-supply = <&vmmc_reg>;
> bus-width = <8>;
> - ti,non-removable;
> + non-removable;
> status = "disabled";
> };
>
> diff --git a/arch/arm/boot/dts/am33xx-l4.dtsi b/arch/arm/boot/dts/am33xx-l4.dtsi
> index 5ed7f3c58c0f..573ff076178b 100644
> --- a/arch/arm/boot/dts/am33xx-l4.dtsi
> +++ b/arch/arm/boot/dts/am33xx-l4.dtsi
> @@ -1337,10 +1337,8 @@
> ranges = <0x0 0x60000 0x1000>;
>
> mmc1: mmc@0 {
> - compatible = "ti,omap4-hsmmc";
> - ti,dual-volt;
> + compatible = "ti,am335-sdhci";
> ti,needs-special-reset;
> - ti,needs-special-hs-handling;
> dmas = <&edma_xbar 24 0 0
> &edma_xbar 25 0 0>;
> dma-names = "tx", "rx";
> @@ -1818,7 +1816,7 @@
> ranges = <0x0 0xd8000 0x1000>;
>
> mmc2: mmc@0 {
> - compatible = "ti,omap4-hsmmc";
> + compatible = "ti,am335-sdhci";
> ti,needs-special-reset;
> dmas = <&edma 2 0
> &edma 3 0>;
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index a35f5052d76f..3b9d4d2d35bf 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -322,10 +322,11 @@
> ranges = <0x0 0x47810000 0x1000>;
>
> mmc3: mmc@0 {
> - compatible = "ti,omap4-hsmmc";
> + compatible = "ti,am335-sdhci";
> ti,needs-special-reset;
> interrupts = <29>;
> reg = <0x0 0x1000>;
> + status = "disabled";
> };
> };
>
> diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
> index dba87bfaf33e..092b3d4404f4 100644
> --- a/arch/arm/boot/dts/am4372.dtsi
> +++ b/arch/arm/boot/dts/am4372.dtsi
> @@ -316,10 +316,11 @@
> ranges = <0x0 0x47810000 0x1000>;
>
> mmc3: mmc@0 {
> - compatible = "ti,omap4-hsmmc";
> + compatible = "ti,am437-sdhci";
> ti,needs-special-reset;
> interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> reg = <0x0 0x1000>;
> + status = "disabled";
> };
> };
>
> diff --git a/arch/arm/boot/dts/am437x-cm-t43.dts b/arch/arm/boot/dts/am437x-cm-t43.dts
> index 063113a5da2d..a6b4fca8626a 100644
> --- a/arch/arm/boot/dts/am437x-cm-t43.dts
> +++ b/arch/arm/boot/dts/am437x-cm-t43.dts
> @@ -291,7 +291,7 @@
> pinctrl-0 = <&emmc_pins>;
> vmmc-supply = <&vmmc_3v3>;
> bus-width = <8>;
> - ti,non-removable;
> + non-removable;
> };
>
> &spi0 {
> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
> index 811c8cae315b..cadf47ee337f 100644
> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> @@ -869,7 +869,7 @@
> pinctrl-names = "default", "sleep";
> pinctrl-0 = <&emmc_pins_default>;
> pinctrl-1 = <&emmc_pins_sleep>;
> - ti,non-removable;
> + non-removable;
> };
>
> &mmc3 {
> @@ -886,7 +886,7 @@
> pinctrl-1 = <&mmc3_pins_sleep>;
> cap-power-off-card;
> keep-power-in-suspend;
> - ti,non-removable;
> + non-removable;
>
> #address-cells = <1>;
> #size-cells = <0>;
> diff --git a/arch/arm/boot/dts/am437x-l4.dtsi b/arch/arm/boot/dts/am437x-l4.dtsi
> index 49c6a872052e..f4eb36d8b660 100644
> --- a/arch/arm/boot/dts/am437x-l4.dtsi
> +++ b/arch/arm/boot/dts/am437x-l4.dtsi
> @@ -1086,9 +1086,8 @@
> ranges = <0x0 0x60000 0x1000>;
>
> mmc1: mmc@0 {
> - compatible = "ti,omap4-hsmmc";
> + compatible = "ti,am437-sdhci";
> reg = <0x0 0x1000>;
> - ti,dual-volt;
> ti,needs-special-reset;
> dmas = <&edma 24 0>,
> <&edma 25 0>;
> @@ -1601,7 +1600,7 @@
> ranges = <0x0 0xd8000 0x1000>;
>
> mmc2: mmc@0 {
> - compatible = "ti,omap4-hsmmc";
> + compatible = "ti,am437-sdhci";
> reg = <0x0 0x1000>;
> ti,needs-special-reset;
> dmas = <&edma 2 0>,
> diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
> index 25222497f828..2416597a4f5c 100644
> --- a/arch/arm/boot/dts/am437x-sk-evm.dts
> +++ b/arch/arm/boot/dts/am437x-sk-evm.dts
> @@ -719,7 +719,7 @@
> pinctrl-1 = <&mmc3_pins_sleep>;
> cap-power-off-card;
> keep-power-in-suspend;
> - ti,non-removable;
> + non-removable;
>
> #address-cells = <1>;
> #size-cells = <0>;
> --
> 2.17.1
>

2020-05-15 09:38:23

by Faiz Abbas

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

Hi Tony,

On 13/05/20 9:53 pm, Tony Lindgren wrote:
> * Faiz Abbas <[email protected]> [200512 13:39]:
>> Move mmc nodes to be compatible with the sdhci-omap driver. The following
>> modifications are required for omap_hsmmc specific properties:
>>
>> ti,non-removable: convert to the generic mmc non-removable
>> ti,needs-special-reset: co-opted into the sdhci-omap driver
>> ti,dual-volt: removed. Legacy property not used in am335x or am43xx
>> ti,needs-special-hs-handling: removed. Legacy property not used in am335x
>> or am43xx
>>
>> Also since the sdhci-omap driver does not support runtime PM, explicitly
>> disable the mmc3 instance in the dtsi.
>>
>> Signed-off-by: Faiz Abbas <[email protected]>
>> ---
>>
>> v2: Rebased to latest mainline where all kernel dependancies have been merged.
>>
>> Suspend/Resume is now supported in the sdhci-omap driver.
>
> Great, thanks for updating it.
>
> Keerthy, care to test for am3 and am4?
>

Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
like it is caused by the display subsystem. I have reported this to Tomi and
its being investigated.

Meanwhile I have tested this patch with display configs disabled and Keerthy's
suspend/resume tests pass on both am3 and am4.

Thanks,
Faiz

2020-05-19 08:24:24

by Faiz Abbas

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

Tony,

On 15/05/20 3:04 pm, Faiz Abbas wrote:
> Hi Tony,
>
> On 13/05/20 9:53 pm, Tony Lindgren wrote:
>> * Faiz Abbas <[email protected]> [200512 13:39]:
>>> Move mmc nodes to be compatible with the sdhci-omap driver. The following
>>> modifications are required for omap_hsmmc specific properties:
>>>
>>> ti,non-removable: convert to the generic mmc non-removable
>>> ti,needs-special-reset: co-opted into the sdhci-omap driver
>>> ti,dual-volt: removed. Legacy property not used in am335x or am43xx
>>> ti,needs-special-hs-handling: removed. Legacy property not used in am335x
>>> or am43xx
>>>
>>> Also since the sdhci-omap driver does not support runtime PM, explicitly
>>> disable the mmc3 instance in the dtsi.
>>>
>>> Signed-off-by: Faiz Abbas <[email protected]>
>>> ---
>>>
>>> v2: Rebased to latest mainline where all kernel dependancies have been merged.
>>>
>>> Suspend/Resume is now supported in the sdhci-omap driver.
>>
>> Great, thanks for updating it.
>>
>> Keerthy, care to test for am3 and am4?
>>
>
> Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
> like it is caused by the display subsystem. I have reported this to Tomi and
> its being investigated.
>
> Meanwhile I have tested this patch with display configs disabled and Keerthy's
> suspend/resume tests pass on both am3 and am4.
>

Can this patch be picked up? I would really like this to be merged by v5.8

Thanks,
Faiz

2020-05-19 15:50:13

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

* Faiz Abbas <[email protected]> [200519 08:23]:
> Tony,
>
> On 15/05/20 3:04 pm, Faiz Abbas wrote:
> > Hi Tony,
> >
> > On 13/05/20 9:53 pm, Tony Lindgren wrote:
> >> * Faiz Abbas <[email protected]> [200512 13:39]:
> >>> Move mmc nodes to be compatible with the sdhci-omap driver. The following
> >>> modifications are required for omap_hsmmc specific properties:
> >>>
> >>> ti,non-removable: convert to the generic mmc non-removable
> >>> ti,needs-special-reset: co-opted into the sdhci-omap driver
> >>> ti,dual-volt: removed. Legacy property not used in am335x or am43xx
> >>> ti,needs-special-hs-handling: removed. Legacy property not used in am335x
> >>> or am43xx
> >>>
> >>> Also since the sdhci-omap driver does not support runtime PM, explicitly
> >>> disable the mmc3 instance in the dtsi.
> >>>
> >>> Signed-off-by: Faiz Abbas <[email protected]>
> >>> ---
> >>>
> >>> v2: Rebased to latest mainline where all kernel dependancies have been merged.
> >>>
> >>> Suspend/Resume is now supported in the sdhci-omap driver.
> >>
> >> Great, thanks for updating it.
> >>
> >> Keerthy, care to test for am3 and am4?
> >>
> >
> > Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
> > like it is caused by the display subsystem. I have reported this to Tomi and
> > its being investigated.
> >
> > Meanwhile I have tested this patch with display configs disabled and Keerthy's
> > suspend/resume tests pass on both am3 and am4.

OK great thanks for checking it. Do you have the display subsystem
related commit that broke PM? I'm wondering if my recent DSS platform
data removal changes might have caused the regression.

> Can this patch be picked up? I would really like this to be merged by v5.8

Yeah me too :) Looks good to me, planning on applying these today.

Thanks,

Tony

2020-05-19 15:56:58

by Tomi Valkeinen

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

(Dropping DT from cc)

On 19/05/2020 18:48, Tony Lindgren wrote:

>>> Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
>>> like it is caused by the display subsystem. I have reported this to Tomi and
>>> its being investigated.
>>>
>>> Meanwhile I have tested this patch with display configs disabled and Keerthy's
>>> suspend/resume tests pass on both am3 and am4.
>
> OK great thanks for checking it. Do you have the display subsystem
> related commit that broke PM? I'm wondering if my recent DSS platform
> data removal changes might have caused the regression.

I spent a bit time looking at this, but unfortunately I wasn't even able to resume my AM4 evm from
suspend. I tried with rtcwake and with plain console (with no_console_suspend). I did not have DSS
loaded.

Anyone have quick hints on how to debug why resume doesn't seem to happen?

Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

2020-05-19 16:07:13

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

* Tomi Valkeinen <[email protected]> [200519 15:55]:
> (Dropping DT from cc)
>
> On 19/05/2020 18:48, Tony Lindgren wrote:
>
> > > > Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
> > > > like it is caused by the display subsystem. I have reported this to Tomi and
> > > > its being investigated.
> > > >
> > > > Meanwhile I have tested this patch with display configs disabled and Keerthy's
> > > > suspend/resume tests pass on both am3 and am4.
> >
> > OK great thanks for checking it. Do you have the display subsystem
> > related commit that broke PM? I'm wondering if my recent DSS platform
> > data removal changes might have caused the regression.
>
> I spent a bit time looking at this, but unfortunately I wasn't even able to
> resume my AM4 evm from suspend. I tried with rtcwake and with plain console
> (with no_console_suspend). I did not have DSS loaded.

My test-bbb-suspend script seems to have:

sudo modprobe wkup_m3_ipc
sudo modprobe pm33xx
sudo modprobe rtc-omap
rtcwake -m mem -s 5

I think the same should work for am437x. But some boards do not support
deep sleep like am437x-idk.

> Anyone have quick hints on how to debug why resume doesn't seem to happen?

You might get some info with no_console_suspend, but that might also
cause other issues.

Regards,

Tony

2020-05-27 19:06:47

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

* Tony Lindgren <[email protected]> [200519 09:05]:
> * Tomi Valkeinen <[email protected]> [200519 15:55]:
> > (Dropping DT from cc)
> >
> > On 19/05/2020 18:48, Tony Lindgren wrote:
> >
> > > > > Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
> > > > > like it is caused by the display subsystem. I have reported this to Tomi and
> > > > > its being investigated.
> > > > >
> > > > > Meanwhile I have tested this patch with display configs disabled and Keerthy's
> > > > > suspend/resume tests pass on both am3 and am4.
> > >
> > > OK great thanks for checking it. Do you have the display subsystem
> > > related commit that broke PM? I'm wondering if my recent DSS platform
> > > data removal changes might have caused the regression.
> >
> > I spent a bit time looking at this, but unfortunately I wasn't even able to
> > resume my AM4 evm from suspend. I tried with rtcwake and with plain console
> > (with no_console_suspend). I did not have DSS loaded.
>
> My test-bbb-suspend script seems to have:
>
> sudo modprobe wkup_m3_ipc
> sudo modprobe pm33xx
> sudo modprobe rtc-omap
> rtcwake -m mem -s 5
>
> I think the same should work for am437x. But some boards do not support
> deep sleep like am437x-idk.
>
> > Anyone have quick hints on how to debug why resume doesn't seem to happen?
>
> You might get some info with no_console_suspend, but that might also
> cause other issues.

To me it seems we may have some dss clock missing with the ti-sysc dts
changes that makes resume fail. Or else there is some ordering issue
between the dss components now on resume, I'll try to debug more.

Regards,

Tony

2020-05-29 21:57:37

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2] arm: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver

* Tony Lindgren <[email protected]> [200527 16:06]:
> * Tony Lindgren <[email protected]> [200519 09:05]:
> > * Tomi Valkeinen <[email protected]> [200519 15:55]:
> > > (Dropping DT from cc)
> > >
> > > On 19/05/2020 18:48, Tony Lindgren wrote:
> > >
> > > > > > Suspend/resume on am43xx-gpevm is broken right now in mainline and the regression looks
> > > > > > like it is caused by the display subsystem. I have reported this to Tomi and
> > > > > > its being investigated.
> > > > > >
> > > > > > Meanwhile I have tested this patch with display configs disabled and Keerthy's
> > > > > > suspend/resume tests pass on both am3 and am4.
> > > >
> > > > OK great thanks for checking it. Do you have the display subsystem
> > > > related commit that broke PM? I'm wondering if my recent DSS platform
> > > > data removal changes might have caused the regression.
> > >
> > > I spent a bit time looking at this, but unfortunately I wasn't even able to
> > > resume my AM4 evm from suspend. I tried with rtcwake and with plain console
> > > (with no_console_suspend). I did not have DSS loaded.
> >
> > My test-bbb-suspend script seems to have:
> >
> > sudo modprobe wkup_m3_ipc
> > sudo modprobe pm33xx
> > sudo modprobe rtc-omap
> > rtcwake -m mem -s 5
> >
> > I think the same should work for am437x. But some boards do not support
> > deep sleep like am437x-idk.
> >
> > > Anyone have quick hints on how to debug why resume doesn't seem to happen?
> >
> > You might get some info with no_console_suspend, but that might also
> > cause other issues.
>
> To me it seems we may have some dss clock missing with the ti-sysc dts
> changes that makes resume fail. Or else there is some ordering issue
> between the dss components now on resume, I'll try to debug more.

Looks like we now set the CLOCKATIVITY bit while earlier we did not
set it except for HWMOD_SET_DEFAULT_CLOCKACT cases. I've also found
few other minor issues, but I'm still seeing resume fail for DSS.
The clock and sysconfig registers look just fine, so getting closer.

Regards,

Tony