Merge tag 'sched-urgent-2023-09-17' of git://git.kernel.org/pub/scm/linux/kernel...
[platform/kernel/linux-rpi.git] / drivers / uio / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig 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
14 if UIO
15
16 config 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
28 config 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
41 config 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
58 config 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
75 config 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
88 config 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
97 config 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
108 config 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
117 config 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
128 config 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
146 config 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
159 config 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.
168
169 config UIO_DFL
170         tristate "Generic driver for DFL (Device Feature List) bus"
171         depends on FPGA_DFL
172         help
173           Generic DFL (Device Feature List) driver for Userspace I/O devices.
174           It is useful to provide direct access to DFL devices from userspace.
175           A sample userspace application using this driver is available for
176           download in a git repository:
177
178             git clone https://github.com/OPAE/opae-sdk.git
179
180           It could be found at:
181
182             opae-sdk/tools/libopaeuio/
183
184           If you compile this as a module, it will be called uio_dfl.
185 endif