xref: /openbmc/linux/drivers/usb/dwc2/Kconfig (revision 89f1ec8e)
1config USB_DWC2
2	tristate "DesignWare USB2 DRD Core Support"
3	depends on USB || USB_GADGET
4	depends on HAS_IOMEM
5	help
6	  Say Y here if your system has a Dual Role Hi-Speed USB
7	  controller based on the DesignWare HSOTG IP Core.
8
9	  For host mode, if you choose to build the driver as dynamically
10	  linked modules, the core module will be called dwc2.ko, the PCI
11	  bus interface module (if you have a PCI bus system) will be
12	  called dwc2_pci.ko, and the platform interface module (for
13	  controllers directly connected to the CPU) will be called
14	  dwc2_platform.ko. For all modes(host, gadget and dual-role), there
15	  will be an additional module named dwc2.ko.
16
17if USB_DWC2
18
19choice
20	bool "DWC2 Mode Selection"
21	default USB_DWC2_DUAL_ROLE if (USB && USB_GADGET)
22	default USB_DWC2_HOST if (USB && !USB_GADGET)
23	default USB_DWC2_PERIPHERAL if (!USB && USB_GADGET)
24
25config USB_DWC2_HOST
26	bool "Host only mode"
27	depends on USB=y || (USB_DWC2=m && USB)
28	help
29	  The Designware USB2.0 high-speed host controller
30	  integrated into many SoCs. Select this option if you want the
31	  driver to operate in Host-only mode.
32
33comment "Gadget/Dual-role mode requires USB Gadget support to be enabled"
34
35config USB_DWC2_PERIPHERAL
36	bool "Gadget only mode"
37	depends on USB_GADGET=y || USB_GADGET=USB_DWC2
38	help
39	  The Designware USB2.0 high-speed gadget controller
40	  integrated into many SoCs. Select this option if you want the
41	  driver to operate in Peripheral-only mode. This option requires
42	  USB_GADGET to be enabled.
43
44config USB_DWC2_DUAL_ROLE
45	bool "Dual Role mode"
46	depends on (USB=y && USB_GADGET=y) || (USB_DWC2=m && USB && USB_GADGET)
47	help
48	  Select this option if you want the driver to work in a dual-role
49	  mode. In this mode both host and gadget features are enabled, and
50	  the role will be determined by the cable that gets plugged-in. This
51	  option requires USB_GADGET to be enabled.
52endchoice
53
54config USB_DWC2_PCI
55	tristate "DWC2 PCI"
56	depends on PCI
57	default n
58	select NOP_USB_XCEIV
59	help
60	  The Designware USB2.0 PCI interface module for controllers
61	  connected to a PCI bus.
62
63config USB_DWC2_DEBUG
64	bool "Enable Debugging Messages"
65	help
66	  Say Y here to enable debugging messages in the DWC2 Driver.
67
68config USB_DWC2_VERBOSE
69	bool "Enable Verbose Debugging Messages"
70	depends on USB_DWC2_DEBUG
71	help
72	  Say Y here to enable verbose debugging messages in the DWC2 Driver.
73	  WARNING: Enabling this will quickly fill your message log.
74	  If in doubt, say N.
75
76config USB_DWC2_TRACK_MISSED_SOFS
77	bool "Enable Missed SOF Tracking"
78	help
79	  Say Y here to enable logging of missed SOF events to the dmesg log.
80	  WARNING: This feature is still experimental.
81	  If in doubt, say N.
82
83config USB_DWC2_DEBUG_PERIODIC
84	bool "Enable Debugging Messages For Periodic Transfers"
85	depends on USB_DWC2_DEBUG || USB_DWC2_VERBOSE
86	default y
87	help
88	  Say N here to disable (verbose) debugging messages to be
89	  logged for periodic transfers. This allows better debugging of
90	  non-periodic transfers, but of course the debug logs will be
91	  incomplete. Note that this also disables some debug messages
92	  for which the transfer type cannot be deduced.
93endif
94