[PATCH v6 0/3] Add USB role switch support to DWC2
Amelie DELAUNAY
amelie.delaunay at st.com
Thu Sep 24 08:27:46 EDT 2020
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
>
More information about the linux-arm-kernel
mailing list