| # 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 |