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