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. 168endif 169