Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Misc strange devices
4#
5
6menu "Misc devices"
7
8config SENSORS_LIS3LV02D
9 tristate
10 depends on INPUT
11
12config AD525X_DPOT
13 tristate "Analog Devices Digital Potentiometers"
14 depends on (I2C || SPI) && SYSFS
15 help
16 If you say yes here, you get support for the Analog Devices
17 AD5258, AD5259, AD5251, AD5252, AD5253, AD5254, AD5255
18 AD5160, AD5161, AD5162, AD5165, AD5200, AD5201, AD5203,
19 AD5204, AD5206, AD5207, AD5231, AD5232, AD5233, AD5235,
20 AD5260, AD5262, AD5263, AD5290, AD5291, AD5292, AD5293,
21 AD7376, AD8400, AD8402, AD8403, ADN2850, AD5241, AD5242,
22 AD5243, AD5245, AD5246, AD5247, AD5248, AD5280, AD5282,
23 ADN2860, AD5273, AD5171, AD5170, AD5172, AD5173, AD5270,
24 AD5271, AD5272, AD5274
25 digital potentiometer chips.
26
27 See Documentation/misc-devices/ad525x_dpot.rst for the
28 userspace interface.
29
30 This driver can also be built as a module. If so, the module
31 will be called ad525x_dpot.
32
33config AD525X_DPOT_I2C
34 tristate "support I2C bus connection"
35 depends on AD525X_DPOT && I2C
36 help
37 Say Y here if you have a digital potentiometers hooked to an I2C bus.
38
39 To compile this driver as a module, choose M here: the
40 module will be called ad525x_dpot-i2c.
41
42config AD525X_DPOT_SPI
43 tristate "support SPI bus connection"
44 depends on AD525X_DPOT && SPI_MASTER
45 help
46 Say Y here if you have a digital potentiometers hooked to an SPI bus.
47
48 If unsure, say N (but it's safe to say "Y").
49
50 To compile this driver as a module, choose M here: the
51 module will be called ad525x_dpot-spi.
52
53config DUMMY_IRQ
54 tristate "Dummy IRQ handler"
55 help
56 This module accepts a single 'irq' parameter, which it should register for.
57 The sole purpose of this module is to help with debugging of systems on
58 which spurious IRQs would happen on disabled IRQ vector.
59
60config IBM_ASM
61 tristate "Device driver for IBM RSA service processor"
62 depends on X86 && PCI && INPUT
63 depends on SERIAL_8250 || SERIAL_8250=n
64 help
65 This option enables device driver support for in-band access to the
66 IBM RSA (Condor) service processor in eServer xSeries systems.
67 The ibmasm device driver allows user space application to access
68 ASM (Advanced Systems Management) functions on the service
69 processor. The driver is meant to be used in conjunction with
70 a user space API.
71 The ibmasm driver also enables the OS to use the UART on the
72 service processor board as a regular serial port. To make use of
73 this feature serial driver support (CONFIG_SERIAL_8250) must be
74 enabled.
75
76 WARNING: This software may not be supported or function
77 correctly on your IBM server. Please consult the IBM ServerProven
78 website <https://www-03.ibm.com/systems/info/x86servers/serverproven/compat/us/>
79 for information on the specific driver level and support statement
80 for your IBM server.
81
82config IBMVMC
83 tristate "IBM Virtual Management Channel support"
84 depends on PPC_PSERIES
85 help
86 This is the IBM POWER Virtual Management Channel
87
88 This driver is to be used for the POWER Virtual
89 Management Channel virtual adapter on the PowerVM
90 platform. It provides both request/response and
91 async message support through the /dev/ibmvmc node.
92
93 To compile this driver as a module, choose M here: the
94 module will be called ibmvmc.
95
96config PHANTOM
97 tristate "Sensable PHANToM (PCI)"
98 depends on PCI
99 help
100 Say Y here if you want to build a driver for Sensable PHANToM device.
101
102 This driver is only for PCI PHANToMs.
103
104 If you choose to build module, its name will be phantom. If unsure,
105 say N here.
106
107config RPMB
108 tristate "RPMB partition interface"
109 help
110 Unified RPMB unit interface for RPMB capable devices such as eMMC and
111 UFS. Provides interface for in-kernel security controllers to access
112 RPMB unit.
113
114 If unsure, select N.
115
116config TI_FPC202
117 tristate "TI FPC202 Dual Port Controller"
118 depends on I2C
119 select GPIOLIB
120 select I2C_ATR
121 help
122 If you say yes here you get support for the Texas Instruments FPC202
123 Dual Port Controller.
124
125 This driver can also be built as a module. If so, the module will be
126 called fpc202.
127
128config TIFM_CORE
129 tristate "TI Flash Media interface support"
130 depends on PCI
131 help
132 If you want support for Texas Instruments(R) Flash Media adapters
133 you should select this option and then also choose an appropriate
134 host adapter, such as 'TI Flash Media PCI74xx/PCI76xx host adapter
135 support', if you have a TI PCI74xx compatible card reader, for
136 example.
137 You will also have to select some flash card format drivers. MMC/SD
138 cards are supported via 'MMC/SD Card support: TI Flash Media MMC/SD
139 Interface support (MMC_TIFM_SD)'.
140
141 To compile this driver as a module, choose M here: the module will
142 be called tifm_core.
143
144config TIFM_7XX1
145 tristate "TI Flash Media PCI74xx/PCI76xx host adapter support"
146 depends on PCI && TIFM_CORE
147 default TIFM_CORE
148 help
149 This option enables support for Texas Instruments(R) PCI74xx and
150 PCI76xx families of Flash Media adapters, found in many laptops.
151 To make actual use of the device, you will have to select some
152 flash card format drivers, as outlined in the TIFM_CORE Help.
153
154 To compile this driver as a module, choose M here: the module will
155 be called tifm_7xx1.
156
157config ICS932S401
158 tristate "Integrated Circuits ICS932S401"
159 depends on I2C
160 help
161 If you say yes here you get support for the Integrated Circuits
162 ICS932S401 clock control chips.
163
164 This driver can also be built as a module. If so, the module
165 will be called ics932s401.
166
167config ATMEL_SSC
168 tristate "Device driver for Atmel SSC peripheral"
169 depends on HAS_IOMEM && (ARCH_AT91 || COMPILE_TEST)
170 help
171 This option enables device driver support for Atmel Synchronized
172 Serial Communication peripheral (SSC).
173
174 The SSC peripheral supports a wide variety of serial frame based
175 communications, i.e. I2S, SPI, etc.
176
177 If unsure, say N.
178
179config ENCLOSURE_SERVICES
180 tristate "Enclosure Services"
181 help
182 Provides support for intelligent enclosures (bays which
183 contain storage devices). You also need either a host
184 driver (SCSI/ATA) which supports enclosures
185 or a SCSI enclosure device (SES) to use these services.
186
187config SGI_XP
188 tristate "Support communication between SGI SSIs"
189 depends on NET
190 depends on X86_UV && SMP
191 depends on X86_64 || BROKEN
192 select SGI_GRU if X86_64 && SMP
193 help
194 An SGI machine can be divided into multiple Single System
195 Images which act independently of each other and have
196 hardware based memory protection from the others. Enabling
197 this feature will allow for direct communication between SSIs
198 based on a network adapter and DMA messaging.
199
200config SMPRO_ERRMON
201 tristate "Ampere Computing SMPro error monitor driver"
202 depends on MFD_SMPRO || COMPILE_TEST
203 help
204 Say Y here to get support for the SMpro error monitor function
205 provided by Ampere Computing's Altra and Altra Max SoCs. Upon
206 loading, the driver creates sysfs files which can be use to gather
207 multiple HW error data reported via read and write system calls.
208
209 To compile this driver as a module, say M here. The driver will be
210 called smpro-errmon.
211
212config SMPRO_MISC
213 tristate "Ampere Computing SMPro miscellaneous driver"
214 depends on MFD_SMPRO || COMPILE_TEST
215 help
216 Say Y here to get support for the SMpro error miscellalenous function
217 provided by Ampere Computing's Altra and Altra Max SoCs.
218
219 To compile this driver as a module, say M here. The driver will be
220 called smpro-misc.
221
222config CS5535_MFGPT
223 tristate "CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support"
224 depends on MFD_CS5535
225 help
226 This driver provides access to MFGPT functionality for other
227 drivers that need timers. MFGPTs are available in the CS5535 and
228 CS5536 companion chips that are found in AMD Geode and several
229 other platforms. They have a better resolution and max interval
230 than the generic PIT, and are suitable for use as high-res timers.
231 You probably don't want to enable this manually; other drivers that
232 make use of it should enable it.
233
234config CS5535_MFGPT_DEFAULT_IRQ
235 int
236 depends on CS5535_MFGPT
237 default 7
238 help
239 MFGPTs on the CS5535 require an interrupt. The selected IRQ
240 can be overridden as a module option as well as by driver that
241 use the cs5535_mfgpt_ API; however, different architectures might
242 want to use a different IRQ by default. This is here for
243 architectures to set as necessary.
244
245config CS5535_CLOCK_EVENT_SRC
246 tristate "CS5535/CS5536 high-res timer (MFGPT) events"
247 depends on GENERIC_CLOCKEVENTS && CS5535_MFGPT
248 help
249 This driver provides a clock event source based on the MFGPT
250 timer(s) in the CS5535 and CS5536 companion chips.
251 MFGPTs have a better resolution and max interval than the
252 generic PIT, and are suitable for use as high-res timers.
253
254config GEHC_ACHC
255 tristate "GEHC ACHC support"
256 depends on SPI && SYSFS
257 depends on SOC_IMX53 || COMPILE_TEST
258 select FW_LOADER
259 help
260 Support for GE ACHC microcontroller, that is part of the GE
261 PPD device.
262
263 To compile this driver as a module, choose M here: the
264 module will be called gehc-achc.
265
266config HI6421V600_IRQ
267 tristate "HiSilicon Hi6421v600 IRQ and powerkey"
268 depends on OF
269 depends on SPMI
270 depends on HAS_IOMEM
271 select MFD_CORE
272 select REGMAP_SPMI
273 help
274 This driver provides IRQ handling for Hi6421v600, used on
275 some Kirin chipsets, like the one at Hikey 970.
276
277config HP_ILO
278 tristate "Channel interface driver for the HP iLO processor"
279 depends on PCI
280 help
281 The channel interface driver allows applications to communicate
282 with iLO management processors present on HP ProLiant servers.
283 Upon loading, the driver creates /dev/hpilo/dXccbN files, which
284 can be used to gather data from the management processor, via
285 read and write system calls.
286
287 To compile this driver as a module, choose M here: the
288 module will be called hpilo.
289
290config QCOM_COINCELL
291 tristate "Qualcomm coincell charger support"
292 depends on MFD_SPMI_PMIC || COMPILE_TEST
293 help
294 This driver supports the coincell block found inside of
295 Qualcomm PMICs. The coincell charger provides a means to
296 charge a coincell battery or backup capacitor which is used
297 to maintain PMIC register and RTC state in the absence of
298 external power.
299
300config QCOM_FASTRPC
301 tristate "Qualcomm FastRPC"
302 depends on ARCH_QCOM || COMPILE_TEST
303 depends on RPMSG
304 select DMA_SHARED_BUFFER
305 select QCOM_SCM
306 help
307 Provides a communication mechanism that allows for clients to
308 make remote method invocations across processor boundary to
309 applications DSP processor. Say M if you want to enable this
310 module.
311
312config SGI_GRU
313 tristate "SGI GRU driver"
314 depends on X86_UV && SMP
315 select MMU_NOTIFIER
316 help
317 The GRU is a hardware resource located in the system chipset. The GRU
318 contains memory that can be mmapped into the user address space.
319 This memory is used to communicate with the GRU to perform functions
320 such as load/store, scatter/gather, bcopy, AMOs, etc. The GRU is
321 directly accessed by user instructions using user virtual addresses.
322 GRU instructions (ex., bcopy) use user virtual addresses for operands.
323
324 If you are not running on a SGI UV system, say N.
325
326config SGI_GRU_DEBUG
327 bool "SGI GRU driver debug"
328 depends on SGI_GRU
329 help
330 This option enables additional debugging code for the SGI GRU driver.
331 If you are unsure, say N.
332
333config APDS9802ALS
334 tristate "Medfield Avago APDS9802 ALS Sensor module"
335 depends on I2C
336 help
337 If you say yes here you get support for the ALS APDS9802 ambient
338 light sensor.
339
340 This driver can also be built as a module. If so, the module
341 will be called apds9802als.
342
343config ISL29003
344 tristate "Intersil ISL29003 ambient light sensor"
345 depends on I2C && SYSFS
346 help
347 If you say yes here you get support for the Intersil ISL29003
348 ambient light sensor.
349
350 This driver can also be built as a module. If so, the module
351 will be called isl29003.
352
353config ISL29020
354 tristate "Intersil ISL29020 ambient light sensor"
355 depends on I2C
356 help
357 If you say yes here you get support for the Intersil ISL29020
358 ambient light sensor.
359
360 This driver can also be built as a module. If so, the module
361 will be called isl29020.
362
363config SENSORS_TSL2550
364 tristate "Taos TSL2550 ambient light sensor"
365 depends on I2C && SYSFS
366 help
367 If you say yes here you get support for the Taos TSL2550
368 ambient light sensor.
369
370 This driver can also be built as a module. If so, the module
371 will be called tsl2550.
372
373config SENSORS_BH1770
374 tristate "BH1770GLC / SFH7770 combined ALS - Proximity sensor"
375 depends on I2C
376 help
377 Say Y here if you want to build a driver for BH1770GLC (ROHM) or
378 SFH7770 (Osram) combined ambient light and proximity sensor chip.
379
380 To compile this driver as a module, choose M here: the
381 module will be called bh1770glc. If unsure, say N here.
382
383config SENSORS_APDS990X
384 tristate "APDS990X combined als and proximity sensors"
385 depends on I2C
386 help
387 Say Y here if you want to build a driver for Avago APDS990x
388 combined ambient light and proximity sensor chip.
389
390 To compile this driver as a module, choose M here: the
391 module will be called apds990x. If unsure, say N here.
392
393config HMC6352
394 tristate "Honeywell HMC6352 compass"
395 depends on I2C
396 help
397 This driver provides support for the Honeywell HMC6352 compass,
398 providing configuration and heading data via sysfs.
399
400config DS1682
401 tristate "Dallas DS1682 Total Elapsed Time Recorder with Alarm"
402 depends on I2C
403 help
404 If you say yes here you get support for Dallas Semiconductor
405 DS1682 Total Elapsed Time Recorder.
406
407 This driver can also be built as a module. If so, the module
408 will be called ds1682.
409
410config VMWARE_BALLOON
411 tristate "VMware Balloon Driver"
412 depends on VMWARE_VMCI && X86 && HYPERVISOR_GUEST
413 select MEMORY_BALLOON
414 help
415 This is VMware physical memory management driver which acts
416 like a "balloon" that can be inflated to reclaim physical pages
417 by reserving them in the guest and invalidating them in the
418 monitor, freeing up the underlying machine pages so they can
419 be allocated to other guests. The balloon can also be deflated
420 to allow the guest to use more physical memory.
421
422 If unsure, say N.
423
424 To compile this driver as a module, choose M here: the
425 module will be called vmw_balloon.
426
427config PCH_PHUB
428 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
429 select GENERIC_NET_UTILS
430 depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
431 help
432 This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
433 Intel Topcliff which is an IOH(Input/Output Hub) for x86 embedded
434 processor. The Topcliff has MAC address and Option ROM data in SROM.
435 This driver can access MAC address and Option ROM data in SROM.
436
437 This driver also can be used for LAPIS Semiconductor's IOH,
438 ML7213/ML7223/ML7831.
439 ML7213 which is for IVI(In-Vehicle Infotainment) use.
440 ML7223 IOH is for MP(Media Phone) use.
441 ML7831 IOH is for general purpose use.
442 ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
443 ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
444
445 To compile this driver as a module, choose M here: the module will
446 be called pch_phub.
447
448config LATTICE_ECP3_CONFIG
449 tristate "Lattice ECP3 FPGA bitstream configuration via SPI"
450 depends on SPI && SYSFS
451 select FW_LOADER
452 help
453 This option enables support for bitstream configuration (programming
454 or loading) of the Lattice ECP3 FPGA family via SPI.
455
456 If unsure, say N.
457
458config SRAM
459 bool "Generic on-chip SRAM driver"
460 depends on HAS_IOMEM
461 select GENERIC_ALLOCATOR
462 select SRAM_EXEC if ARM
463 help
464 This driver allows you to declare a memory region to be managed by
465 the genalloc API. It is supposed to be used for small on-chip SRAM
466 areas found on many SoCs.
467
468config SRAM_EXEC
469 bool
470
471config DW_XDATA_PCIE
472 depends on PCI
473 tristate "Synopsys DesignWare xData PCIe driver"
474 help
475 This driver allows controlling Synopsys DesignWare PCIe traffic
476 generator IP also known as xData, present in Synopsys DesignWare
477 PCIe Endpoint prototype.
478
479 If unsure, say N.
480
481config PCI_ENDPOINT_TEST
482 depends on PCI
483 select CRC32
484 tristate "PCI Endpoint Test driver"
485 help
486 Enable this configuration option to enable the host side test driver
487 for PCI Endpoint.
488
489config XILINX_SDFEC
490 tristate "Xilinx SDFEC 16"
491 depends on HAS_IOMEM
492 help
493 This option enables support for the Xilinx SDFEC (Soft Decision
494 Forward Error Correction) driver. This enables a char driver
495 for the SDFEC.
496
497 You may select this driver if your design instantiates the
498 SDFEC(16nm) hardened block. To compile this as a module choose M.
499
500 If unsure, say N.
501
502config MISC_RTSX
503 tristate
504 default MISC_RTSX_PCI || MISC_RTSX_USB
505
506config HISI_HIKEY_USB
507 tristate "USB GPIO Hub on HiSilicon Hikey 960/970 Platform"
508 depends on (OF && GPIOLIB) || COMPILE_TEST
509 depends on USB_ROLE_SWITCH
510 help
511 If you say yes here this adds support for the on-board USB GPIO hub
512 found on HiKey 960/970 boards, which is necessary to support
513 switching between the dual-role USB-C port and the USB-A host ports
514 using only one USB controller.
515
516config OPEN_DICE
517 tristate "Open Profile for DICE driver"
518 depends on OF_RESERVED_MEM
519 depends on HAS_IOMEM
520 help
521 This driver exposes a DICE reserved memory region to userspace via
522 a character device. The memory region contains Compound Device
523 Identifiers (CDIs) generated by firmware as an output of DICE
524 measured boot flow. Userspace can use CDIs for remote attestation
525 and sealing.
526
527 If unsure, say N.
528
529config NTSYNC
530 tristate "NT synchronization primitive emulation"
531 help
532 This module provides kernel support for emulation of Windows NT
533 synchronization primitives. It is not a hardware driver.
534
535 To compile this driver as a module, choose M here: the
536 module will be called ntsync.
537
538 If unsure, say N.
539
540config VCPU_STALL_DETECTOR
541 tristate "Guest vCPU stall detector"
542 depends on OF && HAS_IOMEM
543 help
544 When this driver is bound inside a KVM guest, it will
545 periodically "pet" an MMIO stall detector device from each vCPU
546 and allow the host to detect vCPU stalls.
547
548 To compile this driver as a module, choose M here: the module
549 will be called vcpu_stall_detector.
550
551 If you do not intend to run this kernel as a guest, say N.
552
553config TMR_MANAGER
554 tristate "Select TMR Manager"
555 depends on MICROBLAZE && MB_MANAGER
556 help
557 This option enables the driver developed for TMR Manager.
558 The Triple Modular Redundancy(TMR) manager provides support for
559 fault detection.
560
561 Say N here unless you know what you are doing.
562
563config TMR_INJECT
564 tristate "Select TMR Inject"
565 depends on TMR_MANAGER && FAULT_INJECTION_DEBUG_FS
566 help
567 This option enables the driver developed for TMR Inject.
568 The Triple Modular Redundancy(TMR) Inject provides
569 fault injection.
570
571 Say N here unless you know what you are doing.
572
573config TPS6594_ESM
574 tristate "TI TPS6594 Error Signal Monitor support"
575 depends on MFD_TPS6594
576 default MFD_TPS6594
577 help
578 Support ESM (Error Signal Monitor) on TPS6594 PMIC devices.
579 ESM is used typically to reboot the board in error condition.
580
581 This driver can also be built as a module. If so, the module
582 will be called tps6594-esm.
583
584config TPS6594_PFSM
585 tristate "TI TPS6594 Pre-configurable Finite State Machine support"
586 depends on MFD_TPS6594
587 default MFD_TPS6594
588 help
589 Support PFSM (Pre-configurable Finite State Machine) on TPS6594 PMIC devices.
590 These devices integrate a finite state machine engine, which manages the state
591 of the device during operating state transition.
592
593 This driver can also be built as a module. If so, the module
594 will be called tps6594-pfsm.
595
596config NSM
597 tristate "Nitro (Enclaves) Security Module support"
598 depends on VIRTIO
599 select HW_RANDOM
600 help
601 This driver provides support for the Nitro Security Module
602 in AWS EC2 Nitro based Enclaves. The driver exposes a /dev/nsm
603 device user space can use to communicate with the hypervisor.
604
605 To compile this driver as a module, choose M here.
606 The module will be called nsm.
607
608config MARVELL_CN10K_DPI
609 tristate "Octeon CN10K DPI driver"
610 depends on PCI && PCI_IOV
611 depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
612 help
613 Enables Octeon CN10K DMA packet interface (DPI) driver which
614 intializes DPI hardware's physical function (PF) device's
615 global configuration and its virtual function (VFs) resource
616 configuration to enable DMA transfers. DPI PF device does not
617 have any data movement functionality, it only serves VF's
618 resource configuration requests.
619
620 To compile this driver as a module, choose M here: the module
621 will be called mrvl_cn10k_dpi.
622
623config MCHP_LAN966X_PCI
624 tristate "Microchip LAN966x PCIe Support"
625 depends on PCI
626 depends on OF_OVERLAY
627 select IRQ_DOMAIN
628 help
629 This enables the support for the LAN966x PCIe device.
630
631 This is used to drive the LAN966x PCIe device from the host system
632 to which it is connected. The driver uses a device tree overlay to
633 load other drivers to support for LAN966x internal components.
634
635 Even if this driver does not depend on those other drivers, in order
636 to have a fully functional board, the following drivers are needed:
637 - fixed-clock (COMMON_CLK)
638 - lan966x-oic (LAN966X_OIC)
639 - lan966x-cpu-syscon (MFD_SYSCON)
640 - lan966x-switch-reset (RESET_MCHP_SPARX5)
641 - lan966x-pinctrl (PINCTRL_OCELOT)
642 - lan966x-serdes (PHY_LAN966X_SERDES)
643 - lan966x-miim (MDIO_MSCC_MIIM)
644 - lan966x-switch (LAN966X_SWITCH)
645
646source "drivers/misc/c2port/Kconfig"
647source "drivers/misc/eeprom/Kconfig"
648source "drivers/misc/cb710/Kconfig"
649source "drivers/misc/lis3lv02d/Kconfig"
650source "drivers/misc/altera-stapl/Kconfig"
651source "drivers/misc/mei/Kconfig"
652source "drivers/misc/vmw_vmci/Kconfig"
653source "drivers/misc/genwqe/Kconfig"
654source "drivers/misc/ocxl/Kconfig"
655source "drivers/misc/bcm-vk/Kconfig"
656source "drivers/misc/cardreader/Kconfig"
657source "drivers/misc/uacce/Kconfig"
658source "drivers/misc/pvpanic/Kconfig"
659source "drivers/misc/mchp_pci1xxxx/Kconfig"
660source "drivers/misc/keba/Kconfig"
661source "drivers/misc/amd-sbi/Kconfig"
662source "drivers/misc/rp1/Kconfig"
663endmenu