linux/drivers/uio/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2menuconfig UIO
   3        tristate "Userspace I/O drivers"
   4        depends on MMU
   5        help
   6          Enable this to allow the userspace driver core code to be
   7          built.  This code allows userspace programs easy access to
   8          kernel interrupts and memory locations, allowing some drivers
   9          to be written in userspace.  Note that a small kernel driver
  10          is also required for interrupt handling to work properly.
  11
  12          If you don't know what to do here, say N.
  13
  14if UIO
  15
  16config UIO_CIF
  17        tristate "generic Hilscher CIF Card driver"
  18        depends on PCI
  19        help
  20          Driver for Hilscher CIF DeviceNet and Profibus cards.  This
  21          driver requires a userspace component called cif that handles
  22          all of the heavy lifting and can be found at:
  23                <http://www.osadl.org/projects/downloads/UIO/user/>
  24
  25          To compile this driver as a module, choose M here: the module
  26          will be called uio_cif.
  27
  28config UIO_PDRV_GENIRQ
  29        tristate "Userspace I/O platform driver with generic IRQ handling"
  30        help
  31          Platform driver for Userspace I/O devices, including generic
  32          interrupt handling code. Shared interrupts are not supported.
  33
  34          This kernel driver requires that the matching userspace driver
  35          handles interrupts in a special way. Userspace is responsible
  36          for acknowledging the hardware device if needed, and re-enabling
  37          interrupts in the interrupt controller using the write() syscall.
  38
  39          If you don't know what to do here, say N.
  40
  41config UIO_DMEM_GENIRQ
  42        tristate "Userspace platform driver with generic irq and dynamic memory"
  43        depends on HAS_DMA
  44        help
  45          Platform driver for Userspace I/O devices, including generic
  46          interrupt handling code. Shared interrupts are not supported.
  47
  48          Memory regions can be specified with the same platform device
  49          resources as the UIO_PDRV drivers, but dynamic regions can also
  50          be specified.
  51          The number and size of these regions is static,
  52          but the memory allocation is not performed until
  53          the associated device file is opened. The
  54          memory is freed once the uio device is closed.
  55
  56          If you don't know what to do here, say N.
  57
  58config UIO_AEC
  59        tristate "AEC video timestamp device"
  60        depends on PCI
  61        help
  62
  63          UIO driver for the Adrienne Electronics Corporation PCI time
  64          code device.
  65
  66          This device differs from other UIO devices since it uses I/O
  67          ports instead of memory mapped I/O. In order to make it
  68          possible for UIO to work with this device a utility, uioport,
  69          can be used to read and write the ports:
  70
  71            git clone git://ifup.org/philips/uioport.git
  72
  73          If you compile this as a module, it will be called uio_aec.
  74
  75config UIO_SERCOS3
  76        tristate "Automata Sercos III PCI card driver"
  77        depends on PCI
  78        help
  79          Userspace I/O interface for the Sercos III PCI card from
  80          Automata GmbH. The userspace part of this driver will be
  81          available for download from the Automata GmbH web site.
  82
  83          Automata GmbH:        http://www.automataweb.com
  84          Sercos III interface: http://www.sercos.com
  85
  86          If you compile this as a module, it will be called uio_sercos3.
  87
  88config UIO_PCI_GENERIC
  89        tristate "Generic driver for PCI 2.3 and PCI Express cards"
  90        depends on PCI
  91        help
  92          Generic driver that you can bind, dynamically, to any
  93          PCI 2.3 compliant and PCI Express card. It is useful,
  94          primarily, for virtualization scenarios.
  95          If you compile this as a module, it will be called uio_pci_generic.
  96
  97config UIO_NETX
  98        tristate "Hilscher NetX Card driver"
  99        depends on PCI
 100        help
 101          Driver for Hilscher NetX based fieldbus cards (cifX, comX).
 102          This driver requires a userspace component that comes with the card
 103          or is available from Hilscher (http://www.hilscher.com).
 104
 105          To compile this driver as a module, choose M here; the module
 106          will be called uio_netx.
 107
 108config UIO_FSL_ELBC_GPCM
 109        tristate "eLBC/GPCM driver"
 110        depends on FSL_LBC
 111        help
 112          Generic driver for accessing a peripheral connected to an eLBC port
 113          that is running in GPCM mode. GPCM is an interface for simple lower
 114          performance memories and memory-mapped devices. For devices using
 115          FCM or UPM eLBC modes, other device-specific drivers are available.
 116
 117config UIO_FSL_ELBC_GPCM_NETX5152
 118        bool "eLBC/GPCM netX 51/52 support"
 119        depends on UIO_FSL_ELBC_GPCM
 120        help
 121          This will add support for netX 51/52 devices connected via eLBC/GPCM.
 122          In particular, it implements interrupt handling. This can be used
 123          together with the userspace netX stack from Hilscher.
 124
 125          Information about this hardware can be found at:
 126          http://www.hilscher.com/netx
 127
 128config UIO_PRUSS
 129        tristate "Texas Instruments PRUSS driver"
 130        select GENERIC_ALLOCATOR
 131        depends on HAS_IOMEM && HAS_DMA
 132        help
 133          PRUSS driver for OMAPL138/DA850/AM18XX devices
 134          PRUSS driver requires user space components, examples and user space
 135          driver is available from below SVN repo - you may use anonymous login
 136
 137          https://gforge.ti.com/gf/project/pru_sw/
 138
 139          More info on API is available at below wiki
 140
 141          http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
 142
 143          To compile this driver as a module, choose M here: the module
 144          will be called uio_pruss.
 145
 146config UIO_MF624
 147        tristate "Humusoft MF624 DAQ PCI card driver"
 148        depends on PCI
 149        help
 150          Userspace I/O interface for the Humusoft MF624 PCI card.
 151          A sample userspace application using this driver is available
 152          (among other MF624 related information and software components)
 153          for download in a git repository:
 154
 155            git clone git://rtime.felk.cvut.cz/mf6xx.git
 156
 157          If you compile this as a module, it will be called uio_mf624.
 158
 159config UIO_HV_GENERIC
 160        tristate "Generic driver for Hyper-V VMBus"
 161        depends on HYPERV
 162        help
 163          Generic driver that you can bind, dynamically, to any
 164          Hyper-V VMBus device. It is useful to provide direct access
 165          to network and storage devices from userspace.
 166
 167          If you compile this as a module, it will be called uio_hv_generic.
 168
 169config UIO_DFL
 170        tristate "Generic driver for DFL (Device Feature List) bus"
 171        depends on FPGA_DFL
 172        help
 173          Generic DFL (Device Feature List) driver for Userspace I/O devices.
 174          It is useful to provide direct access to DFL devices from userspace.
 175          A sample userspace application using this driver is available for
 176          download in a git repository:
 177
 178            git clone https://github.com/OPAE/opae-sdk.git
 179
 180          It could be found at:
 181
 182            opae-sdk/tools/libopaeuio/
 183
 184          If you compile this as a module, it will be called uio_dfl.
 185endif
 186