Message ID | 20190506130046.20898-1-m.szyprowski@samsung.com |
---|---|
State | Superseded |
Headers | show |
Series | usb: dwc2: Force 8bit UTMI width for Samsung Exynos SoCs | expand |
On 5/6/2019 5:01 PM, Marek Szyprowski wrote: > Samsung Exynos SoCs require to force UTMI width to 8bit, otherwise the > host side of the shared USB2 PHY doesn't work. > > Reported-by: Krzysztof Kozlowski <krzk@kernel.org> > Fixes: 707d80f0a3c5 ("usb: dwc2: gadget: Replace phyif with phy_utmi_width") > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Minas Harutyunyan <hminas@synopsys.com> > --- > drivers/usb/dwc2/params.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c > index 6900eea57526..9ece4affb9d4 100644 > --- a/drivers/usb/dwc2/params.c > +++ b/drivers/usb/dwc2/params.c > @@ -76,6 +76,7 @@ static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg) > struct dwc2_core_params *p = &hsotg->params; > > p->power_down = 0; > + p->phy_utmi_width = 8; > } > > static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg) >
Hi Marek, your patch did not help on stable v5.1 [ 3.255963] samsung-usb2-phy 125b0000.exynos-usbphy: 125b0000.exynos-usbphy supply vbus not found, using dummy regulator [ 4.044547] usbcore: registered new interface driver smsc95xx [ 4.112261] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.01 [ 4.120363] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 4.127560] usb usb1: Product: EHCI Host Controller [ 4.132415] usb usb1: Manufacturer: Linux 5.1.0-00005-geb4efae48eb5 ehci_hcd [ 4.139446] usb usb1: SerialNumber: 12580000.ehci [ 4.183056] usb3503 0-0008: switched to HUB mode [ 4.183121] usb3503 0-0008: usb3503_probe: probed in hub mode [ 4.488344] usb 1-2: new high-speed USB device number 2 using exynos-ehci [ 4.675605] usb 1-2: New USB device found, idVendor=0424, idProduct=3503, bcdDevice=a1.a0 [ 4.678166] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 4.686140] usb 1-2: skipping disabled interface 0 root@odroid-x2:~# lsusb Bus 001 Device 002: ID 0424:3503 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Am 06.05.19 um 15:00 schrieb Marek Szyprowski: > Samsung Exynos SoCs require to force UTMI width to 8bit, otherwise the > host side of the shared USB2 PHY doesn't work. > > Reported-by: Krzysztof Kozlowski <krzk@kernel.org> > Fixes: 707d80f0a3c5 ("usb: dwc2: gadget: Replace phyif with phy_utmi_width") > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/usb/dwc2/params.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c > index 6900eea57526..9ece4affb9d4 100644 > --- a/drivers/usb/dwc2/params.c > +++ b/drivers/usb/dwc2/params.c > @@ -76,6 +76,7 @@ static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg) > struct dwc2_core_params *p = &hsotg->params; > > p->power_down = 0; > + p->phy_utmi_width = 8; > } > > static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg) > Gruß, -- Markus Reichl
Hi Marek, Am 07.05.19 um 14:03 schrieb Marek Szyprowski: > Hi All, > > On 2019-05-07 11:17, Marek Szyprowski wrote: >> Hi Markus, >> >> On 2019-05-07 10:12, Markus Reichl wrote: >>> Hi Marek, >>> >>> your patch did not help on stable v5.1 >>> >>> [ 3.255963] samsung-usb2-phy 125b0000.exynos-usbphy: >>> 125b0000.exynos-usbphy supply vbus not found, using dummy regulator >>> [ 4.044547] usbcore: registered new interface driver smsc95xx >>> [ 4.112261] usb usb1: New USB device found, idVendor=1d6b, >>> idProduct=0002, bcdDevice= 5.01 >>> [ 4.120363] usb usb1: New USB device strings: Mfr=3, Product=2, >>> SerialNumber=1 >>> [ 4.127560] usb usb1: Product: EHCI Host Controller >>> [ 4.132415] usb usb1: Manufacturer: Linux >>> 5.1.0-00005-geb4efae48eb5 ehci_hcd >>> [ 4.139446] usb usb1: SerialNumber: 12580000.ehci >>> [ 4.183056] usb3503 0-0008: switched to HUB mode >>> [ 4.183121] usb3503 0-0008: usb3503_probe: probed in hub mode >>> [ 4.488344] usb 1-2: new high-speed USB device number 2 using >>> exynos-ehci >>> [ 4.675605] usb 1-2: New USB device found, idVendor=0424, >>> idProduct=3503, bcdDevice=a1.a0 >>> [ 4.678166] usb 1-2: New USB device strings: Mfr=0, Product=0, >>> SerialNumber=0 >>> [ 4.686140] usb 1-2: skipping disabled interface 0 >>> >>> root@odroid-x2:~# lsusb >>> Bus 001 Device 002: ID 0424:3503 Standard Microsystems Corp. >>> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub >> >> This patch fixes the issue introduced by "usb: dwc2: gadget: Replace >> phyif with phy_utmi_width" commit, which is queued only to linux-next >> so far. Stable v5.1 doesn't include it, so the fix doesn't change >> anything on v5.1. >> >> I've checked and OdroidU3 works fine with v5.1 release, but X2 fails >> to detect USB devices. I will investigate this in a few minutes... > > > Broken USB on X2 is caused by commit > 01fdf179f4b064d4c9d30b39aba178caf32649f4 ("usb: core: skip interfaces > disabled in devicetree"). > > I looks that the mentioned commit conflicts with the Exynos EHCI and > OHCI bindings and the way the PHY ports are defined for those drivers. > It worked on U3 only by the pure coincidence. This is probably a > "minimal" fix for this issue: Thanks Marek, below fix enables USB on Odroid-X2 with stable v5.1. > > diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c > index 82239f27c4cc..cd455c4add25 100644 > --- a/drivers/usb/core/message.c > +++ b/drivers/usb/core/message.c > @@ -2007,6 +2007,7 @@ int usb_set_configuration(struct usb_device *dev, > int configuration) > struct usb_interface *intf = cp->interface[i]; > > if (intf->dev.of_node && > + of_device_is_compatible(intf->dev.of_node, NULL) && > !of_device_is_available(intf->dev.of_node)) { > dev_info(&dev->dev, "skipping disabled > interface %d\n", > intf->cur_altsetting->desc.bInterfaceNumber); > > I will try to describe the problem in details and discuss it on the usb > mailing list. > > Best regards > Gruß, -- Markus Reichl
On Mon, 6 May 2019 at 15:00, Marek Szyprowski <m.szyprowski@samsung.com> wrote: > > Samsung Exynos SoCs require to force UTMI width to 8bit, otherwise the > host side of the shared USB2 PHY doesn't work. > > Reported-by: Krzysztof Kozlowski <krzk@kernel.org> > Fixes: 707d80f0a3c5 ("usb: dwc2: gadget: Replace phyif with phy_utmi_width") > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Tested-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index 6900eea57526..9ece4affb9d4 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c @@ -76,6 +76,7 @@ static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg) struct dwc2_core_params *p = &hsotg->params; p->power_down = 0; + p->phy_utmi_width = 8; } static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
Samsung Exynos SoCs require to force UTMI width to 8bit, otherwise the host side of the shared USB2 PHY doesn't work. Reported-by: Krzysztof Kozlowski <krzk@kernel.org> Fixes: 707d80f0a3c5 ("usb: dwc2: gadget: Replace phyif with phy_utmi_width") Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/usb/dwc2/params.c | 1 + 1 file changed, 1 insertion(+) -- 2.17.1