From ed67590b8ac64ef49a9f7c1f74c23d2002b3558b Mon Sep 17 00:00:00 2001 From: William Wu Date: Thu, 21 Sep 2023 15:43:14 +0800 Subject: [PATCH] arm64: dts: rockchip: rk3588: Add aclk_usb for ehci and ohci controllers Test on RK3588 EVB1 with dwc3_of_simple_driver_init in initcall_blacklist like this: bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 initcall_blacklist=dwc3_of_simple_driver_init"; Kernel halt in ehci_bus_resume when read the intr_enable register of the ehci controller. It's because that the ehci controllers depend on the aclk_usb which only be managed by DWC3 controller driver right now. The clock dependency when access ehci/ohci controller registers: CPU -> hclk_vo1usbtop -> aclk_usb -> hclk_usb -> ehci/ohci This patch adds the aclk_usb for all ehci and ohci controllers. Signed-off-by: William Wu Change-Id: I66a622d7156d52451273423c4d6ca2cd965fe55a --- arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi index db1be01966d9..6b46d1b10cf7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi @@ -2587,8 +2587,8 @@ compatible = "rockchip,rk3588-ehci", "generic-ehci"; reg = <0x0 0xfc800000 0x0 0x40000>; interrupts = ; - clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>; - clock-names = "usbhost", "arbiter", "utmi"; + clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>, <&aclk_usb>; + clock-names = "usbhost", "arbiter", "utmi", "alk_usb"; companion = <&usb_host0_ohci>; phys = <&u2phy2_host>; phy-names = "usb2-phy"; @@ -2600,8 +2600,8 @@ compatible = "generic-ohci"; reg = <0x0 0xfc840000 0x0 0x40000>; interrupts = ; - clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>; - clock-names = "usbhost", "arbiter", "utmi"; + clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>, <&aclk_usb>; + clock-names = "usbhost", "arbiter", "utmi", "alk_usb"; phys = <&u2phy2_host>; phy-names = "usb2-phy"; power-domains = <&power RK3588_PD_USB>; @@ -2612,8 +2612,8 @@ compatible = "rockchip,rk3588-ehci", "generic-ehci"; reg = <0x0 0xfc880000 0x0 0x40000>; interrupts = ; - clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&u2phy3>; - clock-names = "usbhost", "arbiter", "utmi"; + clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&u2phy3>, <&aclk_usb>; + clock-names = "usbhost", "arbiter", "utmi", "alk_usb"; companion = <&usb_host1_ohci>; phys = <&u2phy3_host>; phy-names = "usb2-phy"; @@ -2625,8 +2625,8 @@ compatible = "generic-ohci"; reg = <0x0 0xfc8c0000 0x0 0x40000>; interrupts = ; - clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&u2phy3>; - clock-names = "usbhost", "arbiter", "utmi"; + clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&u2phy3>, <&aclk_usb>; + clock-names = "usbhost", "arbiter", "utmi", "alk_usb"; phys = <&u2phy3_host>; phy-names = "usb2-phy"; power-domains = <&power RK3588_PD_USB>;