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