cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (17505B)


      1# SPDX-License-Identifier: GPL-2.0
      2#
      3# USB Gadget support on a system involves
      4#    (a) a peripheral controller, and
      5#    (b) the gadget driver using it.
      6#
      7# NOTE:  Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
      8#
      9#  - Host systems (like PCs) need CONFIG_USB (with "A" jacks).
     10#  - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks).
     11#  - Some systems have both kinds of controllers.
     12#
     13# With help from a special transceiver and a "Mini-AB" jack, systems with
     14# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG).
     15#
     16
     17#
     18# USB Peripheral Controller Support
     19#
     20# The order here is alphabetical, except that integrated controllers go
     21# before discrete ones so they will be the initial/default value:
     22#   - integrated/SOC controllers first
     23#   - licensed IP used in both SOC and discrete versions
     24#   - discrete ones (including all PCI-only controllers)
     25#   - debug/dummy gadget+hcd is last.
     26#
     27menu "USB Peripheral Controller"
     28
     29#
     30# Integrated controllers
     31#
     32
     33config USB_AT91
     34	tristate "Atmel AT91 USB Device Port"
     35	depends on ARCH_AT91
     36	depends on OF || COMPILE_TEST
     37	help
     38	   Many Atmel AT91 processors (such as the AT91RM2000) have a
     39	   full speed USB Device Port with support for five configurable
     40	   endpoints (plus endpoint zero).
     41
     42	   Say "y" to link the driver statically, or "m" to build a
     43	   dynamically linked module called "at91_udc" and force all
     44	   gadget drivers to also be dynamically linked.
     45
     46config USB_LPC32XX
     47	tristate "LPC32XX USB Peripheral Controller"
     48	depends on ARCH_LPC32XX || COMPILE_TEST
     49	depends on I2C
     50	select USB_ISP1301
     51	help
     52	   This option selects the USB device controller in the LPC32xx SoC.
     53
     54	   Say "y" to link the driver statically, or "m" to build a
     55	   dynamically linked module called "lpc32xx_udc" and force all
     56	   gadget drivers to also be dynamically linked.
     57
     58config USB_ATMEL_USBA
     59	tristate "Atmel USBA"
     60	depends on ARCH_AT91
     61	help
     62	  USBA is the integrated high-speed USB Device controller on
     63	  the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
     64
     65	  The fifo_mode parameter is used to select endpoint allocation mode.
     66	  fifo_mode = 0 is used to let the driver autoconfigure the endpoints.
     67	  In this case, for ep1 2 banks are allocated if it works in isochronous
     68	  mode and only 1 bank otherwise. For the rest of the endpoints
     69	  only 1 bank is allocated.
     70
     71	  fifo_mode = 1 is a generic maximum fifo size (1024 bytes) configuration
     72	  allowing the usage of ep1 - ep6
     73
     74	  fifo_mode = 2 is a generic performance maximum fifo size (1024 bytes)
     75	  configuration allowing the usage of ep1 - ep3
     76
     77	  fifo_mode = 3 is a balanced performance configuration allowing the
     78	  the usage of ep1 - ep8
     79
     80config USB_BCM63XX_UDC
     81	tristate "Broadcom BCM63xx Peripheral Controller"
     82	depends on BCM63XX
     83	help
     84	   Many Broadcom BCM63xx chipsets (such as the BCM6328) have a
     85	   high speed USB Device Port with support for four fixed endpoints
     86	   (plus endpoint zero).
     87
     88	   Say "y" to link the driver statically, or "m" to build a
     89	   dynamically linked module called "bcm63xx_udc".
     90
     91config USB_FSL_USB2
     92	tristate "Freescale Highspeed USB DR Peripheral Controller"
     93	depends on FSL_SOC
     94	help
     95	   Some of Freescale PowerPC and i.MX processors have a High Speed
     96	   Dual-Role(DR) USB controller, which supports device mode.
     97
     98	   The number of programmable endpoints is different through
     99	   SOC revisions.
    100
    101	   Say "y" to link the driver statically, or "m" to build a
    102	   dynamically linked module called "fsl_usb2_udc" and force
    103	   all gadget drivers to also be dynamically linked.
    104
    105config USB_FUSB300
    106	tristate "Faraday FUSB300 USB Peripheral Controller"
    107	depends on !PHYS_ADDR_T_64BIT && HAS_DMA
    108	help
    109	   Faraday usb device controller FUSB300 driver
    110
    111config USB_FOTG210_UDC
    112	depends on HAS_DMA
    113	tristate "Faraday FOTG210 USB Peripheral Controller"
    114	help
    115	   Faraday USB2.0 OTG controller which can be configured as
    116	   high speed or full speed USB device. This driver supppors
    117	   Bulk Transfer so far.
    118
    119	   Say "y" to link the driver statically, or "m" to build a
    120	   dynamically linked module called "fotg210_udc".
    121
    122config USB_GR_UDC
    123	tristate "Aeroflex Gaisler GRUSBDC USB Peripheral Controller Driver"
    124	depends on HAS_DMA
    125	help
    126	  Select this to support Aeroflex Gaisler GRUSBDC cores from the GRLIB
    127	  VHDL IP core library.
    128
    129config USB_OMAP
    130	tristate "OMAP USB Device Controller"
    131	depends on ARCH_OMAP1
    132	depends on ISP1301_OMAP || !(MACH_OMAP_H2 || MACH_OMAP_H3)
    133	help
    134	   Many Texas Instruments OMAP processors have flexible full
    135	   speed USB device controllers, with support for up to 30
    136	   endpoints (plus endpoint zero).  This driver supports the
    137	   controller in the OMAP 1611, and should work with controllers
    138	   in other OMAP processors too, given minor tweaks.
    139
    140	   Say "y" to link the driver statically, or "m" to build a
    141	   dynamically linked module called "omap_udc" and force all
    142	   gadget drivers to also be dynamically linked.
    143
    144config USB_PXA25X
    145	tristate "PXA 25x or IXP 4xx"
    146	depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX
    147	depends on HAS_IOMEM
    148	help
    149	   Intel's PXA 25x series XScale ARM-5TE processors include
    150	   an integrated full speed USB 1.1 device controller.  The
    151	   controller in the IXP 4xx series is register-compatible.
    152
    153	   It has fifteen fixed-function endpoints, as well as endpoint
    154	   zero (for control transfers).
    155
    156	   Say "y" to link the driver statically, or "m" to build a
    157	   dynamically linked module called "pxa25x_udc" and force all
    158	   gadget drivers to also be dynamically linked.
    159
    160# if there's only one gadget driver, using only two bulk endpoints,
    161# don't waste memory for the other endpoints
    162config USB_PXA25X_SMALL
    163	depends on USB_PXA25X
    164	bool
    165	default n if USB_ETH_RNDIS
    166	default y if USB_ZERO
    167	default y if USB_ETH
    168	default y if USB_G_SERIAL
    169
    170config USB_R8A66597
    171	tristate "Renesas R8A66597 USB Peripheral Controller"
    172	depends on HAS_DMA
    173	help
    174	   R8A66597 is a discrete USB host and peripheral controller chip that
    175	   supports both full and high speed USB 2.0 data transfers.
    176	   It has nine configurable endpoints, and endpoint zero.
    177
    178	   Say "y" to link the driver statically, or "m" to build a
    179	   dynamically linked module called "r8a66597_udc" and force all
    180	   gadget drivers to also be dynamically linked.
    181
    182config USB_RENESAS_USBHS_UDC
    183	tristate 'Renesas USBHS controller'
    184	depends on USB_RENESAS_USBHS
    185	help
    186	   Renesas USBHS is a discrete USB host and peripheral controller chip
    187	   that supports both full and high speed USB 2.0 data transfers.
    188	   It has nine or more configurable endpoints, and endpoint zero.
    189
    190	   Say "y" to link the driver statically, or "m" to build a
    191	   dynamically linked module called "renesas_usbhs" and force all
    192	   gadget drivers to also be dynamically linked.
    193
    194config USB_RENESAS_USB3
    195	tristate 'Renesas USB3.0 Peripheral controller'
    196	depends on ARCH_RENESAS || COMPILE_TEST
    197	depends on EXTCON
    198	select USB_ROLE_SWITCH
    199	help
    200	   Renesas USB3.0 Peripheral controller is a USB peripheral controller
    201	   that supports super, high, and full speed USB 3.0 data transfers.
    202
    203	   Say "y" to link the driver statically, or "m" to build a
    204	   dynamically linked module called "renesas_usb3" and force all
    205	   gadget drivers to also be dynamically linked.
    206
    207config USB_PXA27X
    208	tristate "PXA 27x"
    209	depends on HAS_IOMEM
    210	help
    211	   Intel's PXA 27x series XScale ARM v5TE processors include
    212	   an integrated full speed USB 1.1 device controller.
    213
    214	   It has up to 23 endpoints, as well as endpoint zero (for
    215	   control transfers).
    216
    217	   Say "y" to link the driver statically, or "m" to build a
    218	   dynamically linked module called "pxa27x_udc" and force all
    219	   gadget drivers to also be dynamically linked.
    220
    221config USB_S3C2410
    222	tristate "S3C2410 USB Device Controller"
    223	depends on ARCH_S3C24XX
    224	help
    225	  Samsung's S3C2410 is an ARM-4 processor with an integrated
    226	  full speed USB 1.1 device controller.  It has 4 configurable
    227	  endpoints, as well as endpoint zero (for control transfers).
    228
    229	  This driver has been tested on the S3C2410, S3C2412, and
    230	  S3C2440 processors.
    231
    232config USB_S3C2410_DEBUG
    233	bool "S3C2410 udc debug messages"
    234	depends on USB_S3C2410
    235
    236config USB_S3C_HSUDC
    237	tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller"
    238	depends on ARCH_S3C24XX
    239	help
    240	  Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC
    241	  integrated with dual speed USB 2.0 device controller. It has
    242	  8 endpoints, as well as endpoint zero.
    243
    244	  This driver has been tested on S3C2416 and S3C2450 processors.
    245
    246config USB_MV_UDC
    247	tristate "Marvell USB2.0 Device Controller"
    248	depends on HAS_DMA
    249	help
    250	  Marvell Socs (including PXA and MMP series) include a high speed
    251	  USB2.0 OTG controller, which can be configured as high speed or
    252	  full speed USB peripheral.
    253
    254config USB_MV_U3D
    255	depends on HAS_DMA
    256	tristate "MARVELL PXA2128 USB 3.0 controller"
    257	help
    258	  MARVELL PXA2128 Processor series include a super speed USB3.0 device
    259	  controller, which support super speed USB peripheral.
    260
    261config USB_SNP_CORE
    262	depends on (USB_AMD5536UDC || USB_SNP_UDC_PLAT)
    263	depends on HAS_DMA
    264	tristate
    265	help
    266	  This enables core driver support for Synopsys USB 2.0 Device
    267	  controller.
    268
    269	  This will be enabled when PCI or Platform driver for this UDC is
    270	  selected. Currently, this will be enabled by USB_SNP_UDC_PLAT or
    271	  USB_AMD5536UDC options.
    272
    273	  This IP is different to the High Speed OTG IP that can be enabled
    274	  by selecting USB_DWC2 or USB_DWC3 options.
    275
    276config USB_SNP_UDC_PLAT
    277	tristate "Synopsys USB 2.0 Device controller"
    278	depends on USB_GADGET && OF && HAS_DMA
    279	depends on EXTCON || EXTCON=n
    280	select USB_SNP_CORE
    281	default ARCH_BCM_IPROC
    282	help
    283	  This adds Platform Device support for Synopsys Designware core
    284	  AHB subsystem USB2.0 Device Controller (UDC).
    285
    286	  This driver works with UDCs integrated into Broadcom's Northstar2
    287	  and Cygnus SoCs.
    288
    289	  If unsure, say N.
    290#
    291# Controllers available in both integrated and discrete versions
    292#
    293
    294config USB_M66592
    295	tristate "Renesas M66592 USB Peripheral Controller"
    296	depends on HAS_IOMEM
    297	help
    298	   M66592 is a discrete USB peripheral controller chip that
    299	   supports both full and high speed USB 2.0 data transfers.
    300	   It has seven configurable endpoints, and endpoint zero.
    301
    302	   Say "y" to link the driver statically, or "m" to build a
    303	   dynamically linked module called "m66592_udc" and force all
    304	   gadget drivers to also be dynamically linked.
    305
    306source "drivers/usb/gadget/udc/bdc/Kconfig"
    307
    308#
    309# Controllers available only in discrete form (and all PCI controllers)
    310#
    311
    312config USB_AMD5536UDC
    313	tristate "AMD5536 UDC"
    314	depends on USB_PCI
    315	select USB_SNP_CORE
    316	help
    317	   The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
    318	   It is a USB Highspeed DMA capable USB device controller. Beside ep0
    319	   it provides 4 IN and 4 OUT endpoints (bulk or interrupt type).
    320	   The UDC port supports OTG operation, and may be used as a host port
    321	   if it's not being used to implement peripheral or OTG roles.
    322
    323	   This UDC is based on Synopsys USB device controller IP and selects
    324	   CONFIG_USB_SNP_CORE option to build the core driver.
    325
    326	   Say "y" to link the driver statically, or "m" to build a
    327	   dynamically linked module called "amd5536udc" and force all
    328	   gadget drivers to also be dynamically linked.
    329
    330config USB_FSL_QE
    331	tristate "Freescale QE/CPM USB Device Controller"
    332	depends on FSL_SOC && (QUICC_ENGINE || CPM)
    333	depends on !64BIT || BROKEN
    334	help
    335	   Some of Freescale PowerPC processors have a Full Speed
    336	   QE/CPM2 USB controller, which support device mode with 4
    337	   programmable endpoints. This driver supports the
    338	   controller in the MPC8360 and MPC8272, and should work with
    339	   controllers having QE or CPM2, given minor tweaks.
    340
    341	   Set CONFIG_USB_GADGET to "m" to build this driver as a
    342	   dynamically linked module called "fsl_qe_udc".
    343
    344config USB_NET2272
    345	depends on HAS_IOMEM
    346	tristate "PLX NET2272"
    347	help
    348	  PLX NET2272 is a USB peripheral controller which supports
    349	  both full and high speed USB 2.0 data transfers.
    350
    351	  It has three configurable endpoints, as well as endpoint zero
    352	  (for control transfer).
    353	  Say "y" to link the driver statically, or "m" to build a
    354	  dynamically linked module called "net2272" and force all
    355	  gadget drivers to also be dynamically linked.
    356
    357config USB_NET2272_DMA
    358	bool "Support external DMA controller"
    359	depends on USB_NET2272 && HAS_DMA
    360	help
    361	  The NET2272 part can optionally support an external DMA
    362	  controller, but your board has to have support in the
    363	  driver itself.
    364
    365	  If unsure, say "N" here.  The driver works fine in PIO mode.
    366
    367config USB_NET2280
    368	tristate "NetChip NET228x / PLX USB3x8x"
    369	depends on USB_PCI
    370	help
    371	   NetChip 2280 / 2282 is a PCI based USB peripheral controller which
    372	   supports both full and high speed USB 2.0 data transfers.
    373
    374	   It has six configurable endpoints, as well as endpoint zero
    375	   (for control transfers) and several endpoints with dedicated
    376	   functions.
    377
    378	   PLX 2380 is a PCIe version of the PLX 2380.
    379
    380	   PLX 3380 / 3382 is a PCIe based USB peripheral controller which
    381	   supports full, high speed USB 2.0 and super speed USB 3.0
    382	   data transfers.
    383
    384	   It has eight configurable endpoints, as well as endpoint zero
    385	   (for control transfers) and several endpoints with dedicated
    386	   functions.
    387
    388	   Say "y" to link the driver statically, or "m" to build a
    389	   dynamically linked module called "net2280" and force all
    390	   gadget drivers to also be dynamically linked.
    391
    392config USB_GOKU
    393	tristate "Toshiba TC86C001 'Goku-S'"
    394	depends on USB_PCI
    395	help
    396	   The Toshiba TC86C001 is a PCI device which includes controllers
    397	   for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI).
    398
    399	   The device controller has three configurable (bulk or interrupt)
    400	   endpoints, plus endpoint zero (for control transfers).
    401
    402	   Say "y" to link the driver statically, or "m" to build a
    403	   dynamically linked module called "goku_udc" and to force all
    404	   gadget drivers to also be dynamically linked.
    405
    406config USB_EG20T
    407	tristate "Intel QUARK X1000/EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
    408	depends on USB_PCI
    409	help
    410	  This is a USB device driver for EG20T PCH.
    411	  EG20T PCH is the platform controller hub that is used in Intel's
    412	  general embedded platform. EG20T PCH has USB device interface.
    413	  Using this interface, it is able to access system devices connected
    414	  to USB device.
    415	  This driver enables USB device function.
    416	  USB device is a USB peripheral controller which
    417	  supports both full and high speed USB 2.0 data transfers.
    418	  This driver supports both control transfer and bulk transfer modes.
    419	  This driver dose not support interrupt transfer or isochronous
    420	  transfer modes.
    421
    422	  This driver also can be used for LAPIS Semiconductor's ML7213 which is
    423	  for IVI(In-Vehicle Infotainment) use.
    424	  ML7831 is for general purpose use.
    425	  ML7213/ML7831 is companion chip for Intel Atom E6xx series.
    426	  ML7213/ML7831 is completely compatible for Intel EG20T PCH.
    427
    428	  This driver can be used with Intel's Quark X1000 SOC platform
    429
    430config USB_GADGET_XILINX
    431	tristate "Xilinx USB Driver"
    432	depends on HAS_DMA
    433	depends on OF || COMPILE_TEST
    434	help
    435	  USB peripheral controller driver for Xilinx USB2 device.
    436	  Xilinx USB2 device is a soft IP which supports both full
    437	  and high speed USB 2.0 data transfers. It has seven configurable
    438	  endpoints(bulk or interrupt or isochronous), as well as
    439	  endpoint zero(for control transfers).
    440
    441	  Say "y" to link the driver statically, or "m" to build a
    442	  dynamically linked module called "udc-xilinx" and force all
    443	  gadget drivers to also be dynamically linked.
    444
    445config USB_MAX3420_UDC
    446	tristate "MAX3420 (USB-over-SPI) support"
    447	depends on SPI
    448	help
    449	  The Maxim MAX3420 chip supports USB2.0 full-speed peripheral mode.
    450	  The MAX3420 is run by SPI interface, and hence the dependency.
    451
    452	  To compile this driver as a module, choose M here: the module will
    453	  be called max3420_udc
    454
    455config USB_TEGRA_XUDC
    456	tristate "NVIDIA Tegra Superspeed USB 3.0 Device Controller"
    457	depends on ARCH_TEGRA || COMPILE_TEST
    458	depends on PHY_TEGRA_XUSB
    459	help
    460	 Enables NVIDIA Tegra USB 3.0 device mode controller driver.
    461
    462	 Say "y" to link the driver statically, or "m" to build a
    463	 dynamically linked module called "tegra_xudc" and force all
    464	 gadget drivers to also be dynamically linked.
    465
    466source "drivers/usb/gadget/udc/aspeed-vhub/Kconfig"
    467
    468#
    469# LAST -- dummy/emulated controller
    470#
    471
    472config USB_DUMMY_HCD
    473	tristate "Dummy HCD (DEVELOPMENT)"
    474	depends on USB=y || (USB=m && USB_GADGET=m)
    475	help
    476	  This host controller driver emulates USB, looping all data transfer
    477	  requests back to a USB "gadget driver" in the same host.  The host
    478	  side is the controller; the gadget side is the device.  Gadget drivers
    479	  can be high, full, or low speed; and they have access to endpoints
    480	  like those from NET2280, PXA2xx, or SA1100 hardware.
    481
    482	  This may help in some stages of creating a driver to embed in a
    483	  Linux device, since it lets you debug several parts of the gadget
    484	  driver without its hardware or drivers being involved.
    485
    486	  Since such a gadget side driver needs to interoperate with a host
    487	  side Linux-USB device driver, this may help to debug both sides
    488	  of a USB protocol stack.
    489
    490	  Say "y" to link the driver statically, or "m" to build a
    491	  dynamically linked module called "dummy_hcd" and force all
    492	  gadget drivers to also be dynamically linked.
    493
    494# NOTE:  Please keep dummy_hcd LAST so that "real hardware" appears
    495# first and will be selected by default.
    496
    497endmenu