|
|
@@ -0,0 +1,146 @@
|
|
|
+--- a/drivers/usb/dwc2/Kconfig
|
|
|
++++ b/drivers/usb/dwc2/Kconfig
|
|
|
+@@ -1,6 +1,6 @@
|
|
|
+ config USB_DWC2
|
|
|
+- bool "DesignWare USB2 DRD Core Support"
|
|
|
+- depends on USB
|
|
|
++ tristate "DesignWare USB2 DRD Core Support"
|
|
|
++ depends on USB || USB_GADGET
|
|
|
+ help
|
|
|
+ Say Y here if your system has a Dual Role Hi-Speed USB
|
|
|
+ controller based on the DesignWare HSOTG IP Core.
|
|
|
+@@ -10,49 +10,61 @@ config USB_DWC2
|
|
|
+ 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.
|
|
|
+-
|
|
|
+- 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.
|
|
|
++ dwc2_platform.ko. For all modes(host, gadget and dual-role), there
|
|
|
++ will be an additional module named dwc2.ko.
|
|
|
+
|
|
|
+ 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
|
|
|
+- tristate "Host only mode"
|
|
|
++ bool "Host only mode"
|
|
|
+ depends on USB
|
|
|
+ help
|
|
|
+ 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
|
|
|
++comment "Gadget/Dual-role 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
|
|
|
++ 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 to be enabled.
|
|
|
++
|
|
|
++config USB_DWC2_DUAL_ROLE
|
|
|
++ bool "Dual Role mode"
|
|
|
++ depends on (USB=y || USB=USB_DWC2) && (USB_GADGET=y || USB_GADGET=USB_DWC2)
|
|
|
+ help
|
|
|
+- The Designware USB2.0 platform interface module for
|
|
|
+- controllers directly connected to the CPU. This is only
|
|
|
+- used for host mode.
|
|
|
++ 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 to be enabled.
|
|
|
++endchoice
|
|
|
++
|
|
|
++config USB_DWC2_PLATFORM
|
|
|
++ tristate "DWC2 Platform"
|
|
|
++ default USB_DWC2_HOST || USB_DWC2_PERIPHERAL
|
|
|
++ help
|
|
|
++ The Designware USB2.0 platform interface module for
|
|
|
++ controllers directly connected to the CPU.
|
|
|
+
|
|
|
+ config USB_DWC2_PCI
|
|
|
+- bool "DWC2 PCI"
|
|
|
++ tristate "DWC2 PCI"
|
|
|
+ depends on USB_DWC2_HOST && PCI
|
|
|
+ default USB_DWC2_HOST
|
|
|
+ help
|
|
|
+ The Designware USB2.0 PCI interface module for controllers
|
|
|
+ connected to a PCI bus. This is only used for host mode.
|
|
|
+
|
|
|
+-comment "Gadget mode requires USB Gadget support to be enabled"
|
|
|
+-
|
|
|
+-config USB_DWC2_PERIPHERAL
|
|
|
+- tristate "Gadget only mode"
|
|
|
+- depends on USB_GADGET
|
|
|
+- help
|
|
|
+- The Designware USB2.0 high-speed gadget controller
|
|
|
+- integrated into many SoCs.
|
|
|
+-
|
|
|
+ config USB_DWC2_DEBUG
|
|
|
+ bool "Enable Debugging Messages"
|
|
|
+ help
|
|
|
+--- a/drivers/usb/dwc2/Makefile
|
|
|
++++ b/drivers/usb/dwc2/Makefile
|
|
|
+@@ -1,28 +1,28 @@
|
|
|
+ ccflags-$(CONFIG_USB_DWC2_DEBUG) += -DDEBUG
|
|
|
+ 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 += 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
|
|
|
+ # this location and renamed gadget.c. When building for dynamically linked
|
|
|
+-# modules, dwc2_gadget.ko will get built for peripheral mode. For host mode,
|
|
|
+-# the core module will be dwc2.ko, the PCI bus interface module will called
|
|
|
+-# dwc2_pci.ko and the platform interface module will be called dwc2_platform.ko.
|
|
|
+-# At present the host and gadget driver will be separate drivers, but there
|
|
|
+-# are plans in the near future to create a dual-role driver.
|
|
|
++# 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.
|
|
|
+
|
|
|
+ ifneq ($(CONFIG_USB_DWC2_PCI),)
|
|
|
+- obj-$(CONFIG_USB_DWC2_HOST) += dwc2_pci.o
|
|
|
++ obj-$(CONFIG_USB_DWC2) += dwc2_pci.o
|
|
|
+ dwc2_pci-y := pci.o
|
|
|
+ endif
|
|
|
+
|
|
|
+-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
|
|
|
++obj-$(CONFIG_USB_DWC2_PLATFORM) += dwc2_platform.o
|
|
|
++dwc2_platform-y := platform.o
|