The Linux support for dwc3 on Apple silicon SoCs switched to using a
apple specific glue driver [1] that uses it own compatible string. The
glue driver handles platform specific requirements on the interaction
between dwc3 and the USB2/USB3 PHY and reset-controller for USB role
switches and plug events.
To keep USB working as before when the nodes still carried "snps,dwc3"
as compatible add "apple,t8103-dwc3" to the of match table. Eventually
it is probably advisable to add a dwc3-apple glue driver and write code
for the currently empty Apple Type-C PHY driver in phy-apple-atc.c.

Link: 
https://lore.kernel.org/asahi/[email protected]/
 [1]
Reviewed-by: Neal Gompa <[email protected]>
Reviewed-by: Mark Kettenis <[email protected]>
Reviewed-by: Marek Vasut <[email protected]>
Signed-off-by: Janne Grunau <[email protected]>
---
Changes in v2:
- sorted the entries in xhci_dwc3_ids alphabetically
- imported Reviewed-by: trailers
- Link to v1: 
https://lore.kernel.org/r/20260109-usb-dwc3-apple-compat-linux-v1-1-b6e255b5e...@jannau.net
---
 drivers/usb/host/xhci-dwc3.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 
e3e0ceff43e6abdb8643f265819eff28c2c802f4..8ad07a4b98c9574a5fa0cbfe83f5567e0f49f364
 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -237,6 +237,7 @@ static int xhci_dwc3_remove(struct udevice *dev)
 }
 
 static const struct udevice_id xhci_dwc3_ids[] = {
+       { .compatible = "apple,t8103-dwc3" },
        { .compatible = "snps,dwc3" },
        { }
 };

---
base-commit: 127a42c7257a6ffbbd1575ed1cbaa8f5408a44b3
change-id: 20260109-usb-dwc3-apple-compat-linux-821ee75bec48

Best regards,
-- 
Janne Grunau <[email protected]>

Reply via email to