Download raw body.
rkclock(4): fix USB-related bitmasks for RK3399
This is currently dead code as "rockchip,rk3399-usb2phy" isn't handled
by rkusbphy(4) (the change was reverted) so can either be removed or
needs to be fixed.
I'm booting Pinebook Pro with 2023.07 U-Boot after "usb
start" and indeed those clocks are disabled:
CRU_CLKGATE_CON6: 0x00000060
CRU_CLKGATE_CON13: 0x000000f0
After that it hangs hard without any diagnostics trying to attach
ohci(4) on any read or write to its bus region.
However with changes to rkusbphy(4) added back it manages to attach
and continues to boot so they must be doing something important but
not quite right, full speed device attached to xHCI hubs
(TYPEC{0,1}_D* signals) works, for EHCI and OHCI (HOST{0,1}_D*)
there's zero reaction. This can be fixed later.
---
diff --git sys/dev/fdt/rkclock.c sys/dev/fdt/rkclock.c
index 8721604f7746..82e6d42d2d6d 100644
--- sys/dev/fdt/rkclock.c
+++ sys/dev/fdt/rkclock.c
@@ -2998,22 +2998,22 @@ rk3399_enable(void *cookie, uint32_t *cells, int on)
switch (idx) {
case RK3399_CLK_USB2PHY0_REF:
- HWRITE4(sc, RK3399_CRU_CLKGATE_CON(6), (5 << 0) << 16);
+ HWRITE4(sc, RK3399_CRU_CLKGATE_CON(6), (1 << 5) << 16);
break;
case RK3399_CLK_USB2PHY1_REF:
- HWRITE4(sc, RK3399_CRU_CLKGATE_CON(6), (6 << 0) << 16);
+ HWRITE4(sc, RK3399_CRU_CLKGATE_CON(6), (1 << 6) << 16);
break;
case RK3399_CLK_UPHY0_TCPDPHY_REF:
- HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (4 << 0) << 16);
+ HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (1 << 4) << 16);
break;
case RK3399_CLK_UPHY0_TCPDCORE:
- HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (5 << 0) << 16);
+ HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (1 << 5) << 16);
break;
case RK3399_CLK_UPHY1_TCPDPHY_REF:
- HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (6 << 0) << 16);
+ HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (1 << 6) << 16);
break;
case RK3399_CLK_UPHY1_TCPDCORE:
- HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (7 << 0) << 16);
+ HWRITE4(sc, RK3399_CRU_CLKGATE_CON(13), (1 << 7) << 16);
break;
case RK3399_ACLK_GMAC:
HWRITE4(sc, RK3399_CRU_CLKGATE_CON(32), (1 << 0) << 16);
rkclock(4): fix USB-related bitmasks for RK3399