* [PATCH v2 0/2] rockchip: Fix devices suspend freeze on RK3568/RK3566 @ 2026-06-24 19:27 Jonas Karlman 2026-06-24 19:27 ` [PATCH v2 1/2] dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI Jonas Karlman 2026-06-24 19:27 ` [PATCH v2 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman 0 siblings, 2 replies; 5+ messages in thread From: Jonas Karlman @ 2026-06-24 19:27 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Diederik de Haas, Greg Kroah-Hartman, devicetree, linux-rockchip, linux-usb, linux-arm-kernel, linux-kernel, Jonas Karlman This series fixes a system freeze during suspend in ohci_suspend() due to clk_usbphy1_480m not being enabled when EHCI/OHCI registers are accessed on e.g. a Raxa ROCK 3C board. Following pm_test modes work on my ROCK 3C with the missing usbphy clk refs added: echo N > /sys/module/printk/parameters/console_suspend echo devices > /sys/power/pm_test echo platform > /sys/power/pm_test echo processors > /sys/power/pm_test echo core > /sys/power/pm_test echo mem > /sys/power/state Changes in v2: - Include rockchip,rk3588-ehci in the EHCI constraint - Make clocks prop required for EHCI and OHCI - Collect t-b tag Jonas Karlman (2): dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 .../devicetree/bindings/usb/generic-ehci.yaml | 14 ++++++++++++++ .../devicetree/bindings/usb/generic-ohci.yaml | 7 ++++++- arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 16 ++++++++-------- 3 files changed, 28 insertions(+), 9 deletions(-) -- 2.54.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI 2026-06-24 19:27 [PATCH v2 0/2] rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman @ 2026-06-24 19:27 ` Jonas Karlman 2026-06-25 7:46 ` Krzysztof Kozlowski 2026-06-24 19:27 ` [PATCH v2 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman 1 sibling, 1 reply; 5+ messages in thread From: Jonas Karlman @ 2026-06-24 19:27 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Greg Kroah-Hartman Cc: Diederik de Haas, devicetree, linux-rockchip, linux-usb, linux-arm-kernel, linux-kernel, Jonas Karlman The Rockchip RK3568 EHCI/OHCI controller depends on clk_usbphy1_480m being enabled, or the system may freeze when registers are accessed. Add Rockchip RK3568 EHCI and OHCI compatibles with a similar four-clock constraint as RK3588, also extend the EHCI constraint to include RK3588 to match similar requirements of RK3588. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Existing DTs for RK3568 use the plain generic-ehci/ohci compatible, next patch make use of these new compatibles and adds the missing clk_usbphy1_480m clock references. Existing DTs for RK3588 have contained the required four clocks since the initial addition of the EHCI/OHCI nodes. Changes in v2: - Include rockchip,rk3588-ehci in the EHCI constraint - Make clocks prop required for EHCI and OHCI --- .../devicetree/bindings/usb/generic-ehci.yaml | 14 ++++++++++++++ .../devicetree/bindings/usb/generic-ohci.yaml | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/usb/generic-ehci.yaml b/Documentation/devicetree/bindings/usb/generic-ehci.yaml index 55a5aa7d7a54..a39f01e740b1 100644 --- a/Documentation/devicetree/bindings/usb/generic-ehci.yaml +++ b/Documentation/devicetree/bindings/usb/generic-ehci.yaml @@ -52,6 +52,7 @@ properties: - ibm,476gtr-ehci - nxp,lpc1850-ehci - qca,ar7100-ehci + - rockchip,rk3568-ehci - rockchip,rk3588-ehci - snps,hsdk-v1.0-ehci - socionext,uniphier-ehci @@ -186,6 +187,19 @@ allOf: required: - clocks - clock-names + - if: + properties: + compatible: + contains: + enum: + - rockchip,rk3568-ehci + - rockchip,rk3588-ehci + then: + properties: + clocks: + minItems: 4 + required: + - clocks unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/usb/generic-ohci.yaml b/Documentation/devicetree/bindings/usb/generic-ohci.yaml index d42f448fa204..19449a6b3033 100644 --- a/Documentation/devicetree/bindings/usb/generic-ohci.yaml +++ b/Documentation/devicetree/bindings/usb/generic-ohci.yaml @@ -47,6 +47,7 @@ properties: - hpe,gxp-ohci - ibm,476gtr-ohci - ingenic,jz4740-ohci + - rockchip,rk3568-ohci - rockchip,rk3588-ohci - snps,hsdk-v1.0-ohci - const: generic-ohci @@ -198,11 +199,15 @@ allOf: properties: compatible: contains: - const: rockchip,rk3588-ohci + enum: + - rockchip,rk3568-ohci + - rockchip,rk3588-ohci then: properties: clocks: minItems: 4 + required: + - clocks else: properties: clocks: -- 2.54.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI 2026-06-24 19:27 ` [PATCH v2 1/2] dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI Jonas Karlman @ 2026-06-25 7:46 ` Krzysztof Kozlowski 0 siblings, 0 replies; 5+ messages in thread From: Krzysztof Kozlowski @ 2026-06-25 7:46 UTC (permalink / raw) To: Jonas Karlman Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Greg Kroah-Hartman, Diederik de Haas, devicetree, linux-rockchip, linux-usb, linux-arm-kernel, linux-kernel On Wed, Jun 24, 2026 at 07:27:24PM +0000, Jonas Karlman wrote: > The Rockchip RK3568 EHCI/OHCI controller depends on clk_usbphy1_480m > being enabled, or the system may freeze when registers are accessed. > > Add Rockchip RK3568 EHCI and OHCI compatibles with a similar four-clock > constraint as RK3588, also extend the EHCI constraint to include RK3588 > to match similar requirements of RK3588. > > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > --- > Existing DTs for RK3568 use the plain generic-ehci/ohci compatible, > next patch make use of these new compatibles and adds the missing > clk_usbphy1_480m clock references. > > Existing DTs for RK3588 have contained the required four clocks since > the initial addition of the EHCI/OHCI nodes. > > Changes in v2: > - Include rockchip,rk3588-ehci in the EHCI constraint > - Make clocks prop required for EHCI and OHCI > --- > .../devicetree/bindings/usb/generic-ehci.yaml | 14 ++++++++++++++ > .../devicetree/bindings/usb/generic-ohci.yaml | 7 ++++++- > 2 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/usb/generic-ehci.yaml b/Documentation/devicetree/bindings/usb/generic-ehci.yaml > index 55a5aa7d7a54..a39f01e740b1 100644 > --- a/Documentation/devicetree/bindings/usb/generic-ehci.yaml > +++ b/Documentation/devicetree/bindings/usb/generic-ehci.yaml > @@ -52,6 +52,7 @@ properties: > - ibm,476gtr-ehci > - nxp,lpc1850-ehci > - qca,ar7100-ehci > + - rockchip,rk3568-ehci > - rockchip,rk3588-ehci > - snps,hsdk-v1.0-ehci > - socionext,uniphier-ehci > @@ -186,6 +187,19 @@ allOf: > required: > - clocks > - clock-names > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rockchip,rk3568-ehci > + - rockchip,rk3588-ehci > + then: > + properties: > + clocks: > + minItems: 4 > + required: > + - clocks This is ABI break for RK3588, so your commit msg should also mention that RK3588 is not working for example. Otherwise you provided rationale only for breaking RK3568 ABI. Same for OHCI part. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 2026-06-24 19:27 [PATCH v2 0/2] rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman 2026-06-24 19:27 ` [PATCH v2 1/2] dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI Jonas Karlman @ 2026-06-24 19:27 ` Jonas Karlman 2026-07-01 8:02 ` Michael Riesch 1 sibling, 1 reply; 5+ messages in thread From: Jonas Karlman @ 2026-06-24 19:27 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Peter Geis, Michael Riesch Cc: Diederik de Haas, Greg Kroah-Hartman, devicetree, linux-rockchip, linux-usb, linux-arm-kernel, linux-kernel, Jonas Karlman The EHCI/OHCI controller depends on clk_usbphy1_480m being enabled, or the system may freeze when registers are accessed, i.e. during suspend in ohci_suspend(). Add the missing clk_usbphy1_480m clocks reference to EHCI/OHCI controllers to ensure the clock is enabled when ECHI/OHCI registers are accessed to prevent a system freeze. Fixes suspend pm_test issue with EHCI/OHCI devices due to the missing clk_usbphy1_480m reference and makes following pm_test modes work: echo N > /sys/module/printk/parameters/console_suspend echo devices > /sys/power/pm_test echo platform > /sys/power/pm_test echo processors > /sys/power/pm_test echo core > /sys/power/pm_test echo mem > /sys/power/state Fixes: 91c4c3e06a25 ("arm64: dts: rockchip: add usb2 nodes to rk3568 device tree") Fixes: 78f7186095db ("arm64: dts: rockchip: rename and sort the rk356x usb2 phy handles") Tested-by: Diederik de Haas <diederik@cknow-tech.com> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- v2: Collect t-b tag --- arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi index a5832895bd39..c930a6fd6ea0 100644 --- a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi @@ -321,44 +321,44 @@ its: msi-controller@fd440000 { }; usb_host0_ehci: usb@fd800000 { - compatible = "generic-ehci"; + compatible = "rockchip,rk3568-ehci", "generic-ehci"; reg = <0x0 0xfd800000 0x0 0x40000>; interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>, - <&cru PCLK_USB>; + <&cru PCLK_USB>, <&usb2phy1>; phys = <&usb2phy1_otg>; phy-names = "usb"; status = "disabled"; }; usb_host0_ohci: usb@fd840000 { - compatible = "generic-ohci"; + compatible = "rockchip,rk3568-ohci", "generic-ohci"; reg = <0x0 0xfd840000 0x0 0x40000>; interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>, - <&cru PCLK_USB>; + <&cru PCLK_USB>, <&usb2phy1>; phys = <&usb2phy1_otg>; phy-names = "usb"; status = "disabled"; }; usb_host1_ehci: usb@fd880000 { - compatible = "generic-ehci"; + compatible = "rockchip,rk3568-ehci", "generic-ehci"; reg = <0x0 0xfd880000 0x0 0x40000>; interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>, - <&cru PCLK_USB>; + <&cru PCLK_USB>, <&usb2phy1>; phys = <&usb2phy1_host>; phy-names = "usb"; status = "disabled"; }; usb_host1_ohci: usb@fd8c0000 { - compatible = "generic-ohci"; + compatible = "rockchip,rk3568-ohci", "generic-ohci"; reg = <0x0 0xfd8c0000 0x0 0x40000>; interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>, - <&cru PCLK_USB>; + <&cru PCLK_USB>, <&usb2phy1>; phys = <&usb2phy1_host>; phy-names = "usb"; status = "disabled"; -- 2.54.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 2026-06-24 19:27 ` [PATCH v2 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman @ 2026-07-01 8:02 ` Michael Riesch 0 siblings, 0 replies; 5+ messages in thread From: Michael Riesch @ 2026-07-01 8:02 UTC (permalink / raw) To: Jonas Karlman, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Peter Geis Cc: Diederik de Haas, Greg Kroah-Hartman, devicetree, linux-rockchip, linux-usb, linux-arm-kernel, linux-kernel Hi Jonas, On 6/24/26 21:27, Jonas Karlman wrote: > The EHCI/OHCI controller depends on clk_usbphy1_480m being enabled, or > the system may freeze when registers are accessed, i.e. during suspend > in ohci_suspend(). > > Add the missing clk_usbphy1_480m clocks reference to EHCI/OHCI > controllers to ensure the clock is enabled when ECHI/OHCI registers are > accessed to prevent a system freeze. > > Fixes suspend pm_test issue with EHCI/OHCI devices due to the missing > clk_usbphy1_480m reference and makes following pm_test modes work: > > echo N > /sys/module/printk/parameters/console_suspend > > echo devices > /sys/power/pm_test > echo platform > /sys/power/pm_test > echo processors > /sys/power/pm_test > echo core > /sys/power/pm_test > > echo mem > /sys/power/state > > Fixes: 91c4c3e06a25 ("arm64: dts: rockchip: add usb2 nodes to rk3568 device tree") > Fixes: 78f7186095db ("arm64: dts: rockchip: rename and sort the rk356x usb2 phy handles") > Tested-by: Diederik de Haas <diederik@cknow-tech.com> > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Acked-by: Michael Riesch <michael.riesch@collabora.com> Thanks and best regards, Michael > --- > v2: Collect t-b tag > --- > arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi > index a5832895bd39..c930a6fd6ea0 100644 > --- a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi > @@ -321,44 +321,44 @@ its: msi-controller@fd440000 { > }; > > usb_host0_ehci: usb@fd800000 { > - compatible = "generic-ehci"; > + compatible = "rockchip,rk3568-ehci", "generic-ehci"; > reg = <0x0 0xfd800000 0x0 0x40000>; > interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>, > - <&cru PCLK_USB>; > + <&cru PCLK_USB>, <&usb2phy1>; > phys = <&usb2phy1_otg>; > phy-names = "usb"; > status = "disabled"; > }; > > usb_host0_ohci: usb@fd840000 { > - compatible = "generic-ohci"; > + compatible = "rockchip,rk3568-ohci", "generic-ohci"; > reg = <0x0 0xfd840000 0x0 0x40000>; > interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>, > - <&cru PCLK_USB>; > + <&cru PCLK_USB>, <&usb2phy1>; > phys = <&usb2phy1_otg>; > phy-names = "usb"; > status = "disabled"; > }; > > usb_host1_ehci: usb@fd880000 { > - compatible = "generic-ehci"; > + compatible = "rockchip,rk3568-ehci", "generic-ehci"; > reg = <0x0 0xfd880000 0x0 0x40000>; > interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>, > - <&cru PCLK_USB>; > + <&cru PCLK_USB>, <&usb2phy1>; > phys = <&usb2phy1_host>; > phy-names = "usb"; > status = "disabled"; > }; > > usb_host1_ohci: usb@fd8c0000 { > - compatible = "generic-ohci"; > + compatible = "rockchip,rk3568-ohci", "generic-ohci"; > reg = <0x0 0xfd8c0000 0x0 0x40000>; > interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>, > - <&cru PCLK_USB>; > + <&cru PCLK_USB>, <&usb2phy1>; > phys = <&usb2phy1_host>; > phy-names = "usb"; > status = "disabled"; ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-01 8:02 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-24 19:27 [PATCH v2 0/2] rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman 2026-06-24 19:27 ` [PATCH v2 1/2] dt-bindings: usb: Add Rockchip RK3568 compatible for EHCI and OHCI Jonas Karlman 2026-06-25 7:46 ` Krzysztof Kozlowski 2026-06-24 19:27 ` [PATCH v2 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566 Jonas Karlman 2026-07-01 8:02 ` Michael Riesch
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox