xref: /linux/drivers/usb/dwc2/Kconfig (revision 9024c495f35be735a917571406fab30a789c27d1)
1197ba5f4SPaul Zimmermanconfig USB_DWC2
25ee80705SDinh Nguyen	tristate "DesignWare USB2 DRD Core Support"
3c3761a79SDinh Nguyen	depends on USB || USB_GADGET
4197ba5f4SPaul Zimmerman	help
547a1685fSDinh Nguyen	  Say Y here if your system has a Dual Role Hi-Speed USB
647a1685fSDinh Nguyen	  controller based on the DesignWare HSOTG IP Core.
7197ba5f4SPaul Zimmerman
847a1685fSDinh Nguyen	  For host mode, if you choose to build the driver as dynamically
947a1685fSDinh Nguyen	  linked modules, the core module will be called dwc2.ko, the PCI
1047a1685fSDinh Nguyen	  bus interface module (if you have a PCI bus system) will be
1147a1685fSDinh Nguyen	  called dwc2_pci.ko, and the platform interface module (for
1247a1685fSDinh Nguyen	  controllers directly connected to the CPU) will be called
135ee80705SDinh Nguyen	  dwc2_platform.ko. For all modes(host, gadget and dual-role), there
145ee80705SDinh Nguyen	  will be an additional module named dwc2.ko.
15197ba5f4SPaul Zimmerman
16197ba5f4SPaul Zimmermanif USB_DWC2
17197ba5f4SPaul Zimmerman
185ee80705SDinh Nguyenchoice
195ee80705SDinh Nguyen	bool "DWC2 Mode Selection"
205ee80705SDinh Nguyen	default USB_DWC2_DUAL_ROLE if (USB && USB_GADGET)
215ee80705SDinh Nguyen	default USB_DWC2_HOST if (USB && !USB_GADGET)
225ee80705SDinh Nguyen	default USB_DWC2_PERIPHERAL if (!USB && USB_GADGET)
235ee80705SDinh Nguyen
2447a1685fSDinh Nguyenconfig USB_DWC2_HOST
255ee80705SDinh Nguyen	bool "Host only mode"
26b7974de8SArnd Bergmann	depends on USB=y || (USB_DWC2=m && USB)
2747a1685fSDinh Nguyen	help
2847a1685fSDinh Nguyen	  The Designware USB2.0 high-speed host controller
295ee80705SDinh Nguyen	  integrated into many SoCs. Select this option if you want the
305ee80705SDinh Nguyen	  driver to operate in Host-only mode.
315ee80705SDinh Nguyen
325ee80705SDinh Nguyencomment "Gadget/Dual-role mode requires USB Gadget support to be enabled"
335ee80705SDinh Nguyen
345ee80705SDinh Nguyenconfig USB_DWC2_PERIPHERAL
355ee80705SDinh Nguyen	bool "Gadget only mode"
365ee80705SDinh Nguyen	depends on USB_GADGET=y || USB_GADGET=USB_DWC2
375ee80705SDinh Nguyen	help
385ee80705SDinh Nguyen	  The Designware USB2.0 high-speed gadget controller
395ee80705SDinh Nguyen	  integrated into many SoCs. Select this option if you want the
405ee80705SDinh Nguyen	  driver to operate in Peripheral-only mode. This option requires
415ee80705SDinh Nguyen	  USB_GADGET to be enabled.
425ee80705SDinh Nguyen
435ee80705SDinh Nguyenconfig USB_DWC2_DUAL_ROLE
445ee80705SDinh Nguyen	bool "Dual Role mode"
45b7974de8SArnd Bergmann	depends on (USB=y && USB_GADGET=y) || (USB_DWC2=m && USB && USB_GADGET)
465ee80705SDinh Nguyen	help
475ee80705SDinh Nguyen	  Select this option if you want the driver to work in a dual-role
485ee80705SDinh Nguyen	  mode. In this mode both host and gadget features are enabled, and
495ee80705SDinh Nguyen	  the role will be determined by the cable that gets plugged-in. This
505ee80705SDinh Nguyen	  option requires USB_GADGET to be enabled.
515ee80705SDinh Nguyenendchoice
5247a1685fSDinh Nguyen
5347a1685fSDinh Nguyenconfig USB_DWC2_PLATFORM
545ee80705SDinh Nguyen	tristate "DWC2 Platform"
555ee80705SDinh Nguyen	default USB_DWC2_HOST || USB_DWC2_PERIPHERAL
5647a1685fSDinh Nguyen        help
5747a1685fSDinh Nguyen          The Designware USB2.0 platform interface module for
585ee80705SDinh Nguyen          controllers directly connected to the CPU.
5947a1685fSDinh Nguyen
6047a1685fSDinh Nguyenconfig USB_DWC2_PCI
615ee80705SDinh Nguyen	tristate "DWC2 PCI"
62*9024c495SJohn Youn	depends on PCI
63*9024c495SJohn Youn	default n
64*9024c495SJohn Youn	select USB_DWC2_PLATFORM
6547a1685fSDinh Nguyen	help
6647a1685fSDinh Nguyen	  The Designware USB2.0 PCI interface module for controllers
67*9024c495SJohn Youn	  connected to a PCI bus.
6847a1685fSDinh Nguyen
69197ba5f4SPaul Zimmermanconfig USB_DWC2_DEBUG
70197ba5f4SPaul Zimmerman	bool "Enable Debugging Messages"
71197ba5f4SPaul Zimmerman	help
72197ba5f4SPaul Zimmerman	  Say Y here to enable debugging messages in the DWC2 Driver.
73197ba5f4SPaul Zimmerman
74197ba5f4SPaul Zimmermanconfig USB_DWC2_VERBOSE
75197ba5f4SPaul Zimmerman	bool "Enable Verbose Debugging Messages"
76197ba5f4SPaul Zimmerman	depends on USB_DWC2_DEBUG
77197ba5f4SPaul Zimmerman	help
78197ba5f4SPaul Zimmerman	  Say Y here to enable verbose debugging messages in the DWC2 Driver.
79197ba5f4SPaul Zimmerman	  WARNING: Enabling this will quickly fill your message log.
80197ba5f4SPaul Zimmerman	  If in doubt, say N.
81197ba5f4SPaul Zimmerman
82197ba5f4SPaul Zimmermanconfig USB_DWC2_TRACK_MISSED_SOFS
83197ba5f4SPaul Zimmerman	bool "Enable Missed SOF Tracking"
84197ba5f4SPaul Zimmerman	help
85197ba5f4SPaul Zimmerman	  Say Y here to enable logging of missed SOF events to the dmesg log.
86197ba5f4SPaul Zimmerman	  WARNING: This feature is still experimental.
87197ba5f4SPaul Zimmerman	  If in doubt, say N.
88197ba5f4SPaul Zimmerman
89197ba5f4SPaul Zimmermanconfig USB_DWC2_DEBUG_PERIODIC
90197ba5f4SPaul Zimmerman	bool "Enable Debugging Messages For Periodic Transfers"
91197ba5f4SPaul Zimmerman	depends on USB_DWC2_DEBUG || USB_DWC2_VERBOSE
92197ba5f4SPaul Zimmerman	default y
93197ba5f4SPaul Zimmerman	help
94197ba5f4SPaul Zimmerman	  Say N here to disable (verbose) debugging messages to be
95197ba5f4SPaul Zimmerman	  logged for periodic transfers. This allows better debugging of
96197ba5f4SPaul Zimmerman	  non-periodic transfers, but of course the debug logs will be
97197ba5f4SPaul Zimmerman	  incomplete. Note that this also disables some debug messages
98197ba5f4SPaul Zimmerman	  for which the transfer type cannot be deduced.
99197ba5f4SPaul Zimmermanendif
100