xref: /linux/drivers/usb/dwc2/Kconfig (revision b7974de821bb65a7efe1961a600c850b5029ed6d)
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"
26*b7974de8SArnd 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"
45*b7974de8SArnd 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"
6247a1685fSDinh Nguyen	depends on USB_DWC2_HOST && PCI
6347a1685fSDinh Nguyen	default USB_DWC2_HOST
6447a1685fSDinh Nguyen	help
6547a1685fSDinh Nguyen	  The Designware USB2.0 PCI interface module for controllers
6647a1685fSDinh Nguyen	  connected to a PCI bus. This is only used for host mode.
6747a1685fSDinh Nguyen
68197ba5f4SPaul Zimmermanconfig USB_DWC2_DEBUG
69197ba5f4SPaul Zimmerman	bool "Enable Debugging Messages"
70197ba5f4SPaul Zimmerman	help
71197ba5f4SPaul Zimmerman	  Say Y here to enable debugging messages in the DWC2 Driver.
72197ba5f4SPaul Zimmerman
73197ba5f4SPaul Zimmermanconfig USB_DWC2_VERBOSE
74197ba5f4SPaul Zimmerman	bool "Enable Verbose Debugging Messages"
75197ba5f4SPaul Zimmerman	depends on USB_DWC2_DEBUG
76197ba5f4SPaul Zimmerman	help
77197ba5f4SPaul Zimmerman	  Say Y here to enable verbose debugging messages in the DWC2 Driver.
78197ba5f4SPaul Zimmerman	  WARNING: Enabling this will quickly fill your message log.
79197ba5f4SPaul Zimmerman	  If in doubt, say N.
80197ba5f4SPaul Zimmerman
81197ba5f4SPaul Zimmermanconfig USB_DWC2_TRACK_MISSED_SOFS
82197ba5f4SPaul Zimmerman	bool "Enable Missed SOF Tracking"
83197ba5f4SPaul Zimmerman	help
84197ba5f4SPaul Zimmerman	  Say Y here to enable logging of missed SOF events to the dmesg log.
85197ba5f4SPaul Zimmerman	  WARNING: This feature is still experimental.
86197ba5f4SPaul Zimmerman	  If in doubt, say N.
87197ba5f4SPaul Zimmerman
88197ba5f4SPaul Zimmermanconfig USB_DWC2_DEBUG_PERIODIC
89197ba5f4SPaul Zimmerman	bool "Enable Debugging Messages For Periodic Transfers"
90197ba5f4SPaul Zimmerman	depends on USB_DWC2_DEBUG || USB_DWC2_VERBOSE
91197ba5f4SPaul Zimmerman	default y
92197ba5f4SPaul Zimmerman	help
93197ba5f4SPaul Zimmerman	  Say N here to disable (verbose) debugging messages to be
94197ba5f4SPaul Zimmerman	  logged for periodic transfers. This allows better debugging of
95197ba5f4SPaul Zimmerman	  non-periodic transfers, but of course the debug logs will be
96197ba5f4SPaul Zimmerman	  incomplete. Note that this also disables some debug messages
97197ba5f4SPaul Zimmerman	  for which the transfer type cannot be deduced.
98197ba5f4SPaul Zimmermanendif
99