On 14/02/2025 20:30, Marek Szyprowski wrote: > On 06.12.2024 17:31, André Draszik wrote: >> gs101's SS phy needs to be configured differently based on the >> connector orientation, as the SS link can only be established if the >> mux is configured correctly. >> >> The code to handle programming of the mux is in place already, this commit >> now adds the missing pieces to subscribe to the Type-C orientation >> switch event. >> >> Note that for this all to work we rely on the USB controller >> re-initialising us. It should invoke our .exit() upon cable unplug, and >> during cable plug we'll receive the orientation event after which we >> expect our .init() to be called. >> >> Above reinitialisation happens if the DWC3 controller can enter runtime >> suspend automatically. For the DWC3 driver, this is an opt-in: >> echo auto > /sys/devices/.../11110000.usb/power/control >> Once done, things work as long as the UDC is not bound as otherwise it >> stays busy because it doesn't cancel / stop outstanding TRBs. For now >> we have to manually unbind the UDC in that case: >> echo "" > sys/kernel/config/usb_gadget/.../UDC >> >> Note that if the orientation-switch property is missing from the DT, >> the code will behave as before this commit (meaning for gs101 it will >> work in SS mode in one orientation only). Other platforms are not >> affected either way. >> >> Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx> >> >> --- >> v3: >> * drop init to -1 of phy_drd->orientation (Vinod) >> * avoid #ifdef and switch to normal conditional IS_ENABLED() for >> CONFIG_TYPEC >> >> v2: >> * move #include typec_mux.h from parent patch into this one (Peter) >> --- >> drivers/phy/samsung/Kconfig | 1 + >> drivers/phy/samsung/phy-exynos5-usbdrd.c | 56 ++++++++++++++++++++++++++++++++ >> 2 files changed, 57 insertions(+) >> >> diff --git a/drivers/phy/samsung/Kconfig b/drivers/phy/samsung/Kconfig >> index f10afa3d7ff5..fc7bd1088576 100644 >> --- a/drivers/phy/samsung/Kconfig >> +++ b/drivers/phy/samsung/Kconfig >> @@ -80,6 +80,7 @@ config PHY_EXYNOS5_USBDRD >> tristate "Exynos5 SoC series USB DRD PHY driver" >> depends on (ARCH_EXYNOS && OF) || COMPILE_TEST >> depends on HAS_IOMEM >> + depends on TYPEC || (TYPEC=n && COMPILE_TEST) >> depends on USB_DWC3_EXYNOS >> select GENERIC_PHY >> select MFD_SYSCON So that explains why on recent next some of my boards don't boot. I was about to dig over the weekend. > > I've just noticed that the above disables Exynos DRD PHY driver in the > default exynos_defconfig for arm 32bit. Enabling CONFIG_TYPEC is > exynos_defconfig probably is the easiest way to fix this. I will send a > patch then. No, it's just wrong. Nothing here depends on typec and ARMv7 does not have Typec. Best regards, Krzysztof