xref: /kernel/linux/linux-5.10/drivers/uio/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenuconfig UIO
38c2ecf20Sopenharmony_ci	tristate "Userspace I/O drivers"
48c2ecf20Sopenharmony_ci	depends on MMU
58c2ecf20Sopenharmony_ci	help
68c2ecf20Sopenharmony_ci	  Enable this to allow the userspace driver core code to be
78c2ecf20Sopenharmony_ci	  built.  This code allows userspace programs easy access to
88c2ecf20Sopenharmony_ci	  kernel interrupts and memory locations, allowing some drivers
98c2ecf20Sopenharmony_ci	  to be written in userspace.  Note that a small kernel driver
108c2ecf20Sopenharmony_ci	  is also required for interrupt handling to work properly.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci	  If you don't know what to do here, say N.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciif UIO
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciconfig UIO_CIF
178c2ecf20Sopenharmony_ci	tristate "generic Hilscher CIF Card driver"
188c2ecf20Sopenharmony_ci	depends on PCI
198c2ecf20Sopenharmony_ci	help
208c2ecf20Sopenharmony_ci	  Driver for Hilscher CIF DeviceNet and Profibus cards.  This
218c2ecf20Sopenharmony_ci  	  driver requires a userspace component called cif that handles
228c2ecf20Sopenharmony_ci	  all of the heavy lifting and can be found at:
238c2ecf20Sopenharmony_ci	        <http://www.osadl.org/projects/downloads/UIO/user/>
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
268c2ecf20Sopenharmony_ci	  will be called uio_cif.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciconfig UIO_PDRV_GENIRQ
298c2ecf20Sopenharmony_ci	tristate "Userspace I/O platform driver with generic IRQ handling"
308c2ecf20Sopenharmony_ci	help
318c2ecf20Sopenharmony_ci	  Platform driver for Userspace I/O devices, including generic
328c2ecf20Sopenharmony_ci	  interrupt handling code. Shared interrupts are not supported.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	  This kernel driver requires that the matching userspace driver
358c2ecf20Sopenharmony_ci	  handles interrupts in a special way. Userspace is responsible
368c2ecf20Sopenharmony_ci	  for acknowledging the hardware device if needed, and re-enabling
378c2ecf20Sopenharmony_ci	  interrupts in the interrupt controller using the write() syscall.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	  If you don't know what to do here, say N.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciconfig UIO_DMEM_GENIRQ
428c2ecf20Sopenharmony_ci	tristate "Userspace platform driver with generic irq and dynamic memory"
438c2ecf20Sopenharmony_ci	depends on HAS_DMA
448c2ecf20Sopenharmony_ci	help
458c2ecf20Sopenharmony_ci	  Platform driver for Userspace I/O devices, including generic
468c2ecf20Sopenharmony_ci	  interrupt handling code. Shared interrupts are not supported.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci	  Memory regions can be specified with the same platform device
498c2ecf20Sopenharmony_ci	  resources as the UIO_PDRV drivers, but dynamic regions can also
508c2ecf20Sopenharmony_ci	  be specified.
518c2ecf20Sopenharmony_ci	  The number and size of these regions is static,
528c2ecf20Sopenharmony_ci	  but the memory allocation is not performed until
538c2ecf20Sopenharmony_ci	  the associated device file is opened. The
548c2ecf20Sopenharmony_ci	  memory is freed once the uio device is closed.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	  If you don't know what to do here, say N.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciconfig UIO_AEC
598c2ecf20Sopenharmony_ci	tristate "AEC video timestamp device"
608c2ecf20Sopenharmony_ci	depends on PCI
618c2ecf20Sopenharmony_ci	help
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	  UIO driver for the Adrienne Electronics Corporation PCI time
648c2ecf20Sopenharmony_ci	  code device.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	  This device differs from other UIO devices since it uses I/O
678c2ecf20Sopenharmony_ci	  ports instead of memory mapped I/O. In order to make it
688c2ecf20Sopenharmony_ci	  possible for UIO to work with this device a utility, uioport,
698c2ecf20Sopenharmony_ci	  can be used to read and write the ports:
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	    git clone git://ifup.org/philips/uioport.git
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci	  If you compile this as a module, it will be called uio_aec.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciconfig UIO_SERCOS3
768c2ecf20Sopenharmony_ci	tristate "Automata Sercos III PCI card driver"
778c2ecf20Sopenharmony_ci	depends on PCI
788c2ecf20Sopenharmony_ci	help
798c2ecf20Sopenharmony_ci	  Userspace I/O interface for the Sercos III PCI card from
808c2ecf20Sopenharmony_ci	  Automata GmbH. The userspace part of this driver will be
818c2ecf20Sopenharmony_ci	  available for download from the Automata GmbH web site.
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci	  Automata GmbH:        http://www.automataweb.com
848c2ecf20Sopenharmony_ci	  Sercos III interface: http://www.sercos.com
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci	  If you compile this as a module, it will be called uio_sercos3.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ciconfig UIO_PCI_GENERIC
898c2ecf20Sopenharmony_ci	tristate "Generic driver for PCI 2.3 and PCI Express cards"
908c2ecf20Sopenharmony_ci	depends on PCI
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  Generic driver that you can bind, dynamically, to any
938c2ecf20Sopenharmony_ci	  PCI 2.3 compliant and PCI Express card. It is useful,
948c2ecf20Sopenharmony_ci	  primarily, for virtualization scenarios.
958c2ecf20Sopenharmony_ci	  If you compile this as a module, it will be called uio_pci_generic.
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciconfig UIO_NETX
988c2ecf20Sopenharmony_ci	tristate "Hilscher NetX Card driver"
998c2ecf20Sopenharmony_ci	depends on PCI
1008c2ecf20Sopenharmony_ci	help
1018c2ecf20Sopenharmony_ci	  Driver for Hilscher NetX based fieldbus cards (cifX, comX).
1028c2ecf20Sopenharmony_ci	  This driver requires a userspace component that comes with the card
1038c2ecf20Sopenharmony_ci	  or is available from Hilscher (http://www.hilscher.com).
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here; the module
1068c2ecf20Sopenharmony_ci	  will be called uio_netx.
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciconfig UIO_FSL_ELBC_GPCM
1098c2ecf20Sopenharmony_ci	tristate "eLBC/GPCM driver"
1108c2ecf20Sopenharmony_ci	depends on FSL_LBC
1118c2ecf20Sopenharmony_ci	help
1128c2ecf20Sopenharmony_ci	  Generic driver for accessing a peripheral connected to an eLBC port
1138c2ecf20Sopenharmony_ci	  that is running in GPCM mode. GPCM is an interface for simple lower
1148c2ecf20Sopenharmony_ci	  performance memories and memory-mapped devices. For devices using
1158c2ecf20Sopenharmony_ci	  FCM or UPM eLBC modes, other device-specific drivers are available.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ciconfig UIO_FSL_ELBC_GPCM_NETX5152
1188c2ecf20Sopenharmony_ci	bool "eLBC/GPCM netX 51/52 support"
1198c2ecf20Sopenharmony_ci	depends on UIO_FSL_ELBC_GPCM
1208c2ecf20Sopenharmony_ci	help
1218c2ecf20Sopenharmony_ci	  This will add support for netX 51/52 devices connected via eLBC/GPCM.
1228c2ecf20Sopenharmony_ci	  In particular, it implements interrupt handling. This can be used
1238c2ecf20Sopenharmony_ci	  together with the userspace netX stack from Hilscher.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	  Information about this hardware can be found at:
1268c2ecf20Sopenharmony_ci	  http://www.hilscher.com/netx
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciconfig UIO_PRUSS
1298c2ecf20Sopenharmony_ci	tristate "Texas Instruments PRUSS driver"
1308c2ecf20Sopenharmony_ci	select GENERIC_ALLOCATOR
1318c2ecf20Sopenharmony_ci	depends on HAS_IOMEM && HAS_DMA
1328c2ecf20Sopenharmony_ci	help
1338c2ecf20Sopenharmony_ci	  PRUSS driver for OMAPL138/DA850/AM18XX devices
1348c2ecf20Sopenharmony_ci	  PRUSS driver requires user space components, examples and user space
1358c2ecf20Sopenharmony_ci	  driver is available from below SVN repo - you may use anonymous login
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci	  https://gforge.ti.com/gf/project/pru_sw/
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci	  More info on API is available at below wiki
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci	  http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
1448c2ecf20Sopenharmony_ci	  will be called uio_pruss.
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ciconfig UIO_MF624
1478c2ecf20Sopenharmony_ci	tristate "Humusoft MF624 DAQ PCI card driver"
1488c2ecf20Sopenharmony_ci	depends on PCI
1498c2ecf20Sopenharmony_ci	help
1508c2ecf20Sopenharmony_ci	  Userspace I/O interface for the Humusoft MF624 PCI card.
1518c2ecf20Sopenharmony_ci	  A sample userspace application using this driver is available
1528c2ecf20Sopenharmony_ci	  (among other MF624 related information and software components)
1538c2ecf20Sopenharmony_ci	  for download in a git repository:
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci	    git clone git://rtime.felk.cvut.cz/mf6xx.git
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ci	  If you compile this as a module, it will be called uio_mf624.
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ciconfig UIO_HV_GENERIC
1608c2ecf20Sopenharmony_ci	tristate "Generic driver for Hyper-V VMBus"
1618c2ecf20Sopenharmony_ci	depends on HYPERV
1628c2ecf20Sopenharmony_ci	help
1638c2ecf20Sopenharmony_ci	  Generic driver that you can bind, dynamically, to any
1648c2ecf20Sopenharmony_ci	  Hyper-V VMBus device. It is useful to provide direct access
1658c2ecf20Sopenharmony_ci	  to network and storage devices from userspace.
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci	  If you compile this as a module, it will be called uio_hv_generic.
1688c2ecf20Sopenharmony_ciendif
169