Commit e006fee6 authored by Dinh Nguyen's avatar Dinh Nguyen Committed by Greg Kroah-Hartman

usb: dwc2: Update Kconfig to support dual-role

Update DWC2 kconfig and makefile to support dual-role mode. The platform
file will always get compiled for the case where the controller is directly
connected to the CPU. So for loadable modules, only dwc2.ko is needed.
Signed-off-by: default avatarDinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: default avatarPaul Zimmerman <paulz@synopsys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c0155b9d
config USB_DWC2 config USB_DWC2
bool "DesignWare USB2 DRD Core Support" tristate "DesignWare USB2 DRD Core Support"
depends on USB depends on USB
help help
Say Y here if your system has a Dual Role Hi-Speed USB Say Y here if your system has a Dual Role Hi-Speed USB
controller based on the DesignWare HSOTG IP Core. controller based on the DesignWare HSOTG IP Core.
For host mode, if you choose to build the driver as dynamically If you choose to build the driver as dynamically
linked modules, the core module will be called dwc2.ko, the PCI linked modules, a single dwc2.ko(regardless of mode of operation)
bus interface module (if you have a PCI bus system) will be will get built for both platform IPs and PCI.
called dwc2_pci.ko, and the platform interface module (for
controllers directly connected to the CPU) will be called
dwc2_platform.ko. For gadget mode, there will be a single
module called dwc2_gadget.ko.
NOTE: The s3c-hsotg driver is now renamed to dwc2_gadget. The
host and gadget drivers are still currently separate drivers.
There are plans to merge the dwc2_gadget driver with the dwc2
host driver in the near future to create a dual-role driver.
if USB_DWC2 if USB_DWC2
choice
bool "DWC2 Mode Selection"
default USB_DWC2_DUAL_ROLE if (USB && USB_GADGET)
default USB_DWC2_HOST if (USB && !USB_GADGET)
default USB_DWC2_PERIPHERAL if (!USB && USB_GADGET)
config USB_DWC2_HOST config USB_DWC2_HOST
tristate "Host only mode" bool "Host only mode"
depends on USB depends on USB
help help
The Designware USB2.0 high-speed host controller The Designware USB2.0 high-speed host controller
integrated into many SoCs. integrated into many SoCs. Select this option if you want the
driver to operate in Host-only mode.
config USB_DWC2_PLATFORM
bool "DWC2 Platform"
depends on USB_DWC2_HOST
default USB_DWC2_HOST
help
The Designware USB2.0 platform interface module for
controllers directly connected to the CPU. This is only
used for host mode.
config USB_DWC2_PCI config USB_DWC2_PCI
bool "DWC2 PCI" bool "DWC2 PCI"
...@@ -47,11 +36,31 @@ config USB_DWC2_PCI ...@@ -47,11 +36,31 @@ config USB_DWC2_PCI
comment "Gadget mode requires USB Gadget support to be enabled" comment "Gadget mode requires USB Gadget support to be enabled"
config USB_DWC2_PERIPHERAL config USB_DWC2_PERIPHERAL
tristate "Gadget only mode" bool "Gadget only mode"
depends on USB_GADGET depends on USB_GADGET=y || USB_GADGET=USB_DWC2
help help
The Designware USB2.0 high-speed gadget controller The Designware USB2.0 high-speed gadget controller
integrated into many SoCs. integrated into many SoCs. Select this option if you want the
driver to operate in Peripheral-only mode. This option requires
USB_GADGET=y.
config USB_DWC2_DUAL_ROLE
bool "Dual Role mode"
depends on ((USB=y || USB=USB_DWC2) && (USB_GADGET=y || USB_GADGET=USB_DWC2))
help
Select this option if you want the driver to work in a dual-role
mode. In this mode both host and gadget features are enabled, and
the role will be determined by the cable that gets plugged-in. This
option requires USB_GADGET=y.
endchoice
config USB_DWC2_PLATFORM
bool
depends on !PCI
default y
help
The Designware USB2.0 platform interface module for
controllers directly connected to the CPU.
config USB_DWC2_DEBUG config USB_DWC2_DEBUG
bool "Enable Debugging Messages" bool "Enable Debugging Messages"
......
ccflags-$(CONFIG_USB_DWC2_DEBUG) += -DDEBUG ccflags-$(CONFIG_USB_DWC2_DEBUG) += -DDEBUG
ccflags-$(CONFIG_USB_DWC2_VERBOSE) += -DVERBOSE_DEBUG ccflags-$(CONFIG_USB_DWC2_VERBOSE) += -DVERBOSE_DEBUG
obj-$(CONFIG_USB_DWC2_HOST) += dwc2.o obj-$(CONFIG_USB_DWC2) += dwc2.o
dwc2-y := core.o core_intr.o dwc2-y := core.o core_intr.o
dwc2-y += hcd.o hcd_intr.o
dwc2-y += hcd_queue.o hcd_ddma.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
# NOTE: The previous s3c-hsotg peripheral mode only driver has been moved to # NOTE: The previous s3c-hsotg peripheral mode only driver has been moved to
# this location and renamed gadget.c. When building for dynamically linked # this location and renamed gadget.c. When building for dynamically linked
...@@ -19,10 +26,4 @@ ifneq ($(CONFIG_USB_DWC2_PCI),) ...@@ -19,10 +26,4 @@ ifneq ($(CONFIG_USB_DWC2_PCI),)
dwc2_pci-y := pci.o dwc2_pci-y := pci.o
endif endif
ifneq ($(CONFIG_USB_DWC2_PLATFORM),) dwc2-$(CONFIG_USB_DWC2_PLATFORM) += platform.o
obj-$(CONFIG_USB_DWC2_HOST) += dwc2_platform.o
dwc2_platform-y := platform.o
endif
obj-$(CONFIG_USB_DWC2_PERIPHERAL) += dwc2_gadget.o
dwc2_gadget-y := gadget.o
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment