|  | # SPDX-License-Identifier: GPL-2.0 | 
|  |  | 
|  | config USB_DWC2 | 
|  | tristate "DesignWare USB2 DRD Core Support" | 
|  | depends on HAS_DMA | 
|  | depends on USB || USB_GADGET | 
|  | depends on HAS_IOMEM | 
|  | help | 
|  | Say Y here if your system has a Dual Role Hi-Speed USB | 
|  | controller based on the DesignWare HSOTG IP Core. | 
|  |  | 
|  | For host mode, if you choose to build the driver as dynamically | 
|  | linked modules, the core module will be called dwc2.ko, the PCI | 
|  | 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 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 | 
|  | bool "Host only mode" | 
|  | depends on USB=y || (USB_DWC2=m && USB) | 
|  | help | 
|  | The Designware USB2.0 high-speed host controller | 
|  | integrated into many SoCs. Select this option if you want the | 
|  | driver to operate in Host-only mode. | 
|  |  | 
|  | 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_GADGET=y) || (USB_DWC2=m && USB && USB_GADGET) | 
|  | help | 
|  | 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_PCI | 
|  | tristate "DWC2 PCI" | 
|  | depends on USB_PCI | 
|  | depends on USB_GADGET || !USB_GADGET | 
|  | select NOP_USB_XCEIV | 
|  | help | 
|  | The Designware USB2.0 PCI interface module for controllers | 
|  | connected to a PCI bus. | 
|  |  | 
|  | config USB_DWC2_DEBUG | 
|  | bool "Enable Debugging Messages" | 
|  | help | 
|  | Say Y here to enable debugging messages in the DWC2 Driver. | 
|  |  | 
|  | config USB_DWC2_VERBOSE | 
|  | bool "Enable Verbose Debugging Messages" | 
|  | depends on USB_DWC2_DEBUG | 
|  | help | 
|  | Say Y here to enable verbose debugging messages in the DWC2 Driver. | 
|  | WARNING: Enabling this will quickly fill your message log. | 
|  | If in doubt, say N. | 
|  |  | 
|  | config USB_DWC2_TRACK_MISSED_SOFS | 
|  | bool "Enable Missed SOF Tracking" | 
|  | help | 
|  | Say Y here to enable logging of missed SOF events to the dmesg log. | 
|  | WARNING: This feature is still experimental. | 
|  | If in doubt, say N. | 
|  |  | 
|  | config USB_DWC2_DEBUG_PERIODIC | 
|  | bool "Enable Debugging Messages For Periodic Transfers" | 
|  | depends on USB_DWC2_DEBUG || USB_DWC2_VERBOSE | 
|  | default y | 
|  | help | 
|  | Say N here to disable (verbose) debugging messages to be | 
|  | logged for periodic transfers. This allows better debugging of | 
|  | non-periodic transfers, but of course the debug logs will be | 
|  | incomplete. Note that this also disables some debug messages | 
|  | for which the transfer type cannot be deduced. | 
|  | endif |