xref: /linux/drivers/uio/Kconfig (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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_MF624
129	tristate "Humusoft MF624 DAQ PCI card driver"
130	depends on PCI
131	help
132	  Userspace I/O interface for the Humusoft MF624 PCI card.
133	  A sample userspace application using this driver is available
134	  (among other MF624 related information and software components)
135	  for download in a git repository:
136
137	    git clone git://rtime.felk.cvut.cz/mf6xx.git
138
139	  If you compile this as a module, it will be called uio_mf624.
140
141config UIO_HV_GENERIC
142	tristate "Generic driver for Hyper-V VMBus"
143	depends on HYPERV
144	help
145	  Generic driver that you can bind, dynamically, to any
146	  Hyper-V VMBus device. It is useful to provide direct access
147	  to network and storage devices from userspace.
148
149	  If you compile this as a module, it will be called uio_hv_generic.
150
151config UIO_DFL
152	tristate "Generic driver for DFL (Device Feature List) bus"
153	depends on FPGA_DFL
154	help
155	  Generic DFL (Device Feature List) driver for Userspace I/O devices.
156	  It is useful to provide direct access to DFL devices from userspace.
157	  A sample userspace application using this driver is available for
158	  download in a git repository:
159
160	    git clone https://github.com/OPAE/opae-sdk.git
161
162	  It could be found at:
163
164	    opae-sdk/tools/libopaeuio/
165
166	  If you compile this as a module, it will be called uio_dfl.
167endif
168