On 2021-11-08 18:09:46 +0100, Sven Peter wrote: > As mad as it sounds, the dwc3 controller present on Apple SoCs must be > reset and reinitialized whenever a device is unplugged from the root port > and triggers a role switch notification from the USB PD controller. > > This is required for at least two reasons: > > - The USB2 D+/D- lines are connected through a stateful eUSB2 repeater > which in turn is controlled by a variant of the TI TPS6598x USB PD > chip. When the USB PD controller detects a hotplug event it resets > the eUSB2 repeater. Afterwards, no new device is recognized before > the DWC3 core and PHY are reset as well. > > - It's possible to completely break the dwc3 controller by switching > it to device mode and unplugging the cable at just the wrong time. > Even a CORESOFTRESET is not enough to allow new devices again. > The only workaround is to trigger a hard reset of the entire > dwc3 core. This also happens when running macOS on these > machines. This patch is necessary and works on M1 Max (Macbook Pro 14" 2021). Tested with compatible = "apple,t6000,dwc3", "apple,dwc3", "snps,dwc3";. Feel free to add Tested-by: Janne Grunau <j@xxxxxxxxxx> Janne