xref: /openbmc/linux/drivers/uio/Kconfig (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2ae210f18SDenis Chengmenuconfig UIO
3beafc54cSHans J. Koch	tristate "Userspace I/O drivers"
43cc1f952SChen Gang	depends on MMU
5beafc54cSHans J. Koch	help
6beafc54cSHans J. Koch	  Enable this to allow the userspace driver core code to be
7beafc54cSHans J. Koch	  built.  This code allows userspace programs easy access to
8beafc54cSHans J. Koch	  kernel interrupts and memory locations, allowing some drivers
9beafc54cSHans J. Koch	  to be written in userspace.  Note that a small kernel driver
10beafc54cSHans J. Koch	  is also required for interrupt handling to work properly.
11beafc54cSHans J. Koch
12beafc54cSHans J. Koch	  If you don't know what to do here, say N.
13beafc54cSHans J. Koch
14ae210f18SDenis Chengif UIO
15ae210f18SDenis Cheng
16bc4c4f45SHans-Jürgen Kochconfig UIO_CIF
17bc4c4f45SHans-Jürgen Koch	tristate "generic Hilscher CIF Card driver"
18934da476SUwe Kleine-König	depends on PCI
19bc4c4f45SHans-Jürgen Koch	help
20bc4c4f45SHans-Jürgen Koch	  Driver for Hilscher CIF DeviceNet and Profibus cards.  This
21631dd1a8SJustin P. Mattock	  driver requires a userspace component called cif that handles
22631dd1a8SJustin P. Mattock	  all of the heavy lifting and can be found at:
23631dd1a8SJustin P. Mattock	        <http://www.osadl.org/projects/downloads/UIO/user/>
24bc4c4f45SHans-Jürgen Koch
25bc4c4f45SHans-Jürgen Koch	  To compile this driver as a module, choose M here: the module
26bc4c4f45SHans-Jürgen Koch	  will be called uio_cif.
27bc4c4f45SHans-Jürgen Koch
28c767db0aSMagnus Dammconfig UIO_PDRV_GENIRQ
29c767db0aSMagnus Damm	tristate "Userspace I/O platform driver with generic IRQ handling"
30c767db0aSMagnus Damm	help
31c767db0aSMagnus Damm	  Platform driver for Userspace I/O devices, including generic
32c767db0aSMagnus Damm	  interrupt handling code. Shared interrupts are not supported.
33c767db0aSMagnus Damm
34c767db0aSMagnus Damm	  This kernel driver requires that the matching userspace driver
35c767db0aSMagnus Damm	  handles interrupts in a special way. Userspace is responsible
36c767db0aSMagnus Damm	  for acknowledging the hardware device if needed, and re-enabling
37c767db0aSMagnus Damm	  interrupts in the interrupt controller using the write() syscall.
38c767db0aSMagnus Damm
39c767db0aSMagnus Damm	  If you don't know what to do here, say N.
40c767db0aSMagnus Damm
410a0c3b5aSDamian Hobson-Garciaconfig UIO_DMEM_GENIRQ
420a0c3b5aSDamian Hobson-Garcia	tristate "Userspace platform driver with generic irq and dynamic memory"
4389fb9e7cSGeert Uytterhoeven	depends on HAS_DMA
440a0c3b5aSDamian Hobson-Garcia	help
450a0c3b5aSDamian Hobson-Garcia	  Platform driver for Userspace I/O devices, including generic
460a0c3b5aSDamian Hobson-Garcia	  interrupt handling code. Shared interrupts are not supported.
470a0c3b5aSDamian Hobson-Garcia
480a0c3b5aSDamian Hobson-Garcia	  Memory regions can be specified with the same platform device
490a0c3b5aSDamian Hobson-Garcia	  resources as the UIO_PDRV drivers, but dynamic regions can also
500a0c3b5aSDamian Hobson-Garcia	  be specified.
510a0c3b5aSDamian Hobson-Garcia	  The number and size of these regions is static,
520a0c3b5aSDamian Hobson-Garcia	  but the memory allocation is not performed until
530a0c3b5aSDamian Hobson-Garcia	  the associated device file is opened. The
540a0c3b5aSDamian Hobson-Garcia	  memory is freed once the uio device is closed.
550a0c3b5aSDamian Hobson-Garcia
560a0c3b5aSDamian Hobson-Garcia	  If you don't know what to do here, say N.
570a0c3b5aSDamian Hobson-Garcia
581bafeb37SBrandon Philipsconfig UIO_AEC
591bafeb37SBrandon Philips	tristate "AEC video timestamp device"
601bafeb37SBrandon Philips	depends on PCI
611bafeb37SBrandon Philips	help
621bafeb37SBrandon Philips
631bafeb37SBrandon Philips	  UIO driver for the Adrienne Electronics Corporation PCI time
641bafeb37SBrandon Philips	  code device.
651bafeb37SBrandon Philips
661bafeb37SBrandon Philips	  This device differs from other UIO devices since it uses I/O
671bafeb37SBrandon Philips	  ports instead of memory mapped I/O. In order to make it
681bafeb37SBrandon Philips	  possible for UIO to work with this device a utility, uioport,
691bafeb37SBrandon Philips	  can be used to read and write the ports:
701bafeb37SBrandon Philips
711bafeb37SBrandon Philips	    git clone git://ifup.org/philips/uioport.git
721bafeb37SBrandon Philips
731bafeb37SBrandon Philips	  If you compile this as a module, it will be called uio_aec.
741bafeb37SBrandon Philips
75a6030fccSJohn Ognessconfig UIO_SERCOS3
76a6030fccSJohn Ogness	tristate "Automata Sercos III PCI card driver"
770a965eb9SJohn Ogness	depends on PCI
78a6030fccSJohn Ogness	help
79a6030fccSJohn Ogness	  Userspace I/O interface for the Sercos III PCI card from
80a6030fccSJohn Ogness	  Automata GmbH. The userspace part of this driver will be
81a6030fccSJohn Ogness	  available for download from the Automata GmbH web site.
82a6030fccSJohn Ogness
83a6030fccSJohn Ogness	  Automata GmbH:        http://www.automataweb.com
84a6030fccSJohn Ogness	  Sercos III interface: http://www.sercos.com
85a6030fccSJohn Ogness
86a6030fccSJohn Ogness	  If you compile this as a module, it will be called uio_sercos3.
87a6030fccSJohn Ogness
88ccb86a69SMichael S. Tsirkinconfig UIO_PCI_GENERIC
89ccb86a69SMichael S. Tsirkin	tristate "Generic driver for PCI 2.3 and PCI Express cards"
90ccb86a69SMichael S. Tsirkin	depends on PCI
91ccb86a69SMichael S. Tsirkin	help
92ccb86a69SMichael S. Tsirkin	  Generic driver that you can bind, dynamically, to any
93ccb86a69SMichael S. Tsirkin	  PCI 2.3 compliant and PCI Express card. It is useful,
94ccb86a69SMichael S. Tsirkin	  primarily, for virtualization scenarios.
95ccb86a69SMichael S. Tsirkin	  If you compile this as a module, it will be called uio_pci_generic.
96ccb86a69SMichael S. Tsirkin
978f314cfcSHans J. Kochconfig UIO_NETX
988f314cfcSHans J. Koch	tristate "Hilscher NetX Card driver"
998f314cfcSHans J. Koch	depends on PCI
1008f314cfcSHans J. Koch	help
1018f314cfcSHans J. Koch	  Driver for Hilscher NetX based fieldbus cards (cifX, comX).
1028f314cfcSHans J. Koch	  This driver requires a userspace component that comes with the card
1038f314cfcSHans J. Koch	  or is available from Hilscher (http://www.hilscher.com).
1048f314cfcSHans J. Koch
1058f314cfcSHans J. Koch	  To compile this driver as a module, choose M here; the module
1068f314cfcSHans J. Koch	  will be called uio_netx.
1078f314cfcSHans J. Koch
108fbc4a8a8SJohn Ognessconfig UIO_FSL_ELBC_GPCM
109fbc4a8a8SJohn Ogness	tristate "eLBC/GPCM driver"
110fbc4a8a8SJohn Ogness	depends on FSL_LBC
111fbc4a8a8SJohn Ogness	help
112fbc4a8a8SJohn Ogness	  Generic driver for accessing a peripheral connected to an eLBC port
113fbc4a8a8SJohn Ogness	  that is running in GPCM mode. GPCM is an interface for simple lower
114fbc4a8a8SJohn Ogness	  performance memories and memory-mapped devices. For devices using
115fbc4a8a8SJohn Ogness	  FCM or UPM eLBC modes, other device-specific drivers are available.
116fbc4a8a8SJohn Ogness
117fbc4a8a8SJohn Ognessconfig UIO_FSL_ELBC_GPCM_NETX5152
118fbc4a8a8SJohn Ogness	bool "eLBC/GPCM netX 51/52 support"
119fbc4a8a8SJohn Ogness	depends on UIO_FSL_ELBC_GPCM
120fbc4a8a8SJohn Ogness	help
121fbc4a8a8SJohn Ogness	  This will add support for netX 51/52 devices connected via eLBC/GPCM.
122fbc4a8a8SJohn Ogness	  In particular, it implements interrupt handling. This can be used
123fbc4a8a8SJohn Ogness	  together with the userspace netX stack from Hilscher.
124fbc4a8a8SJohn Ogness
125fbc4a8a8SJohn Ogness	  Information about this hardware can be found at:
126fbc4a8a8SJohn Ogness	  http://www.hilscher.com/netx
127fbc4a8a8SJohn Ogness
128f1a304e7SPratheesh Gangadharconfig UIO_PRUSS
129f1a304e7SPratheesh Gangadhar	tristate "Texas Instruments PRUSS driver"
1302eb2478dSMatt Porter	select GENERIC_ALLOCATOR
131686079c9SGeert Uytterhoeven	depends on HAS_IOMEM && HAS_DMA
132f1a304e7SPratheesh Gangadhar	help
133f1a304e7SPratheesh Gangadhar	  PRUSS driver for OMAPL138/DA850/AM18XX devices
134f1a304e7SPratheesh Gangadhar	  PRUSS driver requires user space components, examples and user space
135f1a304e7SPratheesh Gangadhar	  driver is available from below SVN repo - you may use anonymous login
136f1a304e7SPratheesh Gangadhar
137f1a304e7SPratheesh Gangadhar	  https://gforge.ti.com/gf/project/pru_sw/
138f1a304e7SPratheesh Gangadhar
139f1a304e7SPratheesh Gangadhar	  More info on API is available at below wiki
140f1a304e7SPratheesh Gangadhar
141f1a304e7SPratheesh Gangadhar	  http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
142f1a304e7SPratheesh Gangadhar
143f1a304e7SPratheesh Gangadhar	  To compile this driver as a module, choose M here: the module
144f1a304e7SPratheesh Gangadhar	  will be called uio_pruss.
145f1a304e7SPratheesh Gangadhar
14606849faaSRostislav Lisovyconfig UIO_MF624
14706849faaSRostislav Lisovy	tristate "Humusoft MF624 DAQ PCI card driver"
14806849faaSRostislav Lisovy	depends on PCI
14906849faaSRostislav Lisovy	help
15006849faaSRostislav Lisovy	  Userspace I/O interface for the Humusoft MF624 PCI card.
15106849faaSRostislav Lisovy	  A sample userspace application using this driver is available
15206849faaSRostislav Lisovy	  (among other MF624 related information and software components)
15306849faaSRostislav Lisovy	  for download in a git repository:
15406849faaSRostislav Lisovy
15506849faaSRostislav Lisovy	    git clone git://rtime.felk.cvut.cz/mf6xx.git
15606849faaSRostislav Lisovy
15706849faaSRostislav Lisovy	  If you compile this as a module, it will be called uio_mf624.
15806849faaSRostislav Lisovy
15995096f2fSStephen Hemmingerconfig UIO_HV_GENERIC
16095096f2fSStephen Hemminger	tristate "Generic driver for Hyper-V VMBus"
16195096f2fSStephen Hemminger	depends on HYPERV
16295096f2fSStephen Hemminger	help
16395096f2fSStephen Hemminger	  Generic driver that you can bind, dynamically, to any
16495096f2fSStephen Hemminger	  Hyper-V VMBus device. It is useful to provide direct access
16595096f2fSStephen Hemminger	  to network and storage devices from userspace.
16695096f2fSStephen Hemminger
16795096f2fSStephen Hemminger	  If you compile this as a module, it will be called uio_hv_generic.
168*bbfb54e7SXu Yilun
169*bbfb54e7SXu Yilunconfig UIO_DFL
170*bbfb54e7SXu Yilun	tristate "Generic driver for DFL (Device Feature List) bus"
171*bbfb54e7SXu Yilun	depends on FPGA_DFL
172*bbfb54e7SXu Yilun	help
173*bbfb54e7SXu Yilun	  Generic DFL (Device Feature List) driver for Userspace I/O devices.
174*bbfb54e7SXu Yilun	  It is useful to provide direct access to DFL devices from userspace.
175*bbfb54e7SXu Yilun	  A sample userspace application using this driver is available for
176*bbfb54e7SXu Yilun	  download in a git repository:
177*bbfb54e7SXu Yilun
178*bbfb54e7SXu Yilun	    git clone https://github.com/OPAE/opae-sdk.git
179*bbfb54e7SXu Yilun
180*bbfb54e7SXu Yilun	  It could be found at:
181*bbfb54e7SXu Yilun
182*bbfb54e7SXu Yilun	    opae-sdk/tools/libopaeuio/
183*bbfb54e7SXu Yilun
184*bbfb54e7SXu Yilun	  If you compile this as a module, it will be called uio_dfl.
185ae210f18SDenis Chengendif
186