config USB_DWC2
- tristate "DesignWare USB2 DRD Core Support"
+ bool "DesignWare USB2 DRD Core Support"
depends on USB
help
Say Y here if your system has a Dual Role Hi-Speed USB
controller based on the DesignWare HSOTG IP Core.
- If you choose to build the driver as dynamically
- linked modules, a single dwc2.ko(regardless of mode of operation)
- will get built for both platform IPs and PCI.
+ For host mode, if you choose to build the driver as dynamically
+ linked modules, the core module will be called dwc2.ko, the PCI
+ bus interface module (if you have a PCI bus system) will be
+ 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.
-if USB_DWC2
+ 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.
-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)
+if USB_DWC2
config USB_DWC2_HOST
- bool "Host only mode"
+ tristate "Host only mode"
depends on USB
help
The Designware USB2.0 high-speed host controller
- integrated into many SoCs. Select this option if you want the
- driver to operate in Host-only mode.
+ integrated into many SoCs.
+
+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
bool "DWC2 PCI"
comment "Gadget mode requires USB Gadget support to be enabled"
config USB_DWC2_PERIPHERAL
- bool "Gadget only mode"
- depends on USB_GADGET=y || USB_GADGET=USB_DWC2
+ tristate "Gadget only mode"
+ depends on USB_GADGET
help
The Designware USB2.0 high-speed gadget controller
- 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.
+ integrated into many SoCs.
config USB_DWC2_DEBUG
bool "Enable Debugging Messages"
ccflags-$(CONFIG_USB_DWC2_DEBUG) += -DDEBUG
ccflags-$(CONFIG_USB_DWC2_VERBOSE) += -DVERBOSE_DEBUG
-obj-$(CONFIG_USB_DWC2) += dwc2.o
+obj-$(CONFIG_USB_DWC2_HOST) += dwc2.o
dwc2-y := core.o core_intr.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
+dwc2-y += hcd.o hcd_intr.o
+dwc2-y += hcd_queue.o hcd_ddma.o
# NOTE: The previous s3c-hsotg peripheral mode only driver has been moved to
# this location and renamed gadget.c. When building for dynamically linked
dwc2_pci-y := pci.o
endif
-dwc2-$(CONFIG_USB_DWC2_PLATFORM) += platform.o
+ifneq ($(CONFIG_USB_DWC2_PLATFORM),)
+ 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