Message ID | 20200909093511.4728-1-amelie.delaunay@st.com |
---|---|
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 >