162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_cimenuconfig UIO
362306a36Sopenharmony_ci	tristate "Userspace I/O drivers"
462306a36Sopenharmony_ci	depends on MMU
562306a36Sopenharmony_ci	help
662306a36Sopenharmony_ci	  Enable this to allow the userspace driver core code to be
762306a36Sopenharmony_ci	  built.  This code allows userspace programs easy access to
862306a36Sopenharmony_ci	  kernel interrupts and memory locations, allowing some drivers
962306a36Sopenharmony_ci	  to be written in userspace.  Note that a small kernel driver
1062306a36Sopenharmony_ci	  is also required for interrupt handling to work properly.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci	  If you don't know what to do here, say N.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciif UIO
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig UIO_CIF
1762306a36Sopenharmony_ci	tristate "generic Hilscher CIF Card driver"
1862306a36Sopenharmony_ci	depends on PCI
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  Driver for Hilscher CIF DeviceNet and Profibus cards.  This
2162306a36Sopenharmony_ci	  driver requires a userspace component called cif that handles
2262306a36Sopenharmony_ci	  all of the heavy lifting and can be found at:
2362306a36Sopenharmony_ci	        <http://www.osadl.org/projects/downloads/UIO/user/>
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2662306a36Sopenharmony_ci	  will be called uio_cif.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciconfig UIO_PDRV_GENIRQ
2962306a36Sopenharmony_ci	tristate "Userspace I/O platform driver with generic IRQ handling"
3062306a36Sopenharmony_ci	help
3162306a36Sopenharmony_ci	  Platform driver for Userspace I/O devices, including generic
3262306a36Sopenharmony_ci	  interrupt handling code. Shared interrupts are not supported.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	  This kernel driver requires that the matching userspace driver
3562306a36Sopenharmony_ci	  handles interrupts in a special way. Userspace is responsible
3662306a36Sopenharmony_ci	  for acknowledging the hardware device if needed, and re-enabling
3762306a36Sopenharmony_ci	  interrupts in the interrupt controller using the write() syscall.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	  If you don't know what to do here, say N.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig UIO_DMEM_GENIRQ
4262306a36Sopenharmony_ci	tristate "Userspace platform driver with generic irq and dynamic memory"
4362306a36Sopenharmony_ci	depends on HAS_DMA
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  Platform driver for Userspace I/O devices, including generic
4662306a36Sopenharmony_ci	  interrupt handling code. Shared interrupts are not supported.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	  Memory regions can be specified with the same platform device
4962306a36Sopenharmony_ci	  resources as the UIO_PDRV drivers, but dynamic regions can also
5062306a36Sopenharmony_ci	  be specified.
5162306a36Sopenharmony_ci	  The number and size of these regions is static,
5262306a36Sopenharmony_ci	  but the memory allocation is not performed until
5362306a36Sopenharmony_ci	  the associated device file is opened. The
5462306a36Sopenharmony_ci	  memory is freed once the uio device is closed.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	  If you don't know what to do here, say N.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciconfig UIO_AEC
5962306a36Sopenharmony_ci	tristate "AEC video timestamp device"
6062306a36Sopenharmony_ci	depends on PCI
6162306a36Sopenharmony_ci	help
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	  UIO driver for the Adrienne Electronics Corporation PCI time
6462306a36Sopenharmony_ci	  code device.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	  This device differs from other UIO devices since it uses I/O
6762306a36Sopenharmony_ci	  ports instead of memory mapped I/O. In order to make it
6862306a36Sopenharmony_ci	  possible for UIO to work with this device a utility, uioport,
6962306a36Sopenharmony_ci	  can be used to read and write the ports:
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	    git clone git://ifup.org/philips/uioport.git
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	  If you compile this as a module, it will be called uio_aec.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig UIO_SERCOS3
7662306a36Sopenharmony_ci	tristate "Automata Sercos III PCI card driver"
7762306a36Sopenharmony_ci	depends on PCI
7862306a36Sopenharmony_ci	help
7962306a36Sopenharmony_ci	  Userspace I/O interface for the Sercos III PCI card from
8062306a36Sopenharmony_ci	  Automata GmbH. The userspace part of this driver will be
8162306a36Sopenharmony_ci	  available for download from the Automata GmbH web site.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	  Automata GmbH:        http://www.automataweb.com
8462306a36Sopenharmony_ci	  Sercos III interface: http://www.sercos.com
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	  If you compile this as a module, it will be called uio_sercos3.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig UIO_PCI_GENERIC
8962306a36Sopenharmony_ci	tristate "Generic driver for PCI 2.3 and PCI Express cards"
9062306a36Sopenharmony_ci	depends on PCI
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Generic driver that you can bind, dynamically, to any
9362306a36Sopenharmony_ci	  PCI 2.3 compliant and PCI Express card. It is useful,
9462306a36Sopenharmony_ci	  primarily, for virtualization scenarios.
9562306a36Sopenharmony_ci	  If you compile this as a module, it will be called uio_pci_generic.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciconfig UIO_NETX
9862306a36Sopenharmony_ci	tristate "Hilscher NetX Card driver"
9962306a36Sopenharmony_ci	depends on PCI
10062306a36Sopenharmony_ci	help
10162306a36Sopenharmony_ci	  Driver for Hilscher NetX based fieldbus cards (cifX, comX).
10262306a36Sopenharmony_ci	  This driver requires a userspace component that comes with the card
10362306a36Sopenharmony_ci	  or is available from Hilscher (http://www.hilscher.com).
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here; the module
10662306a36Sopenharmony_ci	  will be called uio_netx.
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ciconfig UIO_FSL_ELBC_GPCM
10962306a36Sopenharmony_ci	tristate "eLBC/GPCM driver"
11062306a36Sopenharmony_ci	depends on FSL_LBC
11162306a36Sopenharmony_ci	help
11262306a36Sopenharmony_ci	  Generic driver for accessing a peripheral connected to an eLBC port
11362306a36Sopenharmony_ci	  that is running in GPCM mode. GPCM is an interface for simple lower
11462306a36Sopenharmony_ci	  performance memories and memory-mapped devices. For devices using
11562306a36Sopenharmony_ci	  FCM or UPM eLBC modes, other device-specific drivers are available.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ciconfig UIO_FSL_ELBC_GPCM_NETX5152
11862306a36Sopenharmony_ci	bool "eLBC/GPCM netX 51/52 support"
11962306a36Sopenharmony_ci	depends on UIO_FSL_ELBC_GPCM
12062306a36Sopenharmony_ci	help
12162306a36Sopenharmony_ci	  This will add support for netX 51/52 devices connected via eLBC/GPCM.
12262306a36Sopenharmony_ci	  In particular, it implements interrupt handling. This can be used
12362306a36Sopenharmony_ci	  together with the userspace netX stack from Hilscher.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci	  Information about this hardware can be found at:
12662306a36Sopenharmony_ci	  http://www.hilscher.com/netx
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ciconfig UIO_PRUSS
12962306a36Sopenharmony_ci	tristate "Texas Instruments PRUSS driver"
13062306a36Sopenharmony_ci	select GENERIC_ALLOCATOR
13162306a36Sopenharmony_ci	depends on HAS_IOMEM && HAS_DMA
13262306a36Sopenharmony_ci	help
13362306a36Sopenharmony_ci	  PRUSS driver for OMAPL138/DA850/AM18XX devices
13462306a36Sopenharmony_ci	  PRUSS driver requires user space components, examples and user space
13562306a36Sopenharmony_ci	  driver is available from below SVN repo - you may use anonymous login
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci	  https://gforge.ti.com/gf/project/pru_sw/
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci	  More info on API is available at below wiki
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci	  http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
14462306a36Sopenharmony_ci	  will be called uio_pruss.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciconfig UIO_MF624
14762306a36Sopenharmony_ci	tristate "Humusoft MF624 DAQ PCI card driver"
14862306a36Sopenharmony_ci	depends on PCI
14962306a36Sopenharmony_ci	help
15062306a36Sopenharmony_ci	  Userspace I/O interface for the Humusoft MF624 PCI card.
15162306a36Sopenharmony_ci	  A sample userspace application using this driver is available
15262306a36Sopenharmony_ci	  (among other MF624 related information and software components)
15362306a36Sopenharmony_ci	  for download in a git repository:
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci	    git clone git://rtime.felk.cvut.cz/mf6xx.git
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci	  If you compile this as a module, it will be called uio_mf624.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciconfig UIO_HV_GENERIC
16062306a36Sopenharmony_ci	tristate "Generic driver for Hyper-V VMBus"
16162306a36Sopenharmony_ci	depends on HYPERV
16262306a36Sopenharmony_ci	help
16362306a36Sopenharmony_ci	  Generic driver that you can bind, dynamically, to any
16462306a36Sopenharmony_ci	  Hyper-V VMBus device. It is useful to provide direct access
16562306a36Sopenharmony_ci	  to network and storage devices from userspace.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	  If you compile this as a module, it will be called uio_hv_generic.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciconfig UIO_DFL
17062306a36Sopenharmony_ci	tristate "Generic driver for DFL (Device Feature List) bus"
17162306a36Sopenharmony_ci	depends on FPGA_DFL
17262306a36Sopenharmony_ci	help
17362306a36Sopenharmony_ci	  Generic DFL (Device Feature List) driver for Userspace I/O devices.
17462306a36Sopenharmony_ci	  It is useful to provide direct access to DFL devices from userspace.
17562306a36Sopenharmony_ci	  A sample userspace application using this driver is available for
17662306a36Sopenharmony_ci	  download in a git repository:
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	    git clone https://github.com/OPAE/opae-sdk.git
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci	  It could be found at:
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci	    opae-sdk/tools/libopaeuio/
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci	  If you compile this as a module, it will be called uio_dfl.
18562306a36Sopenharmony_ciendif
186