On 21.08.2015 21:38, Marek Szyprowski wrote: > Dear All, > > Since v3.19 s3c-hsotg (DWC2) USB controller stopped working on > Exynos4412-based Trats2 platform. However on Odroid-U3 (which is also > Exynos4412-based) it worked fine all the time. After long investigation > it turned out that this was caused by 2 independent issues. > > First issue was caused by patch 7eec1266751bd3a25e35ce88686634c768fedc24 > ("ARM: dts: Add Maxim 77693 PMIC to exynos4412-trats2") added support > for Maxim 77693 regulators, but without defining consumers for them. > This causes regulator core to disable them. However SAFEOUT1 regulator > provides power supply to VBUS signal, which also power some USB phy > related parts of Exynos SoC core. This has been fixed by patches 1-3, > which adds support for VBUS regulator, defines them in DTS for all > Exynos platforms and changes probe sequence of the drivers to ensure no > deferred probe occurs (USB gadget subsystem doesn't support deferred > probe yet). > > Second issue is related to DWC2 driver rewrite and host/gadget/dual-role > integration code. DWC2 module on some platforms needs three additional > hardware resources: phy, clock and power supply. All of them must be > enabled/activated to properly initialize and operate. This was initially > handled in s3c-hsotg driver, which has been converted to 'gadget' part > of dwc2 driver. Unfortunately, not all of this code got moved to common > platform code, what resulted in accessing DWC2 registers without > enabling power supply regulators and clock. This caused initialization > failure on Exynos4412-based Trats2. Odroid U3 board worked fine, because > power supplies used by DWC2 module are marked there as 'always-on', > because they are also used by other modules (USB hub) and clock was > shared with USB2 PHY, so it was already enabled. This initialization > issue has been fixed by the last patch. While preparing it I've also > fixed a few minor issues found in nearby code (patches 4-6). > > I would like to get those patches merged separately to respective > subsystem trees: > patch 1: phy subsystem tree > patch 2: Samsung Exynos tree > patch 3: regulator subsystem tree > patch 4-7: USB gadget subsystem tree > > Patches have been prepared on top of linux-next from 20150821. Entire patchset tested on Trats2 board: Tested-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx> Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html