mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 09:50:04 +00:00
![Amelie Delaunay](/assets/img/avatar_default.png)
This patch adds support for usb role switch to dwc2, by using overriding control of the PHY voltage valid and ID input signals. iddig signal (ID) can be overridden: - when setting GUSBCFG_FORCEHOSTMODE, iddig input pin is overridden with 1; - when setting GUSBCFG_FORCEDEVMODE, iddig input pin is overridden with 0. avalid/bvalid/vbusvalid signals can be overridden respectively with: - GOTGCTL_AVALOEN + GOTGCTL_AVALOVAL - GOTGCTL_BVALOEN + GOTGCTL_BVALOVAL - GOTGCTL_VBVALEN + GOTGCTL_VBVALOVAL It is possible to determine valid sessions thanks to usb role switch: - if USB_ROLE_NONE then !avalid && !bvalid && !vbusvalid - if USB_ROLE_DEVICE then !avalid && bvalid && vbusvalid - if USB_ROLE_HOST then avalid && !bvalid && vbusvalid Acked-by: Minas Harutyunyan <hminas@synopsys.com> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
29 lines
995 B
Makefile
29 lines
995 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
ccflags-$(CONFIG_USB_DWC2_DEBUG) += -DDEBUG
|
|
ccflags-$(CONFIG_USB_DWC2_VERBOSE) += -DVERBOSE_DEBUG
|
|
|
|
obj-$(CONFIG_USB_DWC2) += dwc2.o
|
|
dwc2-y := core.o core_intr.o platform.o drd.o
|
|
dwc2-y += params.o
|
|
|
|
ifneq ($(filter y,$(CONFIG_USB_DWC2_HOST) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
|
|
dwc2-y += hcd.o hcd_intr.o
|
|
dwc2-y += hcd_queue.o hcd_ddma.o
|
|
endif
|
|
|
|
ifneq ($(filter y,$(CONFIG_USB_DWC2_PERIPHERAL) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
|
|
dwc2-y += gadget.o
|
|
endif
|
|
|
|
ifneq ($(CONFIG_DEBUG_FS),)
|
|
dwc2-y += debugfs.o
|
|
endif
|
|
|
|
# NOTE: The previous s3c-hsotg peripheral mode only driver has been moved to
|
|
# this location and renamed gadget.c. When building for dynamically linked
|
|
# modules, dwc2.ko will get built for host mode, peripheral mode, and dual-role
|
|
# mode. The PCI bus interface module will called dwc2_pci.ko and the platform
|
|
# interface module will be called dwc2_platform.ko.
|
|
|
|
obj-$(CONFIG_USB_DWC2_PCI) += dwc2_pci.o
|
|
dwc2_pci-y := pci.o
|