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