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