[PATCH] arm64: dts: imx8m: correct usb power domain
Frieder Schrempf
frieder.schrempf at kontron.de
Fri Apr 29 02:03:42 PDT 2022
Am 29.04.22 um 09:43 schrieb Li Jun:
> pgc_otg1/2 is for each usb phy and pgc_hsiomix is shared
> by 2 usb controllers, so assign those power domains to
> correct controller and phy node, decouple the pgc_otg1/2
> from pgc_hsiomix since there is no hardware dependency.
>
> Suggested-by: Jacky Bai <ping.bai at nxp.com>
> Signed-off-by: Li Jun <jun.li at nxp.com>
Thanks for the patch!
In my previous test I probably made some mistake. The second USB
controller was kept enabled by the onboard hub. When I disable the
second port and test the patch with the first port only, resuming from
autosuspend still doesn't work, even when I keep the HSIOMIX as parent
for OTG1/2. So there's probably still something missing...
> ---
> arch/arm64/boot/dts/freescale/imx8mm.dtsi | 8 ++++----
> arch/arm64/boot/dts/freescale/imx8mn.dtsi | 4 ++--
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> index 1ee05677c2dd..3ff71ca122e4 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> @@ -275,6 +275,7 @@ usbphynop1: usbphynop1 {
> clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
> assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
> assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
> + power-domains = <&pgc_otg1>;
> clock-names = "main_clk";
> };
>
> @@ -284,6 +285,7 @@ usbphynop2: usbphynop2 {
> clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
> assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
> assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
> + power-domains = <&pgc_otg2>;
> clock-names = "main_clk";
> };
>
> @@ -669,13 +671,11 @@ pgc_pcie: power-domain at 1 {
> pgc_otg1: power-domain at 2 {
> #power-domain-cells = <0>;
> reg = <IMX8MM_POWER_DOMAIN_OTG1>;
> - power-domains = <&pgc_hsiomix>;
> };
>
> pgc_otg2: power-domain at 3 {
> #power-domain-cells = <0>;
> reg = <IMX8MM_POWER_DOMAIN_OTG2>;
> - power-domains = <&pgc_hsiomix>;
> };
>
> pgc_gpumix: power-domain at 4 {
> @@ -1180,7 +1180,7 @@ usbotg1: usb at 32e40000 {
> assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
> phys = <&usbphynop1>;
> fsl,usbmisc = <&usbmisc1 0>;
> - power-domains = <&pgc_otg1>;
> + power-domains = <&pgc_hsiomix>;
> status = "disabled";
> };
>
> @@ -1200,7 +1200,7 @@ usbotg2: usb at 32e50000 {
> assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
> phys = <&usbphynop2>;
> fsl,usbmisc = <&usbmisc2 0>;
> - power-domains = <&pgc_otg2>;
> + power-domains = <&pgc_hsiomix>;
> status = "disabled";
> };
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> index 8def5d679e7e..5482180236ae 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> @@ -662,7 +662,6 @@ pgc_hsiomix: power-domain at 0 {
> pgc_otg1: power-domain at 1 {
> #power-domain-cells = <0>;
> reg = <IMX8MN_POWER_DOMAIN_OTG1>;
> - power-domains = <&pgc_hsiomix>;
> };
>
> pgc_gpumix: power-domain at 2 {
> @@ -1076,7 +1075,7 @@ usbotg1: usb at 32e40000 {
> assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>;
> phys = <&usbphynop1>;
> fsl,usbmisc = <&usbmisc1 0>;
> - power-domains = <&pgc_otg1>;
> + power-domains = <&pgc_hsiomix>;
> status = "disabled";
> };
>
> @@ -1174,6 +1173,7 @@ usbphynop1: usbphynop1 {
> clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
> assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
> assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
> + power-domains = <&pgc_otg1>;
> clock-names = "main_clk";
> };
> };
More information about the linux-arm-kernel
mailing list