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: Dinh Nguyen <dinguyen@opensource.altera.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c0155b9d5e
commit
e006fee6ec
@ -1,40 +1,29 @@
|
|||||||
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
|
|||||||
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"
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
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
|
||||||
|
|
||||||
|
ifneq ($(filter y,$(CONFIG_USB_DWC2_HOST) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
|
||||||
dwc2-y += hcd.o hcd_intr.o
|
dwc2-y += hcd.o hcd_intr.o
|
||||||
dwc2-y += hcd_queue.o hcd_ddma.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),)
|
|||||||
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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user