linux: add upstream patch to allow building dwc2 as module on 3.18
Also add the required config symbols to usb.mk Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44181
This commit is contained in:
parent
772a664571
commit
e25e6df2cf
@ -438,6 +438,8 @@ define KernelPackage/usb-dwc2
|
||||
DEPENDS:=@!LINUX_3_8 @!LINUX_3_10
|
||||
KCONFIG:= \
|
||||
CONFIG_USB_DWC2 \
|
||||
CONFIG_USB_DWC2_PCI \
|
||||
CONFIG_USB_DWC2_PLATFORM \
|
||||
CONFIG_USB_DWC2_DEBUG=n \
|
||||
CONFIG_USB_DWC2_VERBOSE=n \
|
||||
CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n
|
||||
|
146
target/linux/generic/patches-3.18/821-usb-dwc2-dualrole.patch
Normal file
146
target/linux/generic/patches-3.18/821-usb-dwc2-dualrole.patch
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user