# SPDX-License-Identifier: GPL-2.0-only
menuconfig [31mCONFIG_UIO[0m
tristate "Userspace I/O drivers"
depends on [31mCONFIG_MMU[0m
help
Enable this to allow the userspace driver core code to be
built. This code allows userspace programs easy access to
kernel interrupts and memory locations, allowing some drivers
to be written in userspace. Note that a small kernel driver
is also required for interrupt handling to work properly.
If you don't know what to do here, say N.
if [31mCONFIG_UIO[0m
config [31mCONFIG_UIO_CIF[0m
tristate "generic Hilscher CIF Card driver"
depends on [31mCONFIG_PCI[0m
help
Driver for Hilscher CIF DeviceNet and Profibus cards. This
driver requires a userspace component called cif that handles
all of the heavy lifting and can be found at:
<http://www.osadl.org/projects/downloads/UIO/user/>
To compile this driver as a module, choose [31mCONFIG_M[0m here: the module
will be called uio_cif.
config [31mCONFIG_UIO_PDRV_GENIRQ[0m
tristate "Userspace I/O platform driver with generic IRQ handling"
help
Platform driver for Userspace I/O devices, including generic
interrupt handling code. Shared interrupts are not supported.
This kernel driver requires that the matching userspace driver
handles interrupts in a special way. Userspace is responsible
for acknowledging the hardware device if needed, and re-enabling
interrupts in the interrupt controller using the write() syscall.
If you don't know what to do here, say N.
config [31mCONFIG_UIO_DMEM_GENIRQ[0m
tristate "Userspace platform driver with generic irq and dynamic memory"
depends on [31mCONFIG_HAS_DMA[0m
help
Platform driver for Userspace I/O devices, including generic
interrupt handling code. Shared interrupts are not supported.
Memory regions can be specified with the same platform device
resources as the UIO_PDRV drivers, but dynamic regions can also
be specified.
The number and size of these regions is static,
but the memory allocation is not performed until
the associated device file is opened. The
memory is freed once the uio device is closed.
If you don't know what to do here, say N.
config [31mCONFIG_UIO_AEC[0m
tristate "AEC video timestamp device"
depends on [31mCONFIG_PCI[0m
help
[31mCONFIG_UIO[0m driver for the Adrienne Electronics Corporation [31mCONFIG_PCI[0m time
code device.
This device differs from other [31mCONFIG_UIO[0m devices since it uses I/O
ports instead of memory mapped I/O. In order to make it
possible for [31mCONFIG_UIO[0m to work with this device a utility, uioport,
can be used to read and write the ports:
git clone git://ifup.org/philips/uioport.git
If you compile this as a module, it will be called uio_aec.
config [31mCONFIG_UIO_SERCOS3[0m
tristate "Automata Sercos III PCI card driver"
depends on [31mCONFIG_PCI[0m
help
Userspace I/O interface for the Sercos III [31mCONFIG_PCI[0m card from
Automata GmbH. The userspace part of this driver will be
available for download from the Automata GmbH web site.
Automata GmbH: http://www.automataweb.com
Sercos III interface: http://www.sercos.com
If you compile this as a module, it will be called uio_sercos3.
config [31mCONFIG_UIO_PCI_GENERIC[0m
tristate "Generic driver for PCI 2.3 and PCI Express cards"
depends on [31mCONFIG_PCI[0m
help
Generic driver that you can bind, dynamically, to any
[31mCONFIG_PCI[0m 2.3 compliant and [31mCONFIG_PCI[0m Express card. It is useful,
primarily, for virtualization scenarios.
If you compile this as a module, it will be called uio_pci_generic.
config [31mCONFIG_UIO_NETX[0m
tristate "Hilscher NetX Card driver"
depends on [31mCONFIG_PCI[0m
help
Driver for Hilscher NetX based fieldbus cards (cifX, comX).
This driver requires a userspace component that comes with the card
or is available from Hilscher (http://www.hilscher.com).
To compile this driver as a module, choose [31mCONFIG_M[0m here; the module
will be called uio_netx.
config [31mCONFIG_UIO_FSL_ELBC_GPCM[0m
tristate "eLBC/GPCM driver"
depends on [31mCONFIG_FSL_LBC[0m
help
Generic driver for accessing a peripheral connected to an eLBC port
that is running in GPCM mode. GPCM is an interface for simple lower
performance memories and memory-mapped devices. For devices using
FCM or UPM eLBC modes, other device-specific drivers are available.
config [31mCONFIG_UIO_FSL_ELBC_GPCM_NETX5152[0m
bool "eLBC/GPCM netX 51/52 support"
depends on [31mCONFIG_UIO_FSL_ELBC_GPCM[0m
help
This will add support for netX 51/52 devices connected via eLBC/GPCM.
In particular, it implements interrupt handling. This can be used
together with the userspace netX stack from Hilscher.
Information about this hardware can be found at:
http://www.hilscher.com/netx
config [31mCONFIG_UIO_PRUSS[0m
tristate "Texas Instruments PRUSS driver"
select [31mCONFIG_GENERIC_ALLOCATOR[0m
depends on [31mCONFIG_HAS_IOMEM[0m && [31mCONFIG_HAS_DMA[0m
help
PRUSS driver for OMAPL138/DA850/AM18XX devices
PRUSS driver requires user space components, examples and user space
driver is available from below SVN repo - you may use anonymous login
https://gforge.ti.com/gf/project/pru_sw/
More info on API is available at below wiki
http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
To compile this driver as a module, choose [31mCONFIG_M[0m here: the module
will be called uio_pruss.
config [31mCONFIG_UIO_MF624[0m
tristate "Humusoft MF624 DAQ PCI card driver"
depends on [31mCONFIG_PCI[0m
help
Userspace I/O interface for the Humusoft MF624 [31mCONFIG_PCI[0m card.
[31mCONFIG_A[0m sample userspace application using this driver is available
(among other MF624 related information and software components)
for download in a git repository:
git clone git://rtime.felk.cvut.cz/mf6xx.git
If you compile this as a module, it will be called uio_mf624.
config [31mCONFIG_UIO_HV_GENERIC[0m
tristate "Generic driver for Hyper-V VMBus"
depends on [31mCONFIG_HYPERV[0m
help
Generic driver that you can bind, dynamically, to any
Hyper-V VMBus device. It is useful to provide direct access
to network and storage devices from userspace.
If you compile this as a module, it will be called uio_hv_generic.
endif