@@ -470,6 +470,7 @@ usb_drd0_dwc3: usb@23000000 {
snps,dis-u2-freeclk-exists-quirk;
snps,dis-del-phy-power-chg-quirk;
snps,dis-tx-ipgap-linecheck-quirk;
+ snps,dis_u2_susphy_quirk;
snps,parkmode-disable-hs-quirk;
snps,parkmode-disable-ss-quirk;
status = "disabled";
@@ -496,6 +497,7 @@ usb_drd1_dwc3: usb@23400000 {
snps,dis-del-phy-power-chg-quirk;
snps,dis-tx-ipgap-linecheck-quirk;
snps,dis_rxdet_inp3_quirk;
+ snps,dis_u2_susphy_quirk;
snps,parkmode-disable-hs-quirk;
snps,parkmode-disable-ss-quirk;
dma-coherent;
The dwc3 controllers on RK3576 appear to have some quirky behaviour relating to runtime power suspension. Specifically, they will cause SError aborts on register reads in the xhci code when setting the device role. Downstream appears to work around this by manually checking for the rk3576 compatible in the dwc3 core driver, and then setting the autosuspend delay to 200. This appears to be smaller than what mainline uses, and I'm not quite sure how that fixes it, but I could also be reading the code wrong. The important takeaway is that the RK3399 uses the same codepath. Looking at RK3399 in mainline then, we see that it has one quirk that RK3576 doesn't have in its dwc3 controllers: snps,dis_u2_susphy_quirk. Long story short, adding the snps,dis_u2_susphy_quirk property to rk3576.dtsi's dwc3 controllers fixes the issue. Quite suspicious that this is not needed among usb controllers based on dwc3 in other Rockchip designs, especially other RK35xx ones. Fixes: 23ec57a32da4 ("arm64: dts: rockchip: add usb related nodes for rk3576") Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> --- arch/arm64/boot/dts/rockchip/rk3576.dtsi | 2 ++ 1 file changed, 2 insertions(+)