Message ID | 20200909093511.4728-1-amelie.delaunay@st.com (mailing list archive) |
---|---|
Headers | show |
Series | Add USB role switch support to DWC2 | expand |
Gentle reminder on the whole series instead. Thanks, Amelie On 9/9/20 11:35 AM, Amelie DELAUNAY wrote: > When using usb-c connector (but it can also be the case with a micro-b > connector), iddig, avalid, bvalid, vbusvalid input signals may not be > connected to the DWC2 OTG controller. > DWC2 OTG controller features an overriding control of the PHY voltage valid > and ID input signals. > So, missing signals can be forced using usb role from usb role switch and > this override feature. > > This series adds support for usb role switch to dwc2, by using overriding > control of the PHY voltage valid and ID input signals. > > It has been tested on stm32mp157c-dk2 [1], which has a Type-C connector > managed by a Type-C port controller, and connected to USB OTG controller. > > [1] https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html > > Amelie Delaunay (3): > dt-bindings: usb: dwc2: add optional usb-role-switch property > usb: dwc2: override PHY input signals with usb role switch support > usb: dwc2: don't use ID/Vbus detection if usb-role-switch on STM32MP15 > SoCs > --- > Changes in v6: > - Select USB_ROLE_SWITCH if USB_DWC2, and not only if USB_DWC2_DUAL_ROLE: > drd.c is built whatever DWC2 mode (DUAL, HOST, PERIPHERAL) as it is used also > to detect attach/detach (so a-valid/b-valid sessions). > Changes in v5: > - Use device_property_read_bool instead of of_read_property_bool in params.c > Changes in v4: > - Simplify call to dwc2_force_mode in drd.c > - Add error_drd label in probe error path in platform.c > Changes in v3: > - Fix build issue reported by kernel test robot in drd.c > Changes in v2: > - Previous DT patch already in stm32-next branch so removed from v2 patchset > "ARM: dts: stm32: enable usb-role-switch on USB OTG on stm32mp15xx-dkx" > - DWC2 DT bindings update added > - Build issue reported by kernel test robot fixed > - Martin's comments taken into account > --- > .../devicetree/bindings/usb/dwc2.yaml | 4 + > drivers/usb/dwc2/Kconfig | 1 + > drivers/usb/dwc2/Makefile | 2 +- > drivers/usb/dwc2/core.h | 9 + > drivers/usb/dwc2/drd.c | 180 ++++++++++++++++++ > drivers/usb/dwc2/gadget.c | 2 +- > drivers/usb/dwc2/params.c | 2 +- > drivers/usb/dwc2/platform.c | 20 +- > 8 files changed, 215 insertions(+), 5 deletions(-) > create mode 100644 drivers/usb/dwc2/drd.c >
On 9/24/2020 4:27 PM, Amelie DELAUNAY wrote: > Gentle reminder on the whole series instead. > > Thanks, > Amelie > > On 9/9/20 11:35 AM, Amelie DELAUNAY wrote: >> When using usb-c connector (but it can also be the case with a micro-b >> connector), iddig, avalid, bvalid, vbusvalid input signals may not be >> connected to the DWC2 OTG controller. >> DWC2 OTG controller features an overriding control of the PHY voltage >> valid >> and ID input signals. >> So, missing signals can be forced using usb role from usb role switch >> and >> this override feature. >> >> This series adds support for usb role switch to dwc2, by using >> overriding >> control of the PHY voltage valid and ID input signals. >> >> It has been tested on stm32mp157c-dk2 [1], which has a Type-C connector >> managed by a Type-C port controller, and connected to USB OTG >> controller. >> >> [1] >> https://urldefense.com/v3/__https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html__;!!A4F2R9G_pg!LArZ8m2rAg5r1gjIUgMe3YNtFeRB8li8yKNkU0n3UqbgNZADD96VXRTHT7BLT4o$ >> >> Amelie Delaunay (3): >> dt-bindings: usb: dwc2: add optional usb-role-switch property >> usb: dwc2: override PHY input signals with usb role switch support >> usb: dwc2: don't use ID/Vbus detection if usb-role-switch on >> STM32MP15 >> SoCs >> --- >> Changes in v6: >> - Select USB_ROLE_SWITCH if USB_DWC2, and not only if >> USB_DWC2_DUAL_ROLE: >> drd.c is built whatever DWC2 mode (DUAL, HOST, PERIPHERAL) as it >> is used also >> to detect attach/detach (so a-valid/b-valid sessions). >> Changes in v5: >> - Use device_property_read_bool instead of of_read_property_bool in >> params.c >> Changes in v4: >> - Simplify call to dwc2_force_mode in drd.c >> - Add error_drd label in probe error path in platform.c >> Changes in v3: >> - Fix build issue reported by kernel test robot in drd.c >> Changes in v2: >> - Previous DT patch already in stm32-next branch so removed from v2 >> patchset >> "ARM: dts: stm32: enable usb-role-switch on USB OTG on >> stm32mp15xx-dkx" >> - DWC2 DT bindings update added >> - Build issue reported by kernel test robot fixed >> - Martin's comments taken into account >> --- >> .../devicetree/bindings/usb/dwc2.yaml | 4 + >> drivers/usb/dwc2/Kconfig | 1 + >> drivers/usb/dwc2/Makefile | 2 +- >> drivers/usb/dwc2/core.h | 9 + >> drivers/usb/dwc2/drd.c | 180 ++++++++++++++++++ >> drivers/usb/dwc2/gadget.c | 2 +- >> drivers/usb/dwc2/params.c | 2 +- >> drivers/usb/dwc2/platform.c | 20 +- >> 8 files changed, 215 insertions(+), 5 deletions(-) >> create mode 100644 drivers/usb/dwc2/drd.c >> Acked-by: Minas Harutyunyan <hminas@synopsys.com> for dwc2