0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menuconfig UIO
0003 tristate "Userspace I/O drivers"
0004 depends on MMU
0005 help
0006 Enable this to allow the userspace driver core code to be
0007 built. This code allows userspace programs easy access to
0008 kernel interrupts and memory locations, allowing some drivers
0009 to be written in userspace. Note that a small kernel driver
0010 is also required for interrupt handling to work properly.
0011
0012 If you don't know what to do here, say N.
0013
0014 if UIO
0015
0016 config UIO_CIF
0017 tristate "generic Hilscher CIF Card driver"
0018 depends on PCI
0019 help
0020 Driver for Hilscher CIF DeviceNet and Profibus cards. This
0021 driver requires a userspace component called cif that handles
0022 all of the heavy lifting and can be found at:
0023 <http://www.osadl.org/projects/downloads/UIO/user/>
0024
0025 To compile this driver as a module, choose M here: the module
0026 will be called uio_cif.
0027
0028 config UIO_PDRV_GENIRQ
0029 tristate "Userspace I/O platform driver with generic IRQ handling"
0030 help
0031 Platform driver for Userspace I/O devices, including generic
0032 interrupt handling code. Shared interrupts are not supported.
0033
0034 This kernel driver requires that the matching userspace driver
0035 handles interrupts in a special way. Userspace is responsible
0036 for acknowledging the hardware device if needed, and re-enabling
0037 interrupts in the interrupt controller using the write() syscall.
0038
0039 If you don't know what to do here, say N.
0040
0041 config UIO_DMEM_GENIRQ
0042 tristate "Userspace platform driver with generic irq and dynamic memory"
0043 depends on HAS_DMA
0044 help
0045 Platform driver for Userspace I/O devices, including generic
0046 interrupt handling code. Shared interrupts are not supported.
0047
0048 Memory regions can be specified with the same platform device
0049 resources as the UIO_PDRV drivers, but dynamic regions can also
0050 be specified.
0051 The number and size of these regions is static,
0052 but the memory allocation is not performed until
0053 the associated device file is opened. The
0054 memory is freed once the uio device is closed.
0055
0056 If you don't know what to do here, say N.
0057
0058 config UIO_AEC
0059 tristate "AEC video timestamp device"
0060 depends on PCI
0061 help
0062
0063 UIO driver for the Adrienne Electronics Corporation PCI time
0064 code device.
0065
0066 This device differs from other UIO devices since it uses I/O
0067 ports instead of memory mapped I/O. In order to make it
0068 possible for UIO to work with this device a utility, uioport,
0069 can be used to read and write the ports:
0070
0071 git clone git://ifup.org/philips/uioport.git
0072
0073 If you compile this as a module, it will be called uio_aec.
0074
0075 config UIO_SERCOS3
0076 tristate "Automata Sercos III PCI card driver"
0077 depends on PCI
0078 help
0079 Userspace I/O interface for the Sercos III PCI card from
0080 Automata GmbH. The userspace part of this driver will be
0081 available for download from the Automata GmbH web site.
0082
0083 Automata GmbH: http://www.automataweb.com
0084 Sercos III interface: http://www.sercos.com
0085
0086 If you compile this as a module, it will be called uio_sercos3.
0087
0088 config UIO_PCI_GENERIC
0089 tristate "Generic driver for PCI 2.3 and PCI Express cards"
0090 depends on PCI
0091 help
0092 Generic driver that you can bind, dynamically, to any
0093 PCI 2.3 compliant and PCI Express card. It is useful,
0094 primarily, for virtualization scenarios.
0095 If you compile this as a module, it will be called uio_pci_generic.
0096
0097 config UIO_NETX
0098 tristate "Hilscher NetX Card driver"
0099 depends on PCI
0100 help
0101 Driver for Hilscher NetX based fieldbus cards (cifX, comX).
0102 This driver requires a userspace component that comes with the card
0103 or is available from Hilscher (http://www.hilscher.com).
0104
0105 To compile this driver as a module, choose M here; the module
0106 will be called uio_netx.
0107
0108 config UIO_FSL_ELBC_GPCM
0109 tristate "eLBC/GPCM driver"
0110 depends on FSL_LBC
0111 help
0112 Generic driver for accessing a peripheral connected to an eLBC port
0113 that is running in GPCM mode. GPCM is an interface for simple lower
0114 performance memories and memory-mapped devices. For devices using
0115 FCM or UPM eLBC modes, other device-specific drivers are available.
0116
0117 config UIO_FSL_ELBC_GPCM_NETX5152
0118 bool "eLBC/GPCM netX 51/52 support"
0119 depends on UIO_FSL_ELBC_GPCM
0120 help
0121 This will add support for netX 51/52 devices connected via eLBC/GPCM.
0122 In particular, it implements interrupt handling. This can be used
0123 together with the userspace netX stack from Hilscher.
0124
0125 Information about this hardware can be found at:
0126 http://www.hilscher.com/netx
0127
0128 config UIO_PRUSS
0129 tristate "Texas Instruments PRUSS driver"
0130 select GENERIC_ALLOCATOR
0131 depends on HAS_IOMEM && HAS_DMA
0132 help
0133 PRUSS driver for OMAPL138/DA850/AM18XX devices
0134 PRUSS driver requires user space components, examples and user space
0135 driver is available from below SVN repo - you may use anonymous login
0136
0137 https://gforge.ti.com/gf/project/pru_sw/
0138
0139 More info on API is available at below wiki
0140
0141 http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
0142
0143 To compile this driver as a module, choose M here: the module
0144 will be called uio_pruss.
0145
0146 config UIO_MF624
0147 tristate "Humusoft MF624 DAQ PCI card driver"
0148 depends on PCI
0149 help
0150 Userspace I/O interface for the Humusoft MF624 PCI card.
0151 A sample userspace application using this driver is available
0152 (among other MF624 related information and software components)
0153 for download in a git repository:
0154
0155 git clone git://rtime.felk.cvut.cz/mf6xx.git
0156
0157 If you compile this as a module, it will be called uio_mf624.
0158
0159 config UIO_HV_GENERIC
0160 tristate "Generic driver for Hyper-V VMBus"
0161 depends on HYPERV
0162 help
0163 Generic driver that you can bind, dynamically, to any
0164 Hyper-V VMBus device. It is useful to provide direct access
0165 to network and storage devices from userspace.
0166
0167 If you compile this as a module, it will be called uio_hv_generic.
0168
0169 config UIO_DFL
0170 tristate "Generic driver for DFL (Device Feature List) bus"
0171 depends on FPGA_DFL
0172 help
0173 Generic DFL (Device Feature List) driver for Userspace I/O devices.
0174 It is useful to provide direct access to DFL devices from userspace.
0175 A sample userspace application using this driver is available for
0176 download in a git repository:
0177
0178 git clone https://github.com/OPAE/opae-sdk.git
0179
0180 It could be found at:
0181
0182 opae-sdk/tools/libopaeuio/
0183
0184 If you compile this as a module, it will be called uio_dfl.
0185 endif