Merge tag 'powerpc-6.6-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[platform/kernel/linux-starfive.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         select MFD_CORE
1487         select REGMAP
1488         select REGMAP_MMIO
1489         help
1490           If you say yes here you get support for Texas Instruments series
1491           of Touch Screen /ADC chips.
1492           To compile this driver as a module, choose M here: the
1493           module will be called ti_am335x_tscadc.
1494
1495 config MFD_LP3943
1496         tristate "TI/National Semiconductor LP3943 MFD Driver"
1497         depends on I2C
1498         select MFD_CORE
1499         select REGMAP_I2C
1500         help
1501           Support for the TI/National Semiconductor LP3943.
1502           This driver consists of GPIO and PWM drivers.
1503           With these functionalities, it can be used for LED string control or
1504           general usage such like a GPIO controller and a PWM controller.
1505
1506 config MFD_LP8788
1507         bool "TI LP8788 Power Management Unit Driver"
1508         depends on I2C=y
1509         select MFD_CORE
1510         select REGMAP_I2C
1511         select IRQ_DOMAIN
1512         help
1513           TI LP8788 PMU supports regulators, battery charger, RTC,
1514           ADC, backlight driver and current sinks.
1515
1516 config MFD_TI_LMU
1517         tristate "TI Lighting Management Unit driver"
1518         depends on I2C
1519         select MFD_CORE
1520         select REGMAP_I2C
1521         help
1522           Say yes here to enable support for TI LMU chips.
1523           TI LMU MFD supports LM3532, LM3631, LM3632, LM3633, LM3695 and
1524           LM36274.  It consists of backlight, LED and regulator driver.
1525           It provides consistent device controls for lighting functions.
1526
1527 config MFD_OMAP_USB_HOST
1528         bool "TI OMAP USBHS core and TLL driver"
1529         depends on USB_EHCI_HCD_OMAP || USB_OHCI_HCD_OMAP3
1530         depends on COMMON_CLK
1531         default y
1532         help
1533           This is the core driver for the OAMP EHCI and OHCI drivers.
1534           This MFD driver does the required setup functionalities for
1535           OMAP USB Host drivers.
1536
1537 config MFD_PALMAS
1538         tristate "TI Palmas series chips"
1539         select MFD_CORE
1540         select REGMAP_I2C
1541         select REGMAP_IRQ
1542         depends on I2C=y
1543         help
1544           If you say yes here you get support for the Palmas
1545           series of PMIC chips from Texas Instruments.
1546
1547 config TPS6105X
1548         tristate "TI TPS61050/61052 Boost Converters"
1549         depends on I2C
1550         select REGMAP_I2C
1551         select REGULATOR
1552         select MFD_CORE
1553         select REGULATOR_FIXED_VOLTAGE
1554         help
1555           This option enables a driver for the TP61050/TPS61052
1556           high-power "white LED driver". This boost converter is
1557           sometimes used for other things than white LEDs, and
1558           also contains a GPIO pin.
1559
1560 config TPS65010
1561         tristate "TI TPS6501x Power Management chips"
1562         depends on I2C && GPIOLIB
1563         default MACH_OMAP_OSK
1564         help
1565           If you say yes here you get support for the TPS6501x series of
1566           Power Management chips.  These include voltage regulators,
1567           lithium ion/polymer battery charging, and other features that
1568           are often used in portable devices like cell phones and cameras.
1569
1570           This driver can also be built as a module.  If so, the module
1571           will be called tps65010.
1572
1573 config TPS6507X
1574         tristate "TI TPS6507x Power Management / Touch Screen chips"
1575         select MFD_CORE
1576         depends on I2C
1577         help
1578           If you say yes here you get support for the TPS6507x series of
1579           Power Management / Touch Screen chips.  These include voltage
1580           regulators, lithium ion/polymer battery charging, touch screen
1581           and other features that are often used in portable devices.
1582           This driver can also be built as a module.  If so, the module
1583           will be called tps6507x.
1584
1585 config MFD_TPS65086
1586         tristate "TI TPS65086 Power Management Integrated Chips (PMICs)"
1587         select MFD_CORE
1588         select REGMAP
1589         select REGMAP_IRQ
1590         select REGMAP_I2C
1591         depends on I2C
1592         help
1593           If you say yes here you get support for the TPS65086 series of
1594           Power Management chips.
1595           This driver provides common support for accessing the device,
1596           additional drivers must be enabled in order to use the
1597           functionality of the device.
1598
1599 config TPS65911_COMPARATOR
1600         tristate
1601
1602 config MFD_TPS65090
1603         bool "TI TPS65090 Power Management chips"
1604         depends on I2C=y
1605         select MFD_CORE
1606         select REGMAP_I2C
1607         select REGMAP_IRQ
1608         help
1609           If you say yes here you get support for the TPS65090 series of
1610           Power Management chips.
1611           This driver provides common support for accessing the device,
1612           additional drivers must be enabled in order to use the
1613           functionality of the device.
1614
1615 config MFD_TPS65217
1616         tristate "TI TPS65217 Power Management / White LED chips"
1617         depends on I2C && OF
1618         select MFD_CORE
1619         select REGMAP_I2C
1620         select IRQ_DOMAIN
1621         help
1622           If you say yes here you get support for the TPS65217 series of
1623           Power Management / White LED chips.
1624           These include voltage regulators, lithium ion/polymer battery
1625           charger, wled and other features that are often used in portable
1626           devices.
1627
1628           This driver can also be built as a module.  If so, the module
1629           will be called tps65217.
1630
1631 config MFD_TI_LP873X
1632         tristate "TI LP873X Power Management IC"
1633         depends on I2C
1634         select MFD_CORE
1635         select REGMAP_I2C
1636         help
1637           If you say yes here then you get support for the LP873X series of
1638           Power Management Integrated Circuits (PMIC).
1639           These include voltage regulators, thermal protection, configurable
1640           General Purpose Outputs (GPO) that are used in portable devices.
1641
1642           This driver can also be built as a module. If so, the module
1643           will be called lp873x.
1644
1645 config MFD_TI_LP87565
1646         tristate "TI LP87565 Power Management IC"
1647         depends on I2C && OF
1648         select MFD_CORE
1649         select REGMAP_I2C
1650         help
1651           If you say yes here then you get support for the LP87565 series of
1652           Power Management Integrated Circuits (PMIC).
1653           These include voltage regulators, thermal protection, configurable
1654           General Purpose Outputs (GPO) that are used in portable devices.
1655
1656           This driver can also be built as a module. If so, the module
1657           will be called lp87565.
1658
1659 config MFD_TPS65218
1660         tristate "TI TPS65218 Power Management chips"
1661         depends on I2C && OF
1662         select MFD_CORE
1663         select REGMAP_I2C
1664         select REGMAP_IRQ
1665         help
1666           If you say yes here you get support for the TPS65218 series of
1667           Power Management chips.
1668           These include voltage regulators, gpio and other features
1669           that are often used in portable devices.
1670
1671           This driver can also be built as a module.  If so, the module
1672           will be called tps65218.
1673
1674 config MFD_TPS65219
1675         tristate "TI TPS65219 Power Management IC"
1676         depends on I2C && OF
1677         select MFD_CORE
1678         select REGMAP_I2C
1679         select REGMAP_IRQ
1680         help
1681           If you say yes here you get support for the TPS65219 series of Power
1682           Management ICs. These include voltage regulators, GPIOs and
1683           push/power button that is often used in portable devices.
1684
1685           This driver can also be built as a module. If so, the module
1686           will be called tps65219.
1687
1688 config MFD_TPS6586X
1689         bool "TI TPS6586x Power Management chips"
1690         depends on I2C=y
1691         select MFD_CORE
1692         select REGMAP_I2C
1693         help
1694           If you say yes here you get support for the TPS6586X series of
1695           Power Management chips.
1696           This driver provides common support for accessing the device,
1697           additional drivers must be enabled in order to use the
1698           functionality of the device.
1699
1700           This driver can also be built as a module.  If so, the module
1701           will be called tps6586x.
1702
1703 config MFD_TPS65910
1704         bool "TI TPS65910 Power Management chip"
1705         depends on I2C=y
1706         depends on GPIOLIB || COMPILE_TEST
1707         select MFD_CORE
1708         select REGMAP_I2C
1709         select REGMAP_IRQ
1710         select IRQ_DOMAIN
1711         help
1712           if you say yes here you get support for the TPS65910 series of
1713           Power Management chips.
1714
1715 config MFD_TPS65912
1716         tristate
1717         select MFD_CORE
1718         select REGMAP
1719         select REGMAP_IRQ
1720
1721 config MFD_TPS65912_I2C
1722         tristate "TI TPS65912 Power Management chip with I2C"
1723         select MFD_TPS65912
1724         select REGMAP_I2C
1725         depends on I2C
1726         help
1727           If you say yes here you get support for the TPS65912 series of
1728           PM chips with I2C interface.
1729
1730 config MFD_TPS65912_SPI
1731         tristate "TI TPS65912 Power Management chip with SPI"
1732         select MFD_TPS65912
1733         select REGMAP_SPI
1734         depends on SPI_MASTER
1735         help
1736           If you say yes here you get support for the TPS65912 series of
1737           PM chips with SPI interface.
1738
1739 config MFD_TPS6594
1740         tristate
1741         select MFD_CORE
1742         select REGMAP
1743         select REGMAP_IRQ
1744
1745 config MFD_TPS6594_I2C
1746         tristate "TI TPS6594 Power Management chip with I2C"
1747         select MFD_TPS6594
1748         select REGMAP_I2C
1749         select CRC8
1750         depends on I2C
1751         help
1752           If you say yes here you get support for the TPS6594 series of
1753           PM chips with I2C interface.
1754
1755           This driver can also be built as a module.  If so, the module
1756           will be called tps6594-i2c.
1757
1758 config MFD_TPS6594_SPI
1759         tristate "TI TPS6594 Power Management chip with SPI"
1760         select MFD_TPS6594
1761         select REGMAP_SPI
1762         select CRC8
1763         depends on SPI_MASTER
1764         help
1765           If you say yes here you get support for the TPS6594 series of
1766           PM chips with SPI interface.
1767
1768           This driver can also be built as a module.  If so, the module
1769           will be called tps6594-spi.
1770
1771 config TWL4030_CORE
1772         bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 Support"
1773         depends on I2C=y
1774         select IRQ_DOMAIN
1775         select REGMAP_I2C
1776         help
1777           Say yes here if you have TWL4030 / TWL6030 family chip on your board.
1778           This core driver provides register access and IRQ handling
1779           facilities, and registers devices for the various functions
1780           so that function-specific drivers can bind to them.
1781
1782           These multi-function chips are found on many OMAP2 and OMAP3
1783           boards, providing power management, RTC, GPIO, keypad, a
1784           high speed USB OTG transceiver, an audio codec (on most
1785           versions) and many other features.
1786
1787 config TWL4030_POWER
1788         bool "TI TWL4030 power resources"
1789         depends on TWL4030_CORE && ARM
1790         help
1791           Say yes here if you want to use the power resources on the
1792           TWL4030 family chips.  Most of these resources are regulators,
1793           which have a separate driver; some are control signals, such
1794           as clock request handshaking.
1795
1796           This driver uses board-specific data to initialize the resources
1797           and load scripts controlling which resources are switched off/on
1798           or reset when a sleep, wakeup or warm reset event occurs.
1799
1800 config MFD_TWL4030_AUDIO
1801         bool "TI TWL4030 Audio"
1802         depends on TWL4030_CORE
1803         select MFD_CORE
1804         default n
1805
1806 config TWL6040_CORE
1807         bool "TI TWL6040 audio codec"
1808         depends on I2C=y
1809         select MFD_CORE
1810         select REGMAP_I2C
1811         select REGMAP_IRQ
1812         default n
1813         help
1814           Say yes here if you want support for Texas Instruments TWL6040 audio
1815           codec.
1816           This driver provides common support for accessing the device,
1817           additional drivers must be enabled in order to use the
1818           functionality of the device (audio, vibra).
1819
1820 config MENELAUS
1821         bool "TI TWL92330/Menelaus PM chip"
1822         depends on I2C=y && ARCH_OMAP2
1823         help
1824           If you say yes here you get support for the Texas Instruments
1825           TWL92330/Menelaus Power Management chip. This include voltage
1826           regulators, Dual slot memory card transceivers, real-time clock
1827           and other features that are often used in portable devices like
1828           cell phones and PDAs.
1829
1830 config MFD_WL1273_CORE
1831         tristate "TI WL1273 FM radio"
1832         depends on I2C
1833         select MFD_CORE
1834         default n
1835         help
1836           This is the core driver for the TI WL1273 FM radio. This MFD
1837           driver connects the radio-wl1273 V4L2 module and the wl1273
1838           audio codec.
1839
1840 config MFD_LM3533
1841         tristate "TI/National Semiconductor LM3533 Lighting Power chip"
1842         depends on I2C
1843         select MFD_CORE
1844         select REGMAP_I2C
1845         help
1846           Say yes here to enable support for National Semiconductor / TI
1847           LM3533 Lighting Power chips.
1848
1849           This driver provides common support for accessing the device;
1850           additional drivers must be enabled in order to use the LED,
1851           backlight or ambient-light-sensor functionality of the device.
1852
1853 config MFD_TIMBERDALE
1854         tristate "Timberdale FPGA"
1855         select MFD_CORE
1856         depends on PCI && GPIOLIB && (X86_32 || COMPILE_TEST)
1857         help
1858         This is the core driver for the timberdale FPGA. This device is a
1859         multifunction device which exposes numerous platform devices.
1860
1861         The timberdale FPGA can be found on the Intel Atom development board
1862         for in-vehicle infontainment, called Russellville.
1863
1864 config MFD_TC3589X
1865         bool "Toshiba TC35892 and variants"
1866         depends on I2C=y
1867         depends on OF
1868         select MFD_CORE
1869         help
1870           Support for the Toshiba TC35892 and variants I/O Expander.
1871
1872           This driver provides common support for accessing the device,
1873           additional drivers must be enabled in order to use the
1874           functionality of the device.
1875
1876 config MFD_TQMX86
1877         tristate "TQ-Systems IO controller TQMX86"
1878         select MFD_CORE
1879         help
1880           Say yes here to enable support for various functions of the
1881           TQ-Systems IO controller and watchdog device, found on their
1882           ComExpress CPU modules.
1883
1884 config MFD_VX855
1885         tristate "VIA VX855/VX875 integrated south bridge"
1886         depends on PCI
1887         select MFD_CORE
1888         help
1889           Say yes here to enable support for various functions of the
1890           VIA VX855/VX875 south bridge. You will need to enable the vx855_spi
1891           and/or vx855_gpio drivers for this to do anything useful.
1892
1893 config MFD_LOCHNAGAR
1894         bool "Cirrus Logic Lochnagar Audio Development Board"
1895         select MFD_CORE
1896         select REGMAP_I2C
1897         depends on I2C=y && OF
1898         help
1899           Support for Cirrus Logic Lochnagar audio development board.
1900
1901 config MFD_ARIZONA
1902         select REGMAP
1903         select REGMAP_IRQ
1904         select MFD_CORE
1905         tristate
1906
1907 config MFD_ARIZONA_I2C
1908         tristate "Cirrus Logic/Wolfson Microelectronics Arizona platform with I2C"
1909         select MFD_ARIZONA
1910         select REGMAP_I2C
1911         depends on I2C
1912         help
1913           Support for the Cirrus Logic/Wolfson Microelectronics Arizona platform
1914           audio SoC core functionality controlled via I2C.
1915
1916 config MFD_ARIZONA_SPI
1917         tristate "Cirrus Logic/Wolfson Microelectronics Arizona platform with SPI"
1918         select MFD_ARIZONA
1919         select REGMAP_SPI
1920         depends on SPI_MASTER
1921         help
1922           Support for the Cirrus Logic/Wolfson Microelectronics Arizona platform
1923           audio SoC core functionality controlled via SPI.
1924
1925 config MFD_CS47L24
1926         bool "Cirrus Logic CS47L24 and WM1831"
1927         depends on MFD_ARIZONA
1928         help
1929           Support for Cirrus Logic CS47L24 and WM1831 low power audio SoC
1930
1931 config MFD_WM5102
1932         bool "Wolfson Microelectronics WM5102"
1933         depends on MFD_ARIZONA
1934         help
1935           Support for Wolfson Microelectronics WM5102 low power audio SoC
1936
1937 config MFD_WM5110
1938         bool "Wolfson Microelectronics WM5110 and WM8280/WM8281"
1939         depends on MFD_ARIZONA
1940         help
1941           Support for Wolfson Microelectronics WM5110 and WM8280/WM8281
1942           low power audio SoC
1943
1944 config MFD_WM8997
1945         bool "Wolfson Microelectronics WM8997"
1946         depends on MFD_ARIZONA
1947         help
1948           Support for Wolfson Microelectronics WM8997 low power audio SoC
1949
1950 config MFD_WM8998
1951         bool "Wolfson Microelectronics WM8998"
1952         depends on MFD_ARIZONA
1953         help
1954           Support for Wolfson Microelectronics WM8998 low power audio SoC
1955
1956 config MFD_WM8400
1957         bool "Wolfson Microelectronics WM8400"
1958         select MFD_CORE
1959         depends on I2C=y
1960         select REGMAP_I2C
1961         help
1962           Support for the Wolfson Microelecronics WM8400 PMIC and audio
1963           CODEC.  This driver provides common support for accessing
1964           the device, additional drivers must be enabled in order to use
1965           the functionality of the device.
1966
1967 config MFD_WM831X
1968         bool
1969
1970 config MFD_WM831X_I2C
1971         bool "Wolfson Microelectronics WM831x/2x PMICs with I2C"
1972         select MFD_CORE
1973         select MFD_WM831X
1974         select REGMAP_I2C
1975         select IRQ_DOMAIN
1976         depends on I2C=y
1977         help
1978           Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1979           when controlled using I2C.  This driver provides common support
1980           for accessing the device, additional drivers must be enabled in
1981           order to use the functionality of the device.
1982
1983 config MFD_WM831X_SPI
1984         bool "Wolfson Microelectronics WM831x/2x PMICs with SPI"
1985         select MFD_CORE
1986         select MFD_WM831X
1987         select REGMAP_SPI
1988         select IRQ_DOMAIN
1989         depends on SPI_MASTER
1990         help
1991           Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1992           when controlled using SPI.  This driver provides common support
1993           for accessing the device, additional drivers must be enabled in
1994           order to use the functionality of the device.
1995
1996 config MFD_WM8350
1997         bool
1998
1999 config MFD_WM8350_I2C
2000         bool "Wolfson Microelectronics WM8350 with I2C"
2001         select MFD_WM8350
2002         select REGMAP_I2C
2003         depends on I2C=y
2004         help
2005           The WM8350 is an integrated audio and power management
2006           subsystem with watchdog and RTC functionality for embedded
2007           systems.  This option enables core support for the WM8350 with
2008           I2C as the control interface.  Additional options must be
2009           selected to enable support for the functionality of the chip.
2010
2011 config MFD_WM8994
2012         tristate "Wolfson Microelectronics WM8994"
2013         select MFD_CORE
2014         select REGMAP_I2C
2015         select REGMAP_IRQ
2016         depends on I2C
2017         help
2018           The WM8994 is a highly integrated hi-fi CODEC designed for
2019           smartphone applications.  As well as audio functionality it
2020           has on board GPIO and regulator functionality which is
2021           supported via the relevant subsystems.  This driver provides
2022           core support for the WM8994, in order to use the actual
2023           functionality of the device other drivers must be enabled.
2024
2025 config MFD_WM97xx
2026         tristate "Wolfson Microelectronics WM97xx"
2027         select MFD_CORE
2028         select REGMAP_AC97
2029         select AC97_BUS_COMPAT
2030         depends on AC97_BUS_NEW
2031         help
2032           The WM9705, WM9712 and WM9713 is a highly integrated hi-fi CODEC
2033           designed for smartphone applications.  As well as audio functionality
2034           it has on board GPIO and a touchscreen functionality which is
2035           supported via the relevant subsystems.  This driver provides core
2036           support for the WM97xx, in order to use the actual functionality of
2037           the device other drivers must be enabled.
2038
2039 config MFD_STW481X
2040         tristate "Support for ST Microelectronics STw481x"
2041         depends on I2C && (ARCH_NOMADIK || COMPILE_TEST)
2042         select REGMAP_I2C
2043         select MFD_CORE
2044         help
2045           Select this option to enable the STw481x chip driver used
2046           in various ST Microelectronics and ST-Ericsson embedded
2047           Nomadik series.
2048
2049 config MFD_ROHM_BD718XX
2050         tristate "ROHM BD71837 Power Management IC"
2051         depends on I2C=y
2052         depends on OF
2053         select REGMAP_I2C
2054         select REGMAP_IRQ
2055         select MFD_CORE
2056         help
2057           Select this option to get support for the ROHM BD71837
2058           Power Management ICs. BD71837 is designed to power processors like
2059           NXP i.MX8. It contains 8 BUCK outputs and 7 LDOs, voltage monitoring
2060           and emergency shut down as well as 32,768KHz clock output.
2061
2062 config MFD_ROHM_BD71828
2063         tristate "ROHM BD71828 and BD71815 Power Management IC"
2064         depends on I2C=y
2065         depends on OF
2066         select REGMAP_I2C
2067         select REGMAP_IRQ
2068         select MFD_CORE
2069         help
2070           Select this option to get support for the ROHM BD71828 and BD71815
2071           Power Management ICs. BD71828GW and BD71815AGW are single-chip power
2072           management ICs mainly for battery-powered portable devices.
2073           The BD71828 integrates 7 buck converters and 7 LDOs. The BD71815
2074           has 5 bucks, 7 LDOs, and a boost for driving LEDs. Both ICs provide
2075           also a single-cell linear charger, a Coulomb counter, a real-time
2076           clock (RTC), GPIOs and a 32.768 kHz clock gate.
2077
2078 config MFD_ROHM_BD957XMUF
2079         tristate "ROHM BD9576MUF and BD9573MUF Power Management ICs"
2080         depends on I2C=y
2081         depends on OF
2082         select REGMAP_I2C
2083         select REGMAP_IRQ
2084         select MFD_CORE
2085         help
2086           Select this option to get support for the ROHM BD9576MUF and
2087           BD9573MUF Power Management ICs. BD9576 and BD9573 are primarily
2088           designed to be used to power R-Car series processors.
2089
2090 config MFD_STM32_LPTIMER
2091         tristate "Support for STM32 Low-Power Timer"
2092         depends on (ARCH_STM32 && OF) || COMPILE_TEST
2093         select MFD_CORE
2094         select REGMAP
2095         select REGMAP_MMIO
2096         help
2097           Select this option to enable STM32 Low-Power Timer driver
2098           used for PWM, IIO Trigger, IIO Encoder and Counter. Shared
2099           resources are also dealt with here.
2100
2101           To compile this driver as a module, choose M here: the
2102           module will be called stm32-lptimer.
2103
2104 config MFD_STM32_TIMERS
2105         tristate "Support for STM32 Timers"
2106         depends on (ARCH_STM32 && OF) || COMPILE_TEST
2107         select MFD_CORE
2108         select REGMAP
2109         select REGMAP_MMIO
2110         help
2111           Select this option to enable STM32 timers driver used
2112           for PWM and IIO Timer. This driver allow to share the
2113           registers between the others drivers.
2114
2115 config MFD_STPMIC1
2116         tristate "Support for STPMIC1 PMIC"
2117         depends on (I2C=y && OF)
2118         select REGMAP_I2C
2119         select REGMAP_IRQ
2120         select MFD_CORE
2121         help
2122           Support for ST Microelectronics STPMIC1 PMIC. STPMIC1 has power on
2123           key, watchdog and regulator functionalities which are supported via
2124           the relevant subsystems. This driver provides core support for the
2125           STPMIC1. In order to use the actual functionality of the device other
2126           drivers must be enabled.
2127
2128           To compile this driver as a module, choose M here: the
2129           module will be called stpmic1.
2130
2131 config MFD_STMFX
2132         tristate "Support for STMicroelectronics Multi-Function eXpander (STMFX)"
2133         depends on I2C
2134         depends on OF
2135         select MFD_CORE
2136         select REGMAP_I2C
2137         help
2138           Support for the STMicroelectronics Multi-Function eXpander.
2139
2140           This driver provides common support for accessing the device,
2141           additional drivers must be enabled in order to use the functionality
2142           of the device.
2143
2144 config MFD_WCD934X
2145         tristate "Support for WCD9340/WCD9341 Codec"
2146         depends on SLIMBUS
2147         select REGMAP
2148         select REGMAP_SLIMBUS
2149         select REGMAP_IRQ
2150         select MFD_CORE
2151         help
2152           Support for the Qualcomm WCD9340/WCD9341 Codec.
2153           This driver provides common support WCD934x audio codec and its
2154           associated Pin Controller, Soundwire Controller and Audio codec.
2155
2156 config MFD_ATC260X
2157         tristate
2158         select MFD_CORE
2159         select REGMAP
2160         select REGMAP_IRQ
2161
2162 config MFD_ATC260X_I2C
2163         tristate "Actions Semi ATC260x PMICs with I2C"
2164         select MFD_ATC260X
2165         select REGMAP_I2C
2166         depends on I2C
2167         help
2168           Support for the Actions Semi ATC260x PMICs controlled via I2C.
2169
2170           This driver provides common support for accessing the ATC2603C
2171           and ATC2609A chip variants, additional drivers must be enabled
2172           in order to use the functionality of the device.
2173
2174 config MFD_KHADAS_MCU
2175         tristate "Support for Khadas System control Microcontroller"
2176         depends on I2C
2177         depends on ARCH_MESON || ARCH_ROCKCHIP || COMPILE_TEST
2178         select MFD_CORE
2179         select REGMAP_I2C
2180         help
2181           Support for the Khadas System control Microcontroller interface
2182           present on their VIM and Edge boards.
2183
2184           This Microcontroller is present on the Khadas VIM1, VIM2, VIM3 and
2185           Edge boards.
2186
2187           It provides multiple boot control features like password check,
2188           power-on options, power-off control and system FAN control on recent
2189           boards.
2190
2191           This driver provides common support for accessing the device,
2192           additional drivers must be enabled in order to use the functionality
2193           of the device.
2194
2195 config MFD_ACER_A500_EC
2196         tristate "Support for Acer Iconia Tab A500 Embedded Controller"
2197         depends on I2C
2198         depends on (ARCH_TEGRA_2x_SOC && OF) || COMPILE_TEST
2199         select MFD_CORE
2200         select REGMAP
2201         help
2202           Support for Embedded Controller found on Acer Iconia Tab A500.
2203           The controller itself is ENE KB930, it is running firmware
2204           customized for the specific needs of the Acer A500 hardware.
2205
2206 config MFD_QCOM_PM8008
2207         tristate "QCOM PM8008 Power Management IC"
2208         depends on I2C && OF
2209         select REGMAP_I2C
2210         select REGMAP_IRQ
2211         help
2212           Select this option to get support for the Qualcomm Technologies, Inc.
2213           PM8008 PMIC chip. PM8008 is a dedicated camera PMIC that integrates
2214           all the necessary power management, housekeeping, and interface
2215           support functions into a single IC. This driver provides common
2216           support for accessing the device by instantiating all the child nodes
2217           under it in the device tree. Additional drivers must be enabled in
2218           order to use the functionality of the device.
2219
2220 menu "Multimedia Capabilities Port drivers"
2221         depends on ARCH_SA1100
2222
2223 config MCP
2224         tristate
2225
2226 # Interface drivers
2227 config MCP_SA11X0
2228         tristate "Support SA11x0 MCP interface"
2229         depends on ARCH_SA1100
2230         select MCP
2231
2232 # Chip drivers
2233 config MCP_UCB1200
2234         tristate "Support for UCB1200 / UCB1300"
2235         depends on MCP_SA11X0
2236         select MCP
2237
2238 config MCP_UCB1200_TS
2239         tristate "Touchscreen interface support"
2240         depends on MCP_UCB1200 && INPUT
2241
2242 endmenu
2243
2244 config MFD_VEXPRESS_SYSREG
2245         tristate "Versatile Express System Registers"
2246         depends on VEXPRESS_CONFIG && GPIOLIB
2247         default y
2248         select GPIO_GENERIC_PLATFORM
2249         select MFD_CORE
2250         select MFD_SYSCON
2251         help
2252           System Registers are the platform configuration block
2253           on the ARM Ltd. Versatile Express board.
2254
2255 config RAVE_SP_CORE
2256         tristate "RAVE SP MCU core driver"
2257         depends on SERIAL_DEV_BUS
2258         select CRC_CCITT
2259         help
2260           Select this to get support for the Supervisory Processor
2261           device found on several devices in RAVE line of hardware.
2262
2263 config SGI_MFD_IOC3
2264         bool "SGI IOC3 core driver"
2265         depends on PCI && MIPS && 64BIT
2266         select MFD_CORE
2267         help
2268           This option enables basic support for the SGI IOC3-based
2269           controller cards.  This option does not enable any specific
2270           functions on such a card, but provides necessary infrastructure
2271           for other drivers to utilize.
2272
2273           If you have an SGI Origin, Octane, or a PCI IOC3 card,
2274           then say Y. Otherwise say N.
2275
2276 config MFD_INTEL_M10_BMC_CORE
2277         tristate
2278         select MFD_CORE
2279         select REGMAP
2280         default n
2281
2282 config MFD_INTEL_M10_BMC_SPI
2283         tristate "Intel MAX 10 Board Management Controller with SPI"
2284         depends on SPI_MASTER
2285         select MFD_INTEL_M10_BMC_CORE
2286         select REGMAP_SPI_AVMM
2287         help
2288           Support for the Intel MAX 10 board management controller using the
2289           SPI interface.
2290
2291           This driver provides common support for accessing the device,
2292           additional drivers must be enabled in order to use the functionality
2293           of the device.
2294
2295 config MFD_INTEL_M10_BMC_PMCI
2296         tristate "Intel MAX 10 Board Management Controller with PMCI"
2297         depends on FPGA_DFL
2298         select MFD_INTEL_M10_BMC_CORE
2299         select REGMAP
2300         help
2301           Support for the Intel MAX 10 board management controller via PMCI.
2302
2303           This driver provides common support for accessing the device,
2304           additional drivers must be enabled in order to use the functionality
2305           of the device.
2306
2307 config MFD_RSMU_I2C
2308         tristate "Renesas Synchronization Management Unit with I2C"
2309         depends on I2C && OF
2310         select MFD_CORE
2311         select REGMAP_I2C
2312         help
2313           Support for the Renesas Synchronization Management Unit, such as
2314           Clockmatrix and 82P33XXX series. This option supports I2C as
2315           the control interface.
2316
2317           This driver provides common support for accessing the device.
2318           Additional drivers must be enabled in order to use the functionality
2319           of the device.
2320
2321 config MFD_RSMU_SPI
2322         tristate "Renesas Synchronization Management Unit with SPI"
2323         depends on SPI && OF
2324         select MFD_CORE
2325         select REGMAP_SPI
2326         help
2327           Support for the Renesas Synchronization Management Unit, such as
2328           Clockmatrix and 82P33XXX series. This option supports SPI as
2329           the control interface.
2330
2331           This driver provides common support for accessing the device.
2332           Additional drivers must be enabled in order to use the functionality
2333           of the device.
2334
2335 endmenu
2336 endif