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" 663endmenu 664