Linux 6.9-rc5
[sfrench/cifs-2.6.git] / drivers / mfd / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Multifunction miscellaneous devices
4 #
5
6 if HAS_IOMEM
7 menu "Multifunction device drivers"
8
9 config MFD_CORE
10         tristate
11         select IRQ_DOMAIN
12         default n
13
14 config MFD_CS5535
15         tristate "AMD CS5535 and CS5536 southbridge core functions"
16         select MFD_CORE
17         depends on PCI && (X86_32 || (X86 && COMPILE_TEST))
18         depends on !UML
19         help
20           This is the core driver for CS5535/CS5536 MFD functions.  This is
21           necessary for using the board's GPIO and MFGPT functionality.
22
23 config MFD_ALTERA_A10SR
24         bool "Altera Arria10 DevKit System Resource chip"
25         depends on ARCH_INTEL_SOCFPGA && SPI_MASTER=y && OF
26         select REGMAP_SPI
27         select MFD_CORE
28         help
29           Support for the Altera Arria10 DevKit MAX5 System Resource chip
30           using the SPI interface. This driver provides common support for
31           accessing the external gpio extender (LEDs & buttons) and
32           power supply alarms (hwmon).
33
34 config MFD_ALTERA_SYSMGR
35         bool "Altera SOCFPGA System Manager"
36         depends on ARCH_INTEL_SOCFPGA && OF
37         select MFD_SYSCON
38         help
39           Select this to get System Manager support for all Altera branded
40           SOCFPGAs. The SOCFPGA System Manager handles all SOCFPGAs by
41           using regmap_mmio accesses for ARM32 parts and SMC calls to
42           EL3 for ARM64 parts.
43
44 config MFD_ACT8945A
45         tristate "Active-semi ACT8945A"
46         select MFD_CORE
47         select REGMAP_I2C
48         depends on I2C && OF
49         help
50           Support for the ACT8945A PMIC from Active-semi. This device
51           features three step-down DC/DC converters and four low-dropout
52           linear regulators, along with a complete ActivePath battery
53           charger.
54
55 config MFD_SUN4I_GPADC
56         tristate "Allwinner sunxi platforms' GPADC MFD driver"
57         select MFD_CORE
58         select REGMAP_MMIO
59         select REGMAP_IRQ
60         depends on ARCH_SUNXI || COMPILE_TEST
61         depends on !TOUCHSCREEN_SUN4I
62         help
63           Select this to get support for Allwinner SoCs (A10, A13 and A31) ADC.
64           This driver will only map the hardware interrupt and registers, you
65           have to select individual drivers based on this MFD to be able to use
66           the ADC or the thermal sensor. This will try to probe the ADC driver
67           sun4i-gpadc-iio and the hwmon driver iio_hwmon.
68
69           To compile this driver as a module, choose M here: the module will be
70           called sun4i-gpadc.
71
72 config MFD_AS3711
73         bool "AMS AS3711"
74         select MFD_CORE
75         select REGMAP_I2C
76         select REGMAP_IRQ
77         depends on I2C=y
78         help
79           Support for the AS3711 PMIC from AMS
80
81 config MFD_SMPRO
82         tristate "Ampere Computing SMpro core driver"
83         depends on I2C
84         select MFD_CORE
85         select REGMAP_I2C
86         help
87           Say yes here to enable SMpro driver support for Ampere's Altra
88           processor family.
89
90           Ampere's Altra SMpro exposes an I2C regmap interface that can
91           be accessed by child devices.
92
93 config MFD_AS3722
94         tristate "ams AS3722 Power Management IC"
95         select MFD_CORE
96         select REGMAP_I2C
97         select REGMAP_IRQ
98         depends on I2C=y && OF
99         help
100           The ams AS3722 is a compact system PMU suitable for mobile phones,
101           tablets etc. It has 4 DC/DC step-down regulators, 3 DC/DC step-down
102           controllers, 11 LDOs, RTC, automatic battery, temperature and
103           over current monitoring, GPIOs, ADC and a watchdog.
104
105 config PMIC_ADP5520
106         bool "Analog Devices ADP5520/01 MFD PMIC Core Support"
107         depends on I2C=y
108         help
109           Say yes here to add support for Analog Devices ADP5520 and ADP5501,
110           Multifunction Power Management IC. This includes
111           the I2C driver and the core APIs _only_, you have to select
112           individual components like LCD backlight, LEDs, GPIOs and Kepad
113           under the corresponding menus.
114
115 config MFD_AAT2870_CORE
116         bool "AnalogicTech AAT2870"
117         select MFD_CORE
118         depends on I2C=y
119         depends on GPIOLIB || COMPILE_TEST
120         help
121           If you say yes here you get support for the AAT2870.
122           This driver provides common support for accessing the device,
123           additional drivers must be enabled in order to use the
124           functionality of the device.
125
126 config MFD_AT91_USART
127         tristate "AT91 USART Driver"
128         select MFD_CORE
129         depends on ARCH_AT91 || COMPILE_TEST
130         help
131           Select this to get support for AT91 USART IP. This is a wrapper
132           over at91-usart-serial driver and usart-spi-driver. Only one function
133           can be used at a time. The choice is done at boot time by the probe
134           function of this MFD driver according to a device tree property.
135
136 config MFD_ATMEL_FLEXCOM
137         tristate "Atmel Flexcom (Flexible Serial Communication Unit)"
138         select MFD_CORE
139         depends on OF
140         help
141           Select this to get support for Atmel Flexcom. This is a wrapper
142           which embeds a SPI controller, a I2C controller and a USART. Only
143           one function can be used at a time. The choice is done at boot time
144           by the probe function of this MFD driver according to a device tree
145           property.
146
147 config MFD_ATMEL_HLCDC
148         tristate "Atmel HLCDC (High-end LCD Controller)"
149         select MFD_CORE
150         select REGMAP_MMIO
151         depends on OF
152         help
153           If you say yes here you get support for the HLCDC block.
154           This driver provides common support for accessing the device,
155           additional drivers must be enabled in order to use the
156           functionality of the device.
157
158 config MFD_ATMEL_SMC
159         bool
160         select MFD_SYSCON
161
162 config MFD_BCM590XX
163         tristate "Broadcom BCM590xx PMUs"
164         select MFD_CORE
165         select REGMAP_I2C
166         depends on I2C
167         help
168           Support for the BCM590xx PMUs from Broadcom
169
170 config MFD_BD9571MWV
171         tristate "ROHM BD9571MWV PMIC"
172         select MFD_CORE
173         select REGMAP_I2C
174         select REGMAP_IRQ
175         depends on I2C
176         help
177           Support for the ROHM BD9571MWV PMIC, which contains single
178           voltage regulator, voltage sampling units, GPIO block and
179           watchdog block.
180
181           This driver can also be built as a module. If so, the module
182           will be called bd9571mwv.
183
184 config MFD_AC100
185         tristate "X-Powers AC100"
186         select MFD_CORE
187         depends on SUNXI_RSB
188         help
189           If you say Y here you get support for the X-Powers AC100 audio codec
190           IC.
191           This driver include only the core APIs. You have to select individual
192           components like codecs or RTC under the corresponding menus.
193
194 config MFD_AXP20X
195         tristate
196         select MFD_CORE
197         select REGMAP_IRQ
198
199 config MFD_AXP20X_I2C
200         tristate "X-Powers AXP series PMICs with I2C"
201         select MFD_AXP20X
202         select REGMAP_I2C
203         depends on I2C
204         help
205           If you say Y here you get support for the X-Powers AXP series power
206           management ICs (PMICs) controlled with I2C.
207           This driver include only the core APIs. You have to select individual
208           components like regulators or the PEK (Power Enable Key) under the
209           corresponding menus.
210
211           Note on x86 this provides an ACPI OpRegion, so this must be 'y'
212           (builtin) and not a module, as the OpRegion must be available as
213           soon as possible. For the same reason the I2C bus driver options
214           I2C_DESIGNWARE_PLATFORM and I2C_DESIGNWARE_BAYTRAIL must be 'y' too.
215
216 config MFD_AXP20X_RSB
217         tristate "X-Powers AXP series PMICs with RSB"
218         select MFD_AXP20X
219         depends on SUNXI_RSB
220         help
221           If you say Y here you get support for the X-Powers AXP series power
222           management ICs (PMICs) controlled with RSB.
223           This driver include only the core APIs. You have to select individual
224           components like regulators or the PEK (Power Enable Key) under the
225           corresponding menus.
226
227 config MFD_CROS_EC_DEV
228         tristate "ChromeOS Embedded Controller multifunction device"
229         select MFD_CORE
230         depends on CROS_EC
231         default CROS_EC
232         help
233           Select this to get support for ChromeOS Embedded Controller
234           sub-devices. This driver will instantiate additional drivers such
235           as RTC, USBPD, etc. but you have to select the individual drivers.
236
237           To compile this driver as a module, choose M here: the module will be
238           called cros-ec-dev.
239
240 config MFD_CS42L43
241         tristate
242         select MFD_CORE
243         select REGMAP
244         select REGMAP_IRQ
245
246 config MFD_CS42L43_I2C
247         tristate "Cirrus Logic CS42L43 (I2C)"
248         depends on I2C
249         select REGMAP_I2C
250         select MFD_CS42L43
251         help
252           Select this to support the Cirrus Logic CS42L43 PC CODEC with
253           headphone and class D speaker drivers over I2C.
254
255 config MFD_CS42L43_SDW
256         tristate "Cirrus Logic CS42L43 (SoundWire)"
257         depends on SOUNDWIRE
258         select REGMAP_SOUNDWIRE
259         select MFD_CS42L43
260         help
261           Select this to support the Cirrus Logic CS42L43 PC CODEC with
262           headphone and class D speaker drivers over SoundWire.
263
264 config MFD_MADERA
265         tristate "Cirrus Logic Madera codecs"
266         select MFD_CORE
267         select REGMAP
268         select REGMAP_IRQ
269         select MADERA_IRQ
270         select PINCTRL
271         select PINCTRL_MADERA
272         help
273           Support for the Cirrus Logic Madera platform audio codecs
274
275 config MFD_MADERA_I2C
276         tristate "Cirrus Logic Madera codecs with I2C"
277         depends on MFD_MADERA
278         depends on I2C
279         select REGMAP_I2C
280         help
281           Support for the Cirrus Logic Madera platform audio SoC
282           core functionality controlled via I2C.
283
284 config MFD_MADERA_SPI
285         tristate "Cirrus Logic Madera codecs with SPI"
286         depends on MFD_MADERA
287         depends on SPI_MASTER
288         select REGMAP_SPI
289         help
290           Support for the Cirrus Logic Madera platform audio SoC
291           core functionality controlled via SPI.
292
293 config MFD_MAX5970
294         tristate "Maxim 5970/5978 power switch and monitor"
295         depends on (I2C && OF)
296         select MFD_SIMPLE_MFD_I2C
297         help
298           This driver controls a Maxim 5970/5978 switch via I2C bus.
299           The MAX5970/5978 is a smart switch with no output regulation, but
300           fault protection and voltage and current monitoring capabilities.
301           Also it supports upto 4 indication leds.
302
303 config MFD_CS47L15
304         bool "Cirrus Logic CS47L15"
305         select PINCTRL_CS47L15
306         depends on MFD_MADERA
307         help
308           Support for Cirrus Logic CS47L15 Smart Codec
309
310 config MFD_CS47L35
311         bool "Cirrus Logic CS47L35"
312         select PINCTRL_CS47L35
313         depends on MFD_MADERA
314         help
315           Support for Cirrus Logic CS47L35 Smart Codec
316
317 config MFD_CS47L85
318         bool "Cirrus Logic CS47L85"
319         select PINCTRL_CS47L85
320         depends on MFD_MADERA
321         help
322           Support for Cirrus Logic CS47L85 Smart Codec
323
324 config MFD_CS47L90
325         bool "Cirrus Logic CS47L90/91"
326         select PINCTRL_CS47L90
327         depends on MFD_MADERA
328         help
329           Support for Cirrus Logic CS47L90 and CS47L91 Smart Codecs
330
331 config MFD_CS47L92
332         bool "Cirrus Logic CS47L92/93"
333         select PINCTRL_CS47L92
334         depends on MFD_MADERA
335         help
336           Support for Cirrus Logic CS42L92, CS47L92 and CS47L93 Smart Codecs
337
338 config PMIC_DA903X
339         bool "Dialog Semiconductor DA9030/DA9034 PMIC Support"
340         depends on I2C=y
341         help
342           Say yes here to add support for Dialog Semiconductor DA9030 (a.k.a
343           ARAVA) and DA9034 (a.k.a MICCO), these are Power Management IC
344           usually found on PXA processors-based platforms. This includes
345           the I2C driver and the core APIs _only_, you have to select
346           individual components like LCD backlight, voltage regulators,
347           LEDs and battery-charger under the corresponding menus.
348
349 config PMIC_DA9052
350         bool
351         select MFD_CORE
352
353 config MFD_DA9052_SPI
354         bool "Dialog Semiconductor DA9052/53 PMIC variants with SPI"
355         select REGMAP_SPI
356         select REGMAP_IRQ
357         select PMIC_DA9052
358         depends on SPI_MASTER=y
359         help
360           Support for the Dialog Semiconductor DA9052 PMIC
361           when controlled using SPI. This driver provides common support
362           for accessing the device, additional drivers must be enabled in
363           order to use the functionality of the device.
364
365 config MFD_DA9052_I2C
366         bool "Dialog Semiconductor DA9052/53 PMIC variants with I2C"
367         select REGMAP_I2C
368         select REGMAP_IRQ
369         select PMIC_DA9052
370         depends on I2C=y
371         help
372           Support for the Dialog Semiconductor DA9052 PMIC
373           when controlled using I2C. This driver provides common support
374           for accessing the device, additional drivers must be enabled in
375           order to use the functionality of the device.
376
377 config MFD_DA9055
378         bool "Dialog Semiconductor DA9055 PMIC Support"
379         select REGMAP_I2C
380         select REGMAP_IRQ
381         select MFD_CORE
382         depends on I2C=y
383         help
384           Say yes here for support of Dialog Semiconductor DA9055. This is
385           a Power Management IC. This driver provides common support for
386           accessing the device as well as the I2C interface to the chip itself.
387           Additional drivers must be enabled in order to use the functionality
388           of the device.
389
390 config MFD_DA9062
391         tristate "Dialog Semiconductor DA9062/61 PMIC Support"
392         select MFD_CORE
393         select REGMAP_I2C
394         select REGMAP_IRQ
395         depends on I2C
396         help
397           Say yes here for support for the Dialog Semiconductor DA9061 and
398           DA9062 PMICs.
399           This includes the I2C driver and core APIs.
400           Additional drivers must be enabled in order to use the functionality
401           of the device.
402
403 config MFD_DA9063
404         tristate "Dialog Semiconductor DA9063 PMIC Support"
405         select MFD_CORE
406         select REGMAP_I2C
407         select REGMAP_IRQ
408         depends on I2C
409         help
410           Say yes here for support for the Dialog Semiconductor DA9063 PMIC.
411           This includes the I2C driver and core APIs.
412           Additional drivers must be enabled in order to use the functionality
413           of the device.
414
415 config MFD_DA9150
416         tristate "Dialog Semiconductor DA9150 Charger Fuel-Gauge chip"
417         depends on I2C
418         select MFD_CORE
419         select REGMAP_I2C
420         select REGMAP_IRQ
421         help
422           This adds support for the DA9150 integrated charger and fuel-gauge
423           chip. This driver provides common support for accessing the device.
424           Additional drivers must be enabled in order to use the specific
425           features of the device.
426
427 config MFD_DLN2
428         tristate "Diolan DLN2 support"
429         select MFD_CORE
430         depends on USB
431         help
432           This adds support for Diolan USB-I2C/SPI/GPIO Master Adapter
433           DLN-2. Additional drivers such as I2C_DLN2, GPIO_DLN2,
434           etc. must be enabled in order to use the functionality of
435           the device.
436
437 config MFD_ENE_KB3930
438         tristate "ENE KB3930 Embedded Controller support"
439         depends on I2C
440         depends on MACH_MMP3_DT || COMPILE_TEST
441         select MFD_CORE
442         help
443           This adds support for the power-off functionality and access to
444           the registers that control LEDS and USB port power on ENE KB3930
445           Embedded Controller. To use the LED functionality LEDS_ARIEL must
446           be enabled.
447
448 config MFD_EXYNOS_LPASS
449         tristate "Samsung Exynos SoC Low Power Audio Subsystem"
450         depends on ARCH_EXYNOS || COMPILE_TEST
451         select MFD_CORE
452         select REGMAP_MMIO
453         help
454           Select this option to enable support for Samsung Exynos Low Power
455           Audio Subsystem present on some of Samsung Exynos
456           SoCs (e.g. Exynos5433).
457           Choose Y here only if you build for such Samsung SoC.
458
459 config MFD_GATEWORKS_GSC
460         tristate "Gateworks System Controller"
461         depends on (I2C && OF)
462         select MFD_CORE
463         select REGMAP_I2C
464         select REGMAP_IRQ
465         help
466           Enable support for the Gateworks System Controller (GSC) found
467           on Gateworks Single Board Computers supporting system functions
468           such as push-button monitor, multiple ADC's for voltage and
469           temperature monitoring, fan controller and watchdog monitor.
470           This driver provides common support for accessing the device.
471           Additional drivers must be enabled in order to use the
472           functionality of the device.
473
474 config MFD_MC13XXX
475         tristate
476         depends on (SPI_MASTER || I2C)
477         select MFD_CORE
478         select REGMAP_IRQ
479         help
480           Enable support for the Freescale MC13783 and MC13892 PMICs.
481           This driver provides common support for accessing the device,
482           additional drivers must be enabled in order to use the
483           functionality of the device.
484
485 config MFD_MC13XXX_SPI
486         tristate "Freescale MC13783 and MC13892 SPI interface"
487         depends on SPI_MASTER
488         select REGMAP_SPI
489         select MFD_MC13XXX
490         help
491           Select this if your MC13xxx is connected via an SPI bus.
492
493 config MFD_MC13XXX_I2C
494         tristate "Freescale MC13892 I2C interface"
495         depends on I2C
496         select REGMAP_I2C
497         select MFD_MC13XXX
498         help
499           Select this if your MC13xxx is connected via an I2C bus.
500
501 config MFD_MP2629
502         tristate "Monolithic Power Systems MP2629 ADC and Battery charger"
503         depends on I2C
504         select REGMAP_I2C
505         select MFD_CORE
506         help
507           Select this option to enable support for Monolithic Power Systems
508           battery charger. This provides ADC, thermal and battery charger power
509           management functions.
510
511 config MFD_MXS_LRADC
512         tristate "Freescale i.MX23/i.MX28 LRADC"
513         depends on ARCH_MXS || COMPILE_TEST
514         select MFD_CORE
515         select STMP_DEVICE
516         help
517           Say yes here to build support for the Low Resolution
518           Analog-to-Digital Converter (LRADC) found on the i.MX23 and i.MX28
519           processors. This driver provides common support for accessing the
520           device, additional drivers must be enabled in order to use the
521           functionality of the device:
522                 mxs-lradc-adc for ADC readings
523                 mxs-lradc-ts  for touchscreen support
524
525           This driver can also be built as a module. If so, the module will be
526           called mxs-lradc.
527
528 config MFD_MX25_TSADC
529         tristate "Freescale i.MX25 integrated Touchscreen and ADC unit"
530         select REGMAP_MMIO
531         depends on (SOC_IMX25 && OF) || COMPILE_TEST
532         help
533           Enable support for the integrated Touchscreen and ADC unit of the
534           i.MX25 processors. They consist of a conversion queue for general
535           purpose ADC and a queue for Touchscreens.
536
537 config MFD_HI6421_PMIC
538         tristate "HiSilicon Hi6421 PMU/Codec IC"
539         depends on OF
540         select MFD_CORE
541         select REGMAP_MMIO
542         help
543           Add support for HiSilicon Hi6421 PMIC. Hi6421 includes multi-
544           functions, such as regulators, RTC, codec, Coulomb counter, etc.
545           This driver includes core APIs _only_. You have to select
546           individual components like voltage regulators under corresponding
547           menus in order to enable them.
548           We communicate with the Hi6421 via memory-mapped I/O.
549
550 config MFD_HI6421_SPMI
551         tristate "HiSilicon Hi6421v600 SPMI PMU/Codec IC"
552         depends on OF
553         depends on SPMI
554         select MFD_CORE
555         select REGMAP_SPMI
556         help
557           Add support for HiSilicon Hi6421v600 SPMI PMIC. Hi6421 includes
558           multi-functions, such as regulators, RTC, codec, Coulomb counter,
559           etc.
560
561           This driver includes core APIs _only_. You have to select
562           individual components like voltage regulators under corresponding
563           menus in order to enable them.
564           We communicate with the Hi6421v600 via a SPMI bus.
565
566 config MFD_HI655X_PMIC
567         tristate "HiSilicon Hi655X series PMU/Codec IC"
568         depends on ARCH_HISI || COMPILE_TEST
569         depends on OF
570         select MFD_CORE
571         select REGMAP_MMIO
572         select REGMAP_IRQ
573         help
574           Select this option to enable Hisilicon hi655x series pmic driver.
575
576 config MFD_INTEL_QUARK_I2C_GPIO
577         tristate "Intel Quark MFD I2C GPIO"
578         depends on PCI
579         depends on X86
580         depends on COMMON_CLK
581         select MFD_CORE
582         help
583           This MFD provides support for I2C and GPIO that exist only
584           in a single PCI device. It splits the 2 IO devices to
585           their respective IO driver.
586           The GPIO exports a total amount of 8 interrupt-capable GPIOs.
587
588 config LPC_ICH
589         tristate "Intel ICH LPC"
590         depends on PCI
591         select MFD_CORE
592         select P2SB if X86
593         help
594           The LPC bridge function of the Intel ICH provides support for
595           many functional units. This driver provides needed support for
596           other drivers to control these functions, currently GPIO and
597           watchdog.
598
599 config LPC_SCH
600         tristate "Intel SCH LPC"
601         depends on PCI
602         select MFD_CORE
603         help
604           LPC bridge function of the Intel SCH provides support for
605           System Management Bus and General Purpose I/O.
606
607 config INTEL_SOC_PMIC
608         bool "Support for Crystal Cove PMIC"
609         depends on HAS_IOMEM && I2C=y && GPIOLIB && COMMON_CLK
610         depends on (X86 && ACPI) || COMPILE_TEST
611         depends on I2C_DESIGNWARE_PLATFORM=y || COMPILE_TEST
612         select MFD_CORE
613         select REGMAP_I2C
614         select REGMAP_IRQ
615         help
616           Select this option to enable support for Crystal Cove PMIC
617           on some Intel SoC systems. The PMIC provides ADC, GPIO,
618           thermal, charger and related power management functions
619           on these systems.
620
621           This option is a bool as it provides an ACPI OpRegion which must be
622           available before any devices using it are probed. This option also
623           causes the designware-i2c driver to be builtin for the same reason.
624
625 config INTEL_SOC_PMIC_BXTWC
626         tristate "Support for Intel Broxton Whiskey Cove PMIC"
627         depends on MFD_INTEL_PMC_BXT
628         select MFD_CORE
629         select REGMAP_IRQ
630         help
631           Select this option to enable support for Whiskey Cove PMIC
632           on Intel Broxton systems. The PMIC provides ADC, GPIO,
633           thermal, charger and related power management functions
634           on these systems.
635
636 config INTEL_SOC_PMIC_CHTWC
637         bool "Support for Intel Cherry Trail Whiskey Cove PMIC"
638         depends on ACPI && HAS_IOMEM && I2C=y && COMMON_CLK
639         depends on X86 || COMPILE_TEST
640         depends on I2C_DESIGNWARE_PLATFORM=y
641         select MFD_CORE
642         select REGMAP_I2C
643         select REGMAP_IRQ
644         help
645           Select this option to enable support for the Intel Cherry Trail
646           Whiskey Cove PMIC found on some Intel Cherry Trail systems.
647
648           This option is a bool as it provides an ACPI OpRegion which must be
649           available before any devices using it are probed. This option also
650           causes the designware-i2c driver to be builtin for the same reason.
651
652 config INTEL_SOC_PMIC_CHTDC_TI
653         tristate "Support for Intel Cherry Trail Dollar Cove TI PMIC"
654         depends on GPIOLIB
655         depends on I2C=y && I2C_DESIGNWARE_PLATFORM=y
656         depends on ACPI
657         depends on X86
658         select MFD_CORE
659         select REGMAP_I2C
660         select REGMAP_IRQ
661         help
662           Select this option for supporting Dollar Cove (TI version) PMIC
663           device that is found on some Intel Cherry Trail systems.
664
665           This option is a bool as it provides an ACPI OpRegion which must be
666           available before any devices using it are probed. This option also
667           needs the designware-i2c driver to be builtin for the same reason.
668
669 config INTEL_SOC_PMIC_MRFLD
670         tristate "Support for Intel Merrifield Basin Cove PMIC"
671         depends on GPIOLIB
672         depends on ACPI
673         depends on INTEL_SCU
674         select MFD_CORE
675         select REGMAP_IRQ
676         help
677           Select this option for supporting Basin Cove PMIC device
678           that is found on Intel Merrifield systems.
679
680 config MFD_INTEL_LPSS
681         tristate
682         select COMMON_CLK
683         select MFD_CORE
684
685 config MFD_INTEL_LPSS_ACPI
686         tristate "Intel Low Power Subsystem support in ACPI mode"
687         select MFD_INTEL_LPSS
688         depends on X86 && ACPI
689         help
690           This driver supports Intel Low Power Subsystem (LPSS) devices such as
691           I2C, SPI and HS-UART starting from Intel Sunrisepoint (Intel Skylake
692           PCH) in ACPI mode.
693
694 config MFD_INTEL_LPSS_PCI
695         tristate "Intel Low Power Subsystem support in PCI mode"
696         select MFD_INTEL_LPSS
697         depends on X86 && PCI
698         help
699           This driver supports Intel Low Power Subsystem (LPSS) devices such as
700           I2C, SPI and HS-UART starting from Intel Sunrisepoint (Intel Skylake
701           PCH) in PCI mode.
702
703 config MFD_INTEL_PMC_BXT
704         tristate "Intel PMC Driver for Broxton"
705         depends on X86
706         depends on X86_PLATFORM_DEVICES
707         depends on ACPI
708         select INTEL_SCU_IPC
709         select MFD_CORE
710         help
711           This driver provides support for the PMC (Power Management
712           Controller) on Intel Broxton and Apollo Lake. The PMC is a
713           multi-function device that exposes IPC, General Control
714           Register and P-unit access. In addition this creates devices
715           for iTCO watchdog and telemetry that are part of the PMC.
716
717 config MFD_IPAQ_MICRO
718         bool "Atmel Micro ASIC (iPAQ h3100/h3600/h3700) Support"
719         depends on SA1100_H3600
720         select MFD_CORE
721         help
722           Select this to get support for the Microcontroller found in
723           the Compaq iPAQ handheld computers. This is an Atmel
724           AT90LS8535 microcontroller flashed with a special iPAQ
725           firmware using the custom protocol implemented in this driver.
726
727 config MFD_IQS62X
728         tristate "Azoteq IQS620A/621/622/624/625 core support"
729         depends on I2C
730         select MFD_CORE
731         select REGMAP_I2C
732         help
733           Say Y here if you want to build core support for the Azoteq IQS620A,
734           IQS621, IQS622, IQS624 and IQS625 multi-function sensors. Additional
735           options must be selected to enable device-specific functions.
736
737           To compile this driver as a module, choose M here: the module will
738           be called iqs62x.
739
740 config MFD_JANZ_CMODIO
741         tristate "Janz CMOD-IO PCI MODULbus Carrier Board"
742         select MFD_CORE
743         depends on PCI
744         help
745           This is the core driver for the Janz CMOD-IO PCI MODULbus
746           carrier board. This device is a PCI to MODULbus bridge which may
747           host many different types of MODULbus daughterboards, including
748           CAN and GPIO controllers.
749
750 config MFD_KEMPLD
751         tristate "Kontron module PLD device"
752         select MFD_CORE
753         help
754           This is the core driver for the PLD (Programmable Logic Device) found
755           on some Kontron ETX and nearly all COMexpress (ETXexpress) modules as
756           well as on some other Kontron products. The PLD device may provide
757           functions like watchdog, GPIO, UART and I2C bus.
758
759           This driver can also be built as a module. If so, the module
760           will be called kempld-core.
761
762 config MFD_88PM800
763         tristate "Marvell 88PM800"
764         depends on I2C
765         select REGMAP_I2C
766         select REGMAP_IRQ
767         select MFD_CORE
768         help
769           This supports for Marvell 88PM800 Power Management IC.
770           This includes the I2C driver and the core APIs _only_, you have to
771           select individual components like voltage regulators, RTC and
772           battery-charger under the corresponding menus.
773
774 config MFD_88PM805
775         tristate "Marvell 88PM805"
776         depends on I2C
777         select REGMAP_I2C
778         select REGMAP_IRQ
779         select MFD_CORE
780         help
781           This supports for Marvell 88PM805 Power Management IC. This includes
782           the I2C driver and the core APIs _only_, you have to select individual
783           components like codec device, headset/Mic device under the
784           corresponding menus.
785
786 config MFD_88PM860X
787         bool "Marvell 88PM8606/88PM8607"
788         depends on I2C=y
789         select REGMAP_I2C
790         select MFD_CORE
791         help
792           This supports for Marvell 88PM8606/88PM8607 Power Management IC.
793           This includes the I2C driver and the core APIs _only_, you have to
794           select individual components like voltage regulators, RTC and
795           battery-charger under the corresponding menus.
796
797 config MFD_MAX14577
798         tristate "Maxim Semiconductor MAX14577/77836 MUIC + Charger Support"
799         depends on I2C
800         select MFD_CORE
801         select REGMAP_I2C
802         select REGMAP_IRQ
803         select IRQ_DOMAIN
804         help
805           Say yes here to add support for Maxim Semiconductor MAX14577 and
806           MAX77836 Micro-USB ICs with battery charger.
807           This driver provides common support for accessing the device;
808           additional drivers must be enabled in order to use the functionality
809           of the device.
810
811 config MFD_MAX77541
812         tristate "Analog Devices MAX77541/77540 PMIC Support"
813         depends on I2C=y
814         select MFD_CORE
815         select REGMAP_I2C
816         select REGMAP_IRQ
817         help
818           Say yes here to add support for Analog Devices MAX77541 and
819           MAX77540 Power Management ICs. This driver provides
820           common support for accessing the device; additional drivers
821           must be enabled in order to use the functionality of the device.
822           There are regulators and adc.
823
824 config MFD_MAX77620
825         bool "Maxim Semiconductor MAX77620 and MAX20024 PMIC Support"
826         depends on I2C=y
827         depends on OF
828         select MFD_CORE
829         select REGMAP_I2C
830         select REGMAP_IRQ
831         select IRQ_DOMAIN
832         help
833           Say yes here to add support for Maxim Semiconductor MAX77620 and
834           MAX20024 which are Power Management IC with General purpose pins,
835           RTC, regulators, clock generator, watchdog etc. This driver
836           provides common support for accessing the device; additional drivers
837           must be enabled in order to use the functionality of the device.
838
839 config MFD_MAX77650
840         tristate "Maxim MAX77650/77651 PMIC Support"
841         depends on I2C
842         depends on OF
843         select MFD_CORE
844         select REGMAP_I2C
845         select REGMAP_IRQ
846         help
847           Say Y here to add support for Maxim Semiconductor MAX77650 and
848           MAX77651 Power Management ICs. This is the core multifunction
849           driver for interacting with the device. The module name is
850           'max77650'. Additional drivers can be enabled in order to use
851           the following functionalities of the device: GPIO, regulator,
852           charger, LED, onkey.
853
854 config MFD_MAX77686
855         tristate "Maxim Semiconductor MAX77686/802 PMIC Support"
856         depends on I2C
857         depends on OF
858         select MFD_CORE
859         select REGMAP_I2C
860         select REGMAP_IRQ
861         select IRQ_DOMAIN
862         help
863           Say yes here to add support for Maxim Semiconductor MAX77686 and
864           MAX77802 which are Power Management IC with an RTC on chip.
865           This driver provides common support for accessing the device;
866           additional drivers must be enabled in order to use the functionality
867           of the device.
868
869 config MFD_MAX77693
870         tristate "Maxim Semiconductor MAX77693 PMIC Support"
871         depends on I2C
872         select MFD_CORE
873         select REGMAP_I2C
874         select REGMAP_IRQ
875         help
876           Say yes here to add support for Maxim Semiconductor MAX77693.
877           This is a companion Power Management IC with Flash, Haptic, Charger,
878           and MUIC(Micro USB Interface Controller) controls on chip.
879           This driver provides common support for accessing the device;
880           additional drivers must be enabled in order to use the functionality
881           of the device.
882
883 config MFD_MAX77714
884         tristate "Maxim Semiconductor MAX77714 PMIC Support"
885         depends on I2C
886         depends on OF
887         select MFD_CORE
888         select REGMAP_I2C
889         help
890           Say yes here to add support for Maxim Semiconductor MAX77714.
891           This is a Power Management IC with 4 buck regulators, 9
892           low-dropout regulators, 8 GPIOs, RTC, watchdog etc. This driver
893           provides common support for accessing the device; additional
894           drivers must be enabled in order to use each functionality of the
895           device.
896
897 config MFD_MAX77843
898         bool "Maxim Semiconductor MAX77843 PMIC Support"
899         depends on I2C=y
900         select MFD_CORE
901         select REGMAP_I2C
902         select REGMAP_IRQ
903         help
904           Say yes here to add support for Maxim Semiconductor MAX77843.
905           This is companion Power Management IC with LEDs, Haptic, Charger,
906           Fuel Gauge, MUIC(Micro USB Interface Controller) controls on chip.
907           This driver provides common support for accessing the device;
908           additional drivers must be enabled in order to use the functionality
909           of the device.
910
911 config MFD_MAX8907
912         tristate "Maxim Semiconductor MAX8907 PMIC Support"
913         select MFD_CORE
914         depends on I2C
915         select REGMAP_I2C
916         select REGMAP_IRQ
917         help
918           Say yes here to add support for Maxim Semiconductor MAX8907. This is
919           a Power Management IC. This driver provides common support for
920           accessing the device; additional drivers must be enabled in order
921           to use the functionality of the device.
922
923 config MFD_MAX8925
924         bool "Maxim Semiconductor MAX8925 PMIC Support"
925         depends on I2C=y
926         select MFD_CORE
927         help
928           Say yes here to add support for Maxim Semiconductor MAX8925. This is
929           a Power Management IC. This driver provides common support for
930           accessing the device, additional drivers must be enabled in order
931           to use the functionality of the device.
932
933 config MFD_MAX8997
934         bool "Maxim Semiconductor MAX8997/8966 PMIC Support"
935         depends on I2C=y
936         select MFD_CORE
937         select IRQ_DOMAIN
938         help
939           Say yes here to add support for Maxim Semiconductor MAX8997/8966.
940           This is a Power Management IC with RTC, Flash, Fuel Gauge, Haptic,
941           MUIC controls on chip.
942           This driver provides common support for accessing the device;
943           additional drivers must be enabled in order to use the functionality
944           of the device.
945
946 config MFD_MAX8998
947         bool "Maxim Semiconductor MAX8998/National LP3974 PMIC Support"
948         depends on I2C=y
949         select MFD_CORE
950         select IRQ_DOMAIN
951         help
952           Say yes here to add support for Maxim Semiconductor MAX8998 and
953           National Semiconductor LP3974. This is a Power Management IC.
954           This driver provides common support for accessing the device,
955           additional drivers must be enabled in order to use the functionality
956           of the device.
957
958 config MFD_MT6360
959         tristate "Mediatek MT6360 SubPMIC"
960         select MFD_CORE
961         select REGMAP_I2C
962         select REGMAP_IRQ
963         select CRC8
964         depends on I2C
965         help
966           Say Y here to enable MT6360 PMU/PMIC/LDO functional support.
967           PMU part includes Charger, Flashlight, RGB LED
968           PMIC part includes 2-channel BUCKs and 2-channel LDOs
969           LDO part includes 4-channel LDOs
970
971 config MFD_MT6370
972         tristate "MediaTek MT6370 SubPMIC"
973         select MFD_CORE
974         select REGMAP_I2C
975         select REGMAP_IRQ
976         depends on I2C
977         help
978           Say Y here to enable MT6370 SubPMIC functional support.
979           It consists of a single cell battery charger with ADC monitoring, RGB
980           LEDs, dual channel flashlight, WLED backlight driver, display bias
981           voltage supply, one general purpose LDO, and the USB Type-C & PD
982           controller complies with the latest USB Type-C and PD standards.
983
984           This driver can also be built as a module. If so, the module
985           will be called "mt6370".
986
987 config MFD_MT6397
988         tristate "MediaTek MT6397 PMIC Support"
989         select MFD_CORE
990         select IRQ_DOMAIN
991         help
992           Say yes here to add support for MediaTek MT6397 PMIC. This is
993           a Power Management IC. This driver provides common support for
994           accessing the device; additional drivers must be enabled in order
995           to use the functionality of the device.
996
997 config MFD_MENF21BMC
998         tristate "MEN 14F021P00 Board Management Controller Support"
999         depends on I2C
1000         select MFD_CORE
1001         help
1002           Say yes here to add support for the MEN 14F021P00 BMC
1003           which is a Board Management Controller connected to the I2C bus.
1004           The device supports multiple sub-devices like LED, HWMON and WDT.
1005           This driver provides common support for accessing the devices;
1006           additional drivers must be enabled in order to use the
1007           functionality of the BMC device.
1008
1009           This driver can also be built as a module. If so the module
1010           will be called menf21bmc.
1011
1012 config MFD_OCELOT
1013         tristate "Microsemi Ocelot External Control Support"
1014         depends on SPI_MASTER
1015         select MFD_CORE
1016         select REGMAP_SPI
1017         help
1018           Ocelot is a family of networking chips that support multiple ethernet
1019           and fibre interfaces. In addition to networking, they contain several
1020           other functions, including pinctrl, MDIO, and communication with
1021           external chips. While some chips have an internal processor capable of
1022           running an OS, others don't. All chips can be controlled externally
1023           through different interfaces, including SPI, I2C, and PCIe.
1024
1025           Say yes here to add support for Ocelot chips (VSC7511, VSC7512,
1026           VSC7513, VSC7514) controlled externally.
1027
1028           To compile this driver as a module, choose M here: the module will be
1029           called ocelot-soc.
1030
1031           If unsure, say N.
1032
1033 config EZX_PCAP
1034         bool "Motorola EZXPCAP Support"
1035         depends on SPI_MASTER
1036         help
1037           This enables the PCAP ASIC present on EZX Phones. This is
1038           needed for MMC, TouchScreen, Sound, USB, etc..
1039
1040 config MFD_CPCAP
1041         tristate "Support for Motorola CPCAP"
1042         depends on SPI
1043         depends on OF
1044         select MFD_CORE
1045         select REGMAP_SPI
1046         select REGMAP_IRQ
1047         help
1048           Say yes here if you want to include driver for CPCAP.
1049           It is used on many Motorola phones and tablets as a PMIC.
1050           At least Motorola Droid 4 is known to use CPCAP.
1051
1052 config MFD_VIPERBOARD
1053         tristate "Nano River Technologies Viperboard"
1054         select MFD_CORE
1055         depends on USB
1056         default n
1057         help
1058           Say yes here if you want support for Nano River Technologies
1059           Viperboard.
1060           There are mfd cell drivers available for i2c master, adc and
1061           both gpios found on the board. The spi part does not yet
1062           have a driver.
1063           You need to select the mfd cell drivers separately.
1064           The drivers do not support all features the board exposes.
1065
1066 config MFD_NTXEC
1067         tristate "Netronix embedded controller (EC)"
1068         depends on OF
1069         depends on I2C
1070         select REGMAP_I2C
1071         select MFD_CORE
1072         help
1073           Say yes here if you want to support the embedded controller found in
1074           certain e-book readers designed by the original design manufacturer
1075           Netronix.
1076
1077 config MFD_RETU
1078         tristate "Nokia Retu and Tahvo multi-function device"
1079         select MFD_CORE
1080         depends on I2C
1081         select REGMAP_IRQ
1082         help
1083           Retu and Tahvo are a multi-function devices found on Nokia
1084           Internet Tablets (770, N800 and N810).
1085
1086 config MFD_PCF50633
1087         tristate "NXP PCF50633"
1088         depends on I2C
1089         select REGMAP_I2C
1090         help
1091           Say yes here if you have NXP PCF50633 chip on your board.
1092           This core driver provides register access and IRQ handling
1093           facilities, and registers devices for the various functions
1094           so that function-specific drivers can bind to them.
1095
1096 config PCF50633_ADC
1097         tristate "NXP PCF50633 ADC"
1098         depends on MFD_PCF50633
1099         help
1100           Say yes here if you want to include support for ADC in the
1101           NXP PCF50633 chip.
1102
1103 config PCF50633_GPIO
1104         tristate "NXP PCF50633 GPIO"
1105         depends on MFD_PCF50633
1106         help
1107           Say yes here if you want to include support GPIO for pins on
1108           the PCF50633 chip.
1109
1110 config MFD_PM8XXX
1111         tristate "Qualcomm PM8xxx PMIC chips driver"
1112         depends on (ARM || HEXAGON || COMPILE_TEST)
1113         select IRQ_DOMAIN_HIERARCHY
1114         select MFD_CORE
1115         select REGMAP
1116         help
1117           If you say yes to this option, support will be included for the
1118           built-in PM8xxx PMIC chips.
1119
1120           This is required if your board has a PM8xxx and uses its features,
1121           such as: MPPs, GPIOs, regulators, interrupts, and PWM.
1122
1123           Say M here if you want to include support for PM8xxx chips as a
1124           module. This will build a module called "pm8xxx-core".
1125
1126 config MFD_QCOM_RPM
1127         tristate "Qualcomm Resource Power Manager (RPM)"
1128         depends on ARCH_QCOM && OF
1129         help
1130           If you say yes to this option, support will be included for the
1131           Resource Power Manager system found in the Qualcomm 8660, 8960 and
1132           8064 based devices.
1133
1134           This is required to access many regulators, clocks and bus
1135           frequencies controlled by the RPM on these devices.
1136
1137           Say M here if you want to include support for the Qualcomm RPM as a
1138           module. This will build a module called "qcom_rpm".
1139
1140 config MFD_SPMI_PMIC
1141         tristate "Qualcomm SPMI PMICs"
1142         depends on ARCH_QCOM || COMPILE_TEST
1143         depends on OF
1144         depends on SPMI
1145         select REGMAP_SPMI
1146         help
1147           This enables support for the Qualcomm SPMI PMICs.
1148           These PMICs are currently used with the Snapdragon 800 series of
1149           SoCs.  Note, that this will only be useful paired with descriptions
1150           of the independent functions as children nodes in the device tree.
1151
1152           Say M here if you want to include support for the SPMI PMIC
1153           series as a module.  The module will be called "qcom-spmi-pmic".
1154
1155 config MFD_SY7636A
1156         tristate "Silergy SY7636A voltage regulator"
1157         depends on I2C
1158         select MFD_SIMPLE_MFD_I2C
1159         help
1160           Enable support for Silergy SY7636A voltage regulator.
1161
1162           To enable support for building sub-devices as modules,
1163           choose M here.
1164
1165 config MFD_RDC321X
1166         tristate "RDC R-321x southbridge"
1167         select MFD_CORE
1168         depends on PCI
1169         help
1170           Say yes here if you want to have support for the RDC R-321x SoC
1171           southbridge which provides access to GPIOs and Watchdog using the
1172           southbridge PCI device configuration space.
1173
1174 config MFD_RT4831
1175         tristate "Richtek RT4831 four channel WLED and Display Bias Voltage"
1176         depends on I2C
1177         select MFD_CORE
1178         select REGMAP_I2C
1179         help
1180           This enables support for the Richtek RT4831 that includes 4 channel
1181           WLED driving and Display Bias Voltage. It's commonly used to provide
1182           power to the LCD display and LCD backlight.
1183
1184 config MFD_RT5033
1185         tristate "Richtek RT5033 Power Management IC"
1186         depends on I2C
1187         select MFD_CORE
1188         select REGMAP_I2C
1189         select REGMAP_IRQ
1190         help
1191           This driver provides for the Richtek RT5033 Power Management IC,
1192           which includes the I2C driver and the Core APIs. This driver provides
1193           common support for accessing the device. The device supports multiple
1194           sub-devices like charger, fuel gauge, flash LED, current source,
1195           LDO and Buck.
1196
1197 config MFD_RT5120
1198         tristate "Richtek RT5120 Power Management IC"
1199         depends on I2C
1200         select MFD_CORE
1201         select REGMAP_I2C
1202         select REGMAP_IRQ
1203         help
1204           The enables support for Richtek RT5120 PMIC. It includes four high
1205           efficiency buck converters and one LDO voltage regulator. The device
1206           is targeted at providing the CPU voltage, memory, I/O and peripheral
1207           power rails in home entertainment devices.
1208
1209 config MFD_RC5T583
1210         bool "Ricoh RC5T583 Power Management system device"
1211         depends on I2C=y
1212         select MFD_CORE
1213         select REGMAP_I2C
1214         help
1215           Select this option to get support for the RICOH583 Power
1216           Management system device.
1217           This driver provides common support for accessing the device
1218           through i2c interface. The device supports multiple sub-devices
1219           like GPIO, interrupts, RTC, LDO and DCDC regulators, onkey.
1220           Additional drivers must be enabled in order to use the
1221           different functionality of the device.
1222
1223 config MFD_RK8XX
1224         tristate
1225         select MFD_CORE
1226
1227 config MFD_RK8XX_I2C
1228         tristate "Rockchip RK805/RK808/RK809/RK817/RK818 Power Management Chip"
1229         depends on I2C && OF
1230         select MFD_CORE
1231         select REGMAP_I2C
1232         select REGMAP_IRQ
1233         select MFD_RK8XX
1234         help
1235           If you say yes here you get support for the RK805, RK808, RK809,
1236           RK817 and RK818 Power Management chips.
1237           This driver provides common support for accessing the device
1238           through I2C interface. The device supports multiple sub-devices
1239           including interrupts, RTC, LDO & DCDC regulators, and onkey.
1240
1241 config MFD_RK8XX_SPI
1242         tristate "Rockchip RK806 Power Management Chip"
1243         depends on SPI && OF
1244         select MFD_CORE
1245         select REGMAP_SPI
1246         select REGMAP_IRQ
1247         select MFD_RK8XX
1248         help
1249           If you say yes here you get support for the RK806 Power Management
1250           chip.
1251           This driver provides common support for accessing the device
1252           through an SPI interface. The device supports multiple sub-devices
1253           including interrupts, LDO & DCDC regulators, and power on-key.
1254
1255 config MFD_RN5T618
1256         tristate "Ricoh RN5T567/618 PMIC"
1257         depends on I2C
1258         depends on OF
1259         select MFD_CORE
1260         select REGMAP_I2C
1261         select REGMAP_IRQ
1262         help
1263           Say yes here to add support for the Ricoh RN5T567,
1264           RN5T618, RC5T619 PMIC.
1265           This driver provides common support for accessing the device,
1266           additional drivers must be enabled in order to use the
1267           functionality of the device.
1268
1269 config MFD_SEC_CORE
1270         tristate "Samsung Electronics PMIC Series Support"
1271         depends on I2C=y
1272         depends on OF
1273         select MFD_CORE
1274         select REGMAP_I2C
1275         select REGMAP_IRQ
1276         help
1277           Support for the Samsung Electronics PMIC devices coming
1278           usually along with Samsung Exynos SoC chipset.
1279           This driver provides common support for accessing the device,
1280           additional drivers must be enabled in order to use the functionality
1281           of the device
1282
1283           To compile this driver as a module, choose M here: the
1284           module will be called sec-core.
1285           Have in mind that important core drivers (like regulators) depend
1286           on this driver so building this as a module might require proper
1287           initial ramdisk or might not boot up as well in certain scenarios.
1288
1289 config MFD_SI476X_CORE
1290         tristate "Silicon Laboratories 4761/64/68 AM/FM radio."
1291         depends on I2C
1292         select MFD_CORE
1293         select REGMAP_I2C
1294         help
1295           This is the core driver for the SI476x series of AM/FM
1296           radio. This MFD driver connects the radio-si476x V4L2 module
1297           and the si476x audio codec.
1298
1299           To compile this driver as a module, choose M here: the
1300           module will be called si476x-core.
1301
1302 config MFD_SIMPLE_MFD_I2C
1303         tristate
1304         depends on I2C
1305         select MFD_CORE
1306         select REGMAP_I2C
1307         help
1308           This driver creates a single register map with the intention for it
1309           to be shared by all sub-devices.
1310
1311           Once the register map has been successfully initialised, any
1312           sub-devices represented by child nodes in Device Tree will be
1313           subsequently registered.
1314
1315 config MFD_SL28CPLD
1316         tristate "Kontron sl28cpld Board Management Controller"
1317         depends on I2C
1318         depends on ARCH_LAYERSCAPE || COMPILE_TEST
1319         select MFD_SIMPLE_MFD_I2C
1320         help
1321           Say yes here to enable support for the Kontron sl28cpld board
1322           management controller.
1323
1324           It can be found on the following boards:
1325                 * SMARC-sAL28
1326
1327 config MFD_SM501
1328         tristate "Silicon Motion SM501"
1329         depends on HAS_DMA
1330         help
1331           This is the core driver for the Silicon Motion SM501 multimedia
1332           companion chip. This device is a multifunction device which may
1333           provide numerous interfaces including USB host controller, USB gadget,
1334           asynchronous serial ports, audio functions, and a dual display video
1335           interface. The device may be connected by PCI or local bus with
1336           varying functions enabled.
1337
1338 config MFD_SM501_GPIO
1339         bool "Export GPIO via GPIO layer"
1340         depends on MFD_SM501 && GPIOLIB
1341         help
1342           This option uses the gpio library layer to export the 64 GPIO
1343           lines on the SM501. The platform data is used to supply the
1344           base number for the first GPIO line to register.
1345
1346 config MFD_SKY81452
1347         tristate "Skyworks Solutions SKY81452"
1348         select MFD_CORE
1349         select REGMAP_I2C
1350         depends on I2C
1351         help
1352           This is the core driver for the Skyworks SKY81452 backlight and
1353           voltage regulator device.
1354
1355           This driver can also be built as a module.  If so, the module
1356           will be called sky81452.
1357
1358 config MFD_SC27XX_PMIC
1359         tristate "Spreadtrum SC27xx PMICs"
1360         depends on ARCH_SPRD || COMPILE_TEST
1361         depends on SPI_MASTER
1362         select MFD_CORE
1363         select REGMAP_SPI
1364         select REGMAP_IRQ
1365         help
1366           This enables support for the Spreadtrum SC27xx PMICs with SPI
1367           interface. The SC27xx series PMICs integrate power management,
1368           audio codec, battery management and user interface support
1369           function (such as RTC, Typec, indicator and so on) in a single chip.
1370
1371           This driver provides common support for accessing the SC27xx PMICs,
1372           and it also adds the irq_chip parts for handling the PMIC chip events.
1373
1374 config RZ_MTU3
1375         tristate "Renesas RZ/G2L MTU3a core driver"
1376         depends on (ARCH_RZG2L && OF) || COMPILE_TEST
1377         select MFD_CORE
1378         help
1379           Select this option to enable Renesas RZ/G2L MTU3a core driver for
1380           the Multi-Function Timer Pulse Unit 3 (MTU3a) hardware available
1381           on SoCs from Renesas. The core driver shares the clk and channel
1382           register access for the other child devices like Counter, PWM,
1383           Clock Source, and Clock event.
1384
1385 config ABX500_CORE
1386         bool "ST-Ericsson ABX500 Mixed Signal Circuit register functions"
1387         depends on ARCH_U8500 || COMPILE_TEST
1388         default y if ARCH_U8500
1389         help
1390           Say yes here if you have the ABX500 Mixed Signal IC family
1391           chips. This core driver expose register access functions.
1392           Functionality specific drivers using these functions can
1393           remain unchanged when IC changes. Binding of the functions to
1394           actual register access is done by the IC core driver.
1395
1396 config AB8500_CORE
1397         bool "ST-Ericsson AB8500 Mixed Signal Power Management chip"
1398         depends on ABX500_CORE && MFD_DB8500_PRCMU
1399         select POWER_SUPPLY
1400         select MFD_CORE
1401         select IRQ_DOMAIN
1402         help
1403           Select this option to enable access to AB8500 power management
1404           chip. This connects to U8500 either on the SSP/SPI bus (deprecated
1405           since hardware version v1.0) or the I2C bus via PRCMU. It also adds
1406           the irq_chip parts for handling the Mixed Signal chip events.
1407           This chip embeds various other multimedia functionalities as well.
1408
1409 config MFD_DB8500_PRCMU
1410         bool "ST-Ericsson DB8500 Power Reset Control Management Unit"
1411         depends on UX500_SOC_DB8500
1412         select MFD_CORE
1413         help
1414           Select this option to enable support for the DB8500 Power Reset
1415           and Control Management Unit. This is basically an autonomous
1416           system controller running an XP70 microprocessor, which is accessed
1417           through a register map.
1418
1419 config MFD_STMPE
1420         bool "STMicroelectronics STMPE"
1421         depends on (I2C=y || SPI_MASTER=y)
1422         depends on OF
1423         select MFD_CORE
1424         help
1425           Support for the STMPE family of I/O Expanders from
1426           STMicroelectronics.
1427
1428           Currently supported devices are:
1429
1430                 STMPE811: GPIO, Touchscreen, ADC
1431                 STMPE1601: GPIO, Keypad
1432                 STMPE1801: GPIO, Keypad
1433                 STMPE2401: GPIO, Keypad
1434                 STMPE2403: GPIO, Keypad
1435
1436           This driver provides common support for accessing the device,
1437           additional drivers must be enabled in order to use the functionality
1438           of the device.  Currently available sub drivers are:
1439
1440                 GPIO: stmpe-gpio
1441                 Keypad: stmpe-keypad
1442                 Touchscreen: stmpe-ts
1443                 ADC: stmpe-adc
1444
1445 menu "STMicroelectronics STMPE Interface Drivers"
1446 depends on MFD_STMPE
1447
1448 config STMPE_I2C
1449         bool "STMicroelectronics STMPE I2C Interface"
1450         depends on I2C=y
1451         default y
1452         help
1453           This is used to enable I2C interface of STMPE
1454
1455 config STMPE_SPI
1456         bool "STMicroelectronics STMPE SPI Interface"
1457         depends on SPI_MASTER
1458         help
1459           This is used to enable SPI interface of STMPE
1460 endmenu
1461
1462 config MFD_STA2X11
1463         bool "STMicroelectronics STA2X11"
1464         depends on STA2X11
1465         select MFD_CORE
1466         select REGMAP_MMIO
1467
1468 config MFD_SUN6I_PRCM
1469         bool "Allwinner A31/A23/A33 PRCM controller"
1470         depends on ARCH_SUNXI || COMPILE_TEST
1471         select MFD_CORE
1472         help
1473           Support for the PRCM (Power/Reset/Clock Management) unit available
1474           in the A31, A23, and A33 SoCs. Other Allwinner SoCs contain similar
1475           hardware, but they do not use this driver.
1476
1477 config MFD_SYSCON
1478         bool "System Controller Register R/W Based on Regmap"
1479         select REGMAP_MMIO
1480         help
1481           Select this option to enable accessing system control registers
1482           via regmap.
1483
1484 config MFD_TI_AM335X_TSCADC
1485         tristate "TI ADC / Touch Screen chip support"
1486         depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
1487         select MFD_CORE
1488         select REGMAP
1489         select REGMAP_MMIO
1490         help
1491           If you say yes here you get support for Texas Instruments series
1492           of Touch Screen /ADC chips.
1493           To compile this driver as a module, choose M here: the
1494           module will be called ti_am335x_tscadc.
1495
1496 config MFD_LP3943
1497         tristate "TI/National Semiconductor LP3943 MFD Driver"
1498         depends on I2C
1499         select MFD_CORE
1500         select REGMAP_I2C
1501         help
1502           Support for the TI/National Semiconductor LP3943.
1503           This driver consists of GPIO and PWM drivers.
1504           With these functionalities, it can be used for LED string control or
1505           general usage such like a GPIO controller and a PWM controller.
1506
1507 config MFD_LP8788
1508         bool "TI LP8788 Power Management Unit Driver"
1509         depends on I2C=y
1510         select MFD_CORE
1511         select REGMAP_I2C
1512         select IRQ_DOMAIN
1513         help
1514           TI LP8788 PMU supports regulators, battery charger, RTC,
1515           ADC, backlight driver and current sinks.
1516
1517 config MFD_TI_LMU
1518         tristate "TI Lighting Management Unit driver"
1519         depends on I2C
1520         select MFD_CORE
1521         select REGMAP_I2C
1522         help
1523           Say yes here to enable support for TI LMU chips.
1524           TI LMU MFD supports LM3532, LM3631, LM3632, LM3633, LM3695 and
1525           LM36274.  It consists of backlight, LED and regulator driver.
1526           It provides consistent device controls for lighting functions.
1527
1528 config MFD_OMAP_USB_HOST
1529         bool "TI OMAP USBHS core and TLL driver"
1530         depends on USB_EHCI_HCD_OMAP || USB_OHCI_HCD_OMAP3
1531         depends on COMMON_CLK
1532         default y
1533         help
1534           This is the core driver for the OAMP EHCI and OHCI drivers.
1535           This MFD driver does the required setup functionalities for
1536           OMAP USB Host drivers.
1537
1538 config MFD_PALMAS
1539         tristate "TI Palmas series chips"
1540         select MFD_CORE
1541         select REGMAP_I2C
1542         select REGMAP_IRQ
1543         depends on I2C=y
1544         help
1545           If you say yes here you get support for the Palmas
1546           series of PMIC chips from Texas Instruments.
1547
1548 config TPS6105X
1549         tristate "TI TPS61050/61052 Boost Converters"
1550         depends on I2C
1551         select REGMAP_I2C
1552         select REGULATOR
1553         select MFD_CORE
1554         select REGULATOR_FIXED_VOLTAGE
1555         help
1556           This option enables a driver for the TP61050/TPS61052
1557           high-power "white LED driver". This boost converter is
1558           sometimes used for other things than white LEDs, and
1559           also contains a GPIO pin.
1560
1561 config TPS65010
1562         tristate "TI TPS6501x Power Management chips"
1563         depends on I2C && GPIOLIB
1564         default MACH_OMAP_OSK
1565         help
1566           If you say yes here you get support for the TPS6501x series of
1567           Power Management chips.  These include voltage regulators,
1568           lithium ion/polymer battery charging, and other features that
1569           are often used in portable devices like cell phones and cameras.
1570
1571           This driver can also be built as a module.  If so, the module
1572           will be called tps65010.
1573
1574 config TPS6507X
1575         tristate "TI TPS6507x Power Management / Touch Screen chips"
1576         select MFD_CORE
1577         depends on I2C
1578         help
1579           If you say yes here you get support for the TPS6507x series of
1580           Power Management / Touch Screen chips.  These include voltage
1581           regulators, lithium ion/polymer battery charging, touch screen
1582           and other features that are often used in portable devices.
1583           This driver can also be built as a module.  If so, the module
1584           will be called tps6507x.
1585
1586 config MFD_TPS65086
1587         tristate "TI TPS65086 Power Management Integrated Chips (PMICs)"
1588         select MFD_CORE
1589         select REGMAP
1590         select REGMAP_IRQ
1591         select REGMAP_I2C
1592         depends on I2C
1593         help
1594           If you say yes here you get support for the TPS65086 series of
1595           Power Management chips.
1596           This driver provides common support for accessing the device,
1597           additional drivers must be enabled in order to use the
1598           functionality of the device.
1599
1600 config TPS65911_COMPARATOR
1601         tristate
1602
1603 config MFD_TPS65090
1604         bool "TI TPS65090 Power Management chips"
1605         depends on I2C=y
1606         select MFD_CORE
1607         select REGMAP_I2C
1608         select REGMAP_IRQ
1609         help
1610           If you say yes here you get support for the TPS65090 series of
1611           Power Management chips.
1612           This driver provides common support for accessing the device,
1613           additional drivers must be enabled in order to use the
1614           functionality of the device.
1615
1616 config MFD_TPS65217
1617         tristate "TI TPS65217 Power Management / White LED chips"
1618         depends on I2C && OF
1619         select MFD_CORE
1620         select REGMAP_I2C
1621         select IRQ_DOMAIN
1622         help
1623           If you say yes here you get support for the TPS65217 series of
1624           Power Management / White LED chips.
1625           These include voltage regulators, lithium ion/polymer battery
1626           charger, wled and other features that are often used in portable
1627           devices.
1628
1629           This driver can also be built as a module.  If so, the module
1630           will be called tps65217.
1631
1632 config MFD_TI_LP873X
1633         tristate "TI LP873X Power Management IC"
1634         depends on I2C
1635         select MFD_CORE
1636         select REGMAP_I2C
1637         help
1638           If you say yes here then you get support for the LP873X series of
1639           Power Management Integrated Circuits (PMIC).
1640           These include voltage regulators, thermal protection, configurable
1641           General Purpose Outputs (GPO) that are used in portable devices.
1642
1643           This driver can also be built as a module. If so, the module
1644           will be called lp873x.
1645
1646 config MFD_TI_LP87565
1647         tristate "TI LP87565 Power Management IC"
1648         depends on I2C && OF
1649         select MFD_CORE
1650         select REGMAP_I2C
1651         help
1652           If you say yes here then you get support for the LP87565 series of
1653           Power Management Integrated Circuits (PMIC).
1654           These include voltage regulators, thermal protection, configurable
1655           General Purpose Outputs (GPO) that are used in portable devices.
1656
1657           This driver can also be built as a module. If so, the module
1658           will be called lp87565.
1659
1660 config MFD_TPS65218
1661         tristate "TI TPS65218 Power Management chips"
1662         depends on I2C && OF
1663         select MFD_CORE
1664         select REGMAP_I2C
1665         select REGMAP_IRQ
1666         help
1667           If you say yes here you get support for the TPS65218 series of
1668           Power Management chips.
1669           These include voltage regulators, gpio and other features
1670           that are often used in portable devices.
1671
1672           This driver can also be built as a module.  If so, the module
1673           will be called tps65218.
1674
1675 config MFD_TPS65219
1676         tristate "TI TPS65219 Power Management IC"
1677         depends on I2C && OF
1678         select MFD_CORE
1679         select REGMAP_I2C
1680         select REGMAP_IRQ
1681         help
1682           If you say yes here you get support for the TPS65219 series of Power
1683           Management ICs. These include voltage regulators, GPIOs and
1684           push/power button that is often used in portable devices.
1685
1686           This driver can also be built as a module. If so, the module
1687           will be called tps65219.
1688
1689 config MFD_TPS6586X
1690         bool "TI TPS6586x Power Management chips"
1691         depends on I2C=y
1692         select MFD_CORE
1693         select REGMAP_I2C
1694         help
1695           If you say yes here you get support for the TPS6586X series of
1696           Power Management chips.
1697           This driver provides common support for accessing the device,
1698           additional drivers must be enabled in order to use the
1699           functionality of the device.
1700
1701           This driver can also be built as a module.  If so, the module
1702           will be called tps6586x.
1703
1704 config MFD_TPS65910
1705         bool "TI TPS65910 Power Management chip"
1706         depends on I2C=y
1707         depends on GPIOLIB || COMPILE_TEST
1708         select MFD_CORE
1709         select REGMAP_I2C
1710         select REGMAP_IRQ
1711         select IRQ_DOMAIN
1712         help
1713           if you say yes here you get support for the TPS65910 series of
1714           Power Management chips.
1715
1716 config MFD_TPS65912
1717         tristate
1718         select MFD_CORE
1719         select REGMAP
1720         select REGMAP_IRQ
1721
1722 config MFD_TPS65912_I2C
1723         tristate "TI TPS65912 Power Management chip with I2C"
1724         select MFD_TPS65912
1725         select REGMAP_I2C
1726         depends on I2C
1727         help
1728           If you say yes here you get support for the TPS65912 series of
1729           PM chips with I2C interface.
1730
1731 config MFD_TPS65912_SPI
1732         tristate "TI TPS65912 Power Management chip with SPI"
1733         select MFD_TPS65912
1734         select REGMAP_SPI
1735         depends on SPI_MASTER
1736         help
1737           If you say yes here you get support for the TPS65912 series of
1738           PM chips with SPI interface.
1739
1740 config MFD_TPS6594
1741         tristate
1742         select MFD_CORE
1743         select REGMAP
1744         select REGMAP_IRQ
1745
1746 config MFD_TPS6594_I2C
1747         tristate "TI TPS6594 Power Management chip with I2C"
1748         select MFD_TPS6594
1749         select REGMAP_I2C
1750         select CRC8
1751         depends on I2C
1752         help
1753           If you say yes here you get support for the TPS6594 series of
1754           PM chips with I2C interface.
1755
1756           This driver can also be built as a module.  If so, the module
1757           will be called tps6594-i2c.
1758
1759 config MFD_TPS6594_SPI
1760         tristate "TI TPS6594 Power Management chip with SPI"
1761         select MFD_TPS6594
1762         select REGMAP_SPI
1763         select CRC8
1764         depends on SPI_MASTER
1765         help
1766           If you say yes here you get support for the TPS6594 series of
1767           PM chips with SPI interface.
1768
1769           This driver can also be built as a module.  If so, the module
1770           will be called tps6594-spi.
1771
1772 config TWL4030_CORE
1773         bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 Support"
1774         depends on I2C=y
1775         select IRQ_DOMAIN
1776         select MFD_CORE
1777         select REGMAP_I2C
1778         help
1779           Say yes here if you have TWL4030 / TWL6030 family chip on your board.
1780           This core driver provides register access and IRQ handling
1781           facilities, and registers devices for the various functions
1782           so that function-specific drivers can bind to them.
1783
1784           These multi-function chips are found on many OMAP2 and OMAP3
1785           boards, providing power management, RTC, GPIO, keypad, a
1786           high speed USB OTG transceiver, an audio codec (on most
1787           versions) and many other features.
1788
1789 config TWL4030_POWER
1790         bool "TI TWL4030 power resources"
1791         depends on TWL4030_CORE && ARM
1792         help
1793           Say yes here if you want to use the power resources on the
1794           TWL4030 family chips.  Most of these resources are regulators,
1795           which have a separate driver; some are control signals, such
1796           as clock request handshaking.
1797
1798           This driver uses board-specific data to initialize the resources
1799           and load scripts controlling which resources are switched off/on
1800           or reset when a sleep, wakeup or warm reset event occurs.
1801
1802 config MFD_TWL4030_AUDIO
1803         bool "TI TWL4030 Audio"
1804         depends on TWL4030_CORE
1805         select MFD_CORE
1806         default n
1807
1808 config TWL6040_CORE
1809         bool "TI TWL6040 audio codec"
1810         depends on I2C=y
1811         select MFD_CORE
1812         select REGMAP_I2C
1813         select REGMAP_IRQ
1814         default n
1815         help
1816           Say yes here if you want support for Texas Instruments TWL6040 audio
1817           codec.
1818           This driver provides common support for accessing the device,
1819           additional drivers must be enabled in order to use the
1820           functionality of the device (audio, vibra).
1821
1822 config MENELAUS
1823         bool "TI TWL92330/Menelaus PM chip"
1824         depends on I2C=y && ARCH_OMAP2
1825         help
1826           If you say yes here you get support for the Texas Instruments
1827           TWL92330/Menelaus Power Management chip. This include voltage
1828           regulators, Dual slot memory card transceivers, real-time clock
1829           and other features that are often used in portable devices like
1830           cell phones and PDAs.
1831
1832 config MFD_WL1273_CORE
1833         tristate "TI WL1273 FM radio"
1834         depends on I2C
1835         select MFD_CORE
1836         default n
1837         help
1838           This is the core driver for the TI WL1273 FM radio. This MFD
1839           driver connects the radio-wl1273 V4L2 module and the wl1273
1840           audio codec.
1841
1842 config MFD_LM3533
1843         tristate "TI/National Semiconductor LM3533 Lighting Power chip"
1844         depends on I2C
1845         select MFD_CORE
1846         select REGMAP_I2C
1847         help
1848           Say yes here to enable support for National Semiconductor / TI
1849           LM3533 Lighting Power chips.
1850
1851           This driver provides common support for accessing the device;
1852           additional drivers must be enabled in order to use the LED,
1853           backlight or ambient-light-sensor functionality of the device.
1854
1855 config MFD_TIMBERDALE
1856         tristate "Timberdale FPGA"
1857         select MFD_CORE
1858         depends on PCI && GPIOLIB && (X86_32 || COMPILE_TEST)
1859         help
1860         This is the core driver for the timberdale FPGA. This device is a
1861         multifunction device which exposes numerous platform devices.
1862
1863         The timberdale FPGA can be found on the Intel Atom development board
1864         for in-vehicle infontainment, called Russellville.
1865
1866 config MFD_TC3589X
1867         bool "Toshiba TC35892 and variants"
1868         depends on I2C=y
1869         depends on OF
1870         select MFD_CORE
1871         help
1872           Support for the Toshiba TC35892 and variants I/O Expander.
1873
1874           This driver provides common support for accessing the device,
1875           additional drivers must be enabled in order to use the
1876           functionality of the device.
1877
1878 config MFD_TQMX86
1879         tristate "TQ-Systems IO controller TQMX86"
1880         select MFD_CORE
1881         help
1882           Say yes here to enable support for various functions of the
1883           TQ-Systems IO controller and watchdog device, found on their
1884           ComExpress CPU modules.
1885
1886 config MFD_VX855
1887         tristate "VIA VX855/VX875 integrated south bridge"
1888         depends on PCI
1889         select MFD_CORE
1890         help
1891           Say yes here to enable support for various functions of the
1892           VIA VX855/VX875 south bridge. You will need to enable the vx855_spi
1893           and/or vx855_gpio drivers for this to do anything useful.
1894
1895 config MFD_LOCHNAGAR
1896         bool "Cirrus Logic Lochnagar Audio Development Board"
1897         select MFD_CORE
1898         select REGMAP_I2C
1899         depends on I2C=y && OF
1900         help
1901           Support for Cirrus Logic Lochnagar audio development board.
1902
1903 config MFD_ARIZONA
1904         select REGMAP
1905         select REGMAP_IRQ
1906         select MFD_CORE
1907         tristate
1908
1909 config MFD_ARIZONA_I2C
1910         tristate "Cirrus Logic/Wolfson Microelectronics Arizona platform with I2C"
1911         select MFD_ARIZONA
1912         select REGMAP_I2C
1913         depends on I2C
1914         help
1915           Support for the Cirrus Logic/Wolfson Microelectronics Arizona platform
1916           audio SoC core functionality controlled via I2C.
1917
1918 config MFD_ARIZONA_SPI
1919         tristate "Cirrus Logic/Wolfson Microelectronics Arizona platform with SPI"
1920         select MFD_ARIZONA
1921         select REGMAP_SPI
1922         depends on SPI_MASTER
1923         help
1924           Support for the Cirrus Logic/Wolfson Microelectronics Arizona platform
1925           audio SoC core functionality controlled via SPI.
1926
1927 config MFD_CS47L24
1928         bool "Cirrus Logic CS47L24 and WM1831"
1929         depends on MFD_ARIZONA
1930         help
1931           Support for Cirrus Logic CS47L24 and WM1831 low power audio SoC
1932
1933 config MFD_WM5102
1934         bool "Wolfson Microelectronics WM5102"
1935         depends on MFD_ARIZONA
1936         help
1937           Support for Wolfson Microelectronics WM5102 low power audio SoC
1938
1939 config MFD_WM5110
1940         bool "Wolfson Microelectronics WM5110 and WM8280/WM8281"
1941         depends on MFD_ARIZONA
1942         help
1943           Support for Wolfson Microelectronics WM5110 and WM8280/WM8281
1944           low power audio SoC
1945
1946 config MFD_WM8997
1947         bool "Wolfson Microelectronics WM8997"
1948         depends on MFD_ARIZONA
1949         help
1950           Support for Wolfson Microelectronics WM8997 low power audio SoC
1951
1952 config MFD_WM8998
1953         bool "Wolfson Microelectronics WM8998"
1954         depends on MFD_ARIZONA
1955         help
1956           Support for Wolfson Microelectronics WM8998 low power audio SoC
1957
1958 config MFD_WM8400
1959         bool "Wolfson Microelectronics WM8400"
1960         select MFD_CORE
1961         depends on I2C=y
1962         select REGMAP_I2C
1963         help
1964           Support for the Wolfson Microelecronics WM8400 PMIC and audio
1965           CODEC.  This driver provides common support for accessing
1966           the device, additional drivers must be enabled in order to use
1967           the functionality of the device.
1968
1969 config MFD_WM831X
1970         bool
1971
1972 config MFD_WM831X_I2C
1973         bool "Wolfson Microelectronics WM831x/2x PMICs with I2C"
1974         select MFD_CORE
1975         select MFD_WM831X
1976         select REGMAP_I2C
1977         select IRQ_DOMAIN
1978         depends on I2C=y
1979         help
1980           Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1981           when controlled using I2C.  This driver provides common support
1982           for accessing the device, additional drivers must be enabled in
1983           order to use the functionality of the device.
1984
1985 config MFD_WM831X_SPI
1986         bool "Wolfson Microelectronics WM831x/2x PMICs with SPI"
1987         select MFD_CORE
1988         select MFD_WM831X
1989         select REGMAP_SPI
1990         select IRQ_DOMAIN
1991         depends on SPI_MASTER
1992         help
1993           Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1994           when controlled using SPI.  This driver provides common support
1995           for accessing the device, additional drivers must be enabled in
1996           order to use the functionality of the device.
1997
1998 config MFD_WM8350
1999         bool
2000
2001 config MFD_WM8350_I2C
2002         bool "Wolfson Microelectronics WM8350 with I2C"
2003         select MFD_WM8350
2004         select REGMAP_I2C
2005         depends on I2C=y
2006         help
2007           The WM8350 is an integrated audio and power management
2008           subsystem with watchdog and RTC functionality for embedded
2009           systems.  This option enables core support for the WM8350 with
2010           I2C as the control interface.  Additional options must be
2011           selected to enable support for the functionality of the chip.
2012
2013 config MFD_WM8994
2014         tristate "Wolfson Microelectronics WM8994"
2015         select MFD_CORE
2016         select REGMAP_I2C
2017         select REGMAP_IRQ
2018         depends on I2C
2019         help
2020           The WM8994 is a highly integrated hi-fi CODEC designed for
2021           smartphone applications.  As well as audio functionality it
2022           has on board GPIO and regulator functionality which is
2023           supported via the relevant subsystems.  This driver provides
2024           core support for the WM8994, in order to use the actual
2025           functionality of the device other drivers must be enabled.
2026
2027 config MFD_WM97xx
2028         tristate "Wolfson Microelectronics WM97xx"
2029         select MFD_CORE
2030         select REGMAP_AC97
2031         select AC97_BUS_COMPAT
2032         depends on AC97_BUS_NEW
2033         help
2034           The WM9705, WM9712 and WM9713 is a highly integrated hi-fi CODEC
2035           designed for smartphone applications.  As well as audio functionality
2036           it has on board GPIO and a touchscreen functionality which is
2037           supported via the relevant subsystems.  This driver provides core
2038           support for the WM97xx, in order to use the actual functionality of
2039           the device other drivers must be enabled.
2040
2041 config MFD_STW481X
2042         tristate "Support for ST Microelectronics STw481x"
2043         depends on I2C && (ARCH_NOMADIK || COMPILE_TEST)
2044         select REGMAP_I2C
2045         select MFD_CORE
2046         help
2047           Select this option to enable the STw481x chip driver used
2048           in various ST Microelectronics and ST-Ericsson embedded
2049           Nomadik series.
2050
2051 config MFD_ROHM_BD718XX
2052         tristate "ROHM BD71837 Power Management IC"
2053         depends on I2C=y
2054         depends on OF
2055         select REGMAP_I2C
2056         select REGMAP_IRQ
2057         select MFD_CORE
2058         help
2059           Select this option to get support for the ROHM BD71837
2060           Power Management ICs. BD71837 is designed to power processors like
2061           NXP i.MX8. It contains 8 BUCK outputs and 7 LDOs, voltage monitoring
2062           and emergency shut down as well as 32,768KHz clock output.
2063
2064 config MFD_ROHM_BD71828
2065         tristate "ROHM BD71828 and BD71815 Power Management IC"
2066         depends on I2C=y
2067         depends on OF
2068         select REGMAP_I2C
2069         select REGMAP_IRQ
2070         select MFD_CORE
2071         help
2072           Select this option to get support for the ROHM BD71828 and BD71815
2073           Power Management ICs. BD71828GW and BD71815AGW are single-chip power
2074           management ICs mainly for battery-powered portable devices.
2075           The BD71828 integrates 7 buck converters and 7 LDOs. The BD71815
2076           has 5 bucks, 7 LDOs, and a boost for driving LEDs. Both ICs provide
2077           also a single-cell linear charger, a Coulomb counter, a real-time
2078           clock (RTC), GPIOs and a 32.768 kHz clock gate.
2079
2080 config MFD_ROHM_BD957XMUF
2081         tristate "ROHM BD9576MUF and BD9573MUF Power Management ICs"
2082         depends on I2C=y
2083         depends on OF
2084         select REGMAP_I2C
2085         select REGMAP_IRQ
2086         select MFD_CORE
2087         help
2088           Select this option to get support for the ROHM BD9576MUF and
2089           BD9573MUF Power Management ICs. BD9576 and BD9573 are primarily
2090           designed to be used to power R-Car series processors.
2091
2092 config MFD_STM32_LPTIMER
2093         tristate "Support for STM32 Low-Power Timer"
2094         depends on (ARCH_STM32 && OF) || COMPILE_TEST
2095         select MFD_CORE
2096         select REGMAP
2097         select REGMAP_MMIO
2098         help
2099           Select this option to enable STM32 Low-Power Timer driver
2100           used for PWM, IIO Trigger, IIO Encoder and Counter. Shared
2101           resources are also dealt with here.
2102
2103           To compile this driver as a module, choose M here: the
2104           module will be called stm32-lptimer.
2105
2106 config MFD_STM32_TIMERS
2107         tristate "Support for STM32 Timers"
2108         depends on (ARCH_STM32 && OF) || COMPILE_TEST
2109         select MFD_CORE
2110         select REGMAP
2111         select REGMAP_MMIO
2112         help
2113           Select this option to enable STM32 timers driver used
2114           for PWM and IIO Timer. This driver allow to share the
2115           registers between the others drivers.
2116
2117 config MFD_STPMIC1
2118         tristate "Support for STPMIC1 PMIC"
2119         depends on (I2C=y && OF)
2120         select REGMAP_I2C
2121         select REGMAP_IRQ
2122         select MFD_CORE
2123         help
2124           Support for ST Microelectronics STPMIC1 PMIC. STPMIC1 has power on
2125           key, watchdog and regulator functionalities which are supported via
2126           the relevant subsystems. This driver provides core support for the
2127           STPMIC1. In order to use the actual functionality of the device other
2128           drivers must be enabled.
2129
2130           To compile this driver as a module, choose M here: the
2131           module will be called stpmic1.
2132
2133 config MFD_STMFX
2134         tristate "Support for STMicroelectronics Multi-Function eXpander (STMFX)"
2135         depends on I2C
2136         depends on OF
2137         select MFD_CORE
2138         select REGMAP_I2C
2139         help
2140           Support for the STMicroelectronics Multi-Function eXpander.
2141
2142           This driver provides common support for accessing the device,
2143           additional drivers must be enabled in order to use the functionality
2144           of the device.
2145
2146 config MFD_WCD934X
2147         tristate "Support for WCD9340/WCD9341 Codec"
2148         depends on SLIMBUS
2149         select REGMAP
2150         select REGMAP_SLIMBUS
2151         select REGMAP_IRQ
2152         select MFD_CORE
2153         help
2154           Support for the Qualcomm WCD9340/WCD9341 Codec.
2155           This driver provides common support WCD934x audio codec and its
2156           associated Pin Controller, Soundwire Controller and Audio codec.
2157
2158 config MFD_ATC260X
2159         tristate
2160         select MFD_CORE
2161         select REGMAP
2162         select REGMAP_IRQ
2163
2164 config MFD_ATC260X_I2C
2165         tristate "Actions Semi ATC260x PMICs with I2C"
2166         select MFD_ATC260X
2167         select REGMAP_I2C
2168         depends on I2C
2169         help
2170           Support for the Actions Semi ATC260x PMICs controlled via I2C.
2171
2172           This driver provides common support for accessing the ATC2603C
2173           and ATC2609A chip variants, additional drivers must be enabled
2174           in order to use the functionality of the device.
2175
2176 config MFD_KHADAS_MCU
2177         tristate "Support for Khadas System control Microcontroller"
2178         depends on I2C
2179         depends on ARCH_MESON || ARCH_ROCKCHIP || COMPILE_TEST
2180         select MFD_CORE
2181         select REGMAP_I2C
2182         help
2183           Support for the Khadas System control Microcontroller interface
2184           present on their VIM and Edge boards.
2185
2186           This Microcontroller is present on the Khadas VIM1, VIM2, VIM3 and
2187           Edge boards.
2188
2189           It provides multiple boot control features like password check,
2190           power-on options, power-off control and system FAN control on recent
2191           boards.
2192
2193           This driver provides common support for accessing the device,
2194           additional drivers must be enabled in order to use the functionality
2195           of the device.
2196
2197 config MFD_ACER_A500_EC
2198         tristate "Support for Acer Iconia Tab A500 Embedded Controller"
2199         depends on I2C
2200         depends on (ARCH_TEGRA_2x_SOC && OF) || COMPILE_TEST
2201         select MFD_CORE
2202         select REGMAP
2203         help
2204           Support for Embedded Controller found on Acer Iconia Tab A500.
2205           The controller itself is ENE KB930, it is running firmware
2206           customized for the specific needs of the Acer A500 hardware.
2207
2208 config MFD_QCOM_PM8008
2209         tristate "QCOM PM8008 Power Management IC"
2210         depends on I2C && OF
2211         select REGMAP_I2C
2212         select REGMAP_IRQ
2213         help
2214           Select this option to get support for the Qualcomm Technologies, Inc.
2215           PM8008 PMIC chip. PM8008 is a dedicated camera PMIC that integrates
2216           all the necessary power management, housekeeping, and interface
2217           support functions into a single IC. This driver provides common
2218           support for accessing the device by instantiating all the child nodes
2219           under it in the device tree. Additional drivers must be enabled in
2220           order to use the functionality of the device.
2221
2222 menu "Multimedia Capabilities Port drivers"
2223         depends on ARCH_SA1100
2224
2225 config MCP
2226         tristate
2227
2228 # Interface drivers
2229 config MCP_SA11X0
2230         tristate "Support SA11x0 MCP interface"
2231         depends on ARCH_SA1100
2232         select MCP
2233
2234 # Chip drivers
2235 config MCP_UCB1200
2236         tristate "Support for UCB1200 / UCB1300"
2237         depends on MCP_SA11X0
2238         select MCP
2239
2240 config MCP_UCB1200_TS
2241         tristate "Touchscreen interface support"
2242         depends on MCP_UCB1200 && INPUT
2243
2244 endmenu
2245
2246 config MFD_VEXPRESS_SYSREG
2247         tristate "Versatile Express System Registers"
2248         depends on VEXPRESS_CONFIG && GPIOLIB
2249         default y
2250         select GPIO_GENERIC_PLATFORM
2251         select MFD_CORE
2252         select MFD_SYSCON
2253         help
2254           System Registers are the platform configuration block
2255           on the ARM Ltd. Versatile Express board.
2256
2257 config RAVE_SP_CORE
2258         tristate "RAVE SP MCU core driver"
2259         depends on SERIAL_DEV_BUS
2260         select CRC_ITU_T
2261         help
2262           Select this to get support for the Supervisory Processor
2263           device found on several devices in RAVE line of hardware.
2264
2265 config SGI_MFD_IOC3
2266         bool "SGI IOC3 core driver"
2267         depends on PCI && MIPS && 64BIT
2268         select MFD_CORE
2269         help
2270           This option enables basic support for the SGI IOC3-based
2271           controller cards.  This option does not enable any specific
2272           functions on such a card, but provides necessary infrastructure
2273           for other drivers to utilize.
2274
2275           If you have an SGI Origin, Octane, or a PCI IOC3 card,
2276           then say Y. Otherwise say N.
2277
2278 config MFD_INTEL_M10_BMC_CORE
2279         tristate
2280         select MFD_CORE
2281         select REGMAP
2282         default n
2283
2284 config MFD_INTEL_M10_BMC_SPI
2285         tristate "Intel MAX 10 Board Management Controller with SPI"
2286         depends on SPI_MASTER
2287         select MFD_INTEL_M10_BMC_CORE
2288         select REGMAP_SPI_AVMM
2289         help
2290           Support for the Intel MAX 10 board management controller using the
2291           SPI interface.
2292
2293           This driver provides common support for accessing the device,
2294           additional drivers must be enabled in order to use the functionality
2295           of the device.
2296
2297 config MFD_INTEL_M10_BMC_PMCI
2298         tristate "Intel MAX 10 Board Management Controller with PMCI"
2299         depends on FPGA_DFL
2300         select MFD_INTEL_M10_BMC_CORE
2301         select REGMAP
2302         help
2303           Support for the Intel MAX 10 board management controller via PMCI.
2304
2305           This driver provides common support for accessing the device,
2306           additional drivers must be enabled in order to use the functionality
2307           of the device.
2308
2309 config MFD_RSMU_I2C
2310         tristate "Renesas Synchronization Management Unit with I2C"
2311         depends on I2C && OF
2312         select MFD_CORE
2313         select REGMAP_I2C
2314         help
2315           Support for the Renesas Synchronization Management Unit, such as
2316           Clockmatrix and 82P33XXX series. This option supports I2C as
2317           the control interface.
2318
2319           This driver provides common support for accessing the device.
2320           Additional drivers must be enabled in order to use the functionality
2321           of the device.
2322
2323 config MFD_RSMU_SPI
2324         tristate "Renesas Synchronization Management Unit with SPI"
2325         depends on SPI && OF
2326         select MFD_CORE
2327         select REGMAP_SPI
2328         help
2329           Support for the Renesas Synchronization Management Unit, such as
2330           Clockmatrix and 82P33XXX series. This option supports SPI as
2331           the control interface.
2332
2333           This driver provides common support for accessing the device.
2334           Additional drivers must be enabled in order to use the functionality
2335           of the device.
2336
2337 endmenu
2338 endif