]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - drivers/mfd/Kconfig
Merge tag 'for_linus-3.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jwess...
[mirror_ubuntu-artful-kernel.git] / drivers / mfd / Kconfig
1 #
2 # Multifunction miscellaneous devices
3 #
4
5 if HAS_IOMEM
6 menu "Multifunction device drivers"
7
8 config MFD_CORE
9 tristate
10 select IRQ_DOMAIN
11 default n
12
13 config MFD_CS5535
14 tristate "AMD CS5535 and CS5536 southbridge core functions"
15 select MFD_CORE
16 depends on PCI && (X86_32 || (X86 && COMPILE_TEST))
17 ---help---
18 This is the core driver for CS5535/CS5536 MFD functions. This is
19 necessary for using the board's GPIO and MFGPT functionality.
20
21 config MFD_AS3711
22 bool "AMS AS3711"
23 select MFD_CORE
24 select REGMAP_I2C
25 select REGMAP_IRQ
26 depends on I2C=y
27 help
28 Support for the AS3711 PMIC from AMS
29
30 config MFD_AS3722
31 bool "ams AS3722 Power Management IC"
32 select MFD_CORE
33 select REGMAP_I2C
34 select REGMAP_IRQ
35 depends on I2C=y && OF
36 help
37 The ams AS3722 is a compact system PMU suitable for mobile phones,
38 tablets etc. It has 4 DC/DC step-down regulators, 3 DC/DC step-down
39 controllers, 11 LDOs, RTC, automatic battery, temperature and
40 over current monitoring, GPIOs, ADC and a watchdog.
41
42 config PMIC_ADP5520
43 bool "Analog Devices ADP5520/01 MFD PMIC Core Support"
44 depends on I2C=y
45 help
46 Say yes here to add support for Analog Devices AD5520 and ADP5501,
47 Multifunction Power Management IC. This includes
48 the I2C driver and the core APIs _only_, you have to select
49 individual components like LCD backlight, LEDs, GPIOs and Kepad
50 under the corresponding menus.
51
52 config MFD_AAT2870_CORE
53 bool "AnalogicTech AAT2870"
54 select MFD_CORE
55 depends on I2C=y && GPIOLIB
56 help
57 If you say yes here you get support for the AAT2870.
58 This driver provides common support for accessing the device,
59 additional drivers must be enabled in order to use the
60 functionality of the device.
61
62 config MFD_ATMEL_HLCDC
63 tristate "Atmel HLCDC (High-end LCD Controller)"
64 select MFD_CORE
65 select REGMAP_MMIO
66 depends on OF
67 help
68 If you say yes here you get support for the HLCDC block.
69 This driver provides common support for accessing the device,
70 additional drivers must be enabled in order to use the
71 functionality of the device.
72
73 config MFD_BCM590XX
74 tristate "Broadcom BCM590xx PMUs"
75 select MFD_CORE
76 select REGMAP_I2C
77 depends on I2C
78 help
79 Support for the BCM590xx PMUs from Broadcom
80
81 config MFD_AXP20X
82 bool "X-Powers AXP20X"
83 select MFD_CORE
84 select REGMAP_I2C
85 select REGMAP_IRQ
86 depends on I2C=y
87 help
88 If you say Y here you get support for the X-Powers AXP202, AXP209 and
89 AXP288 power management IC (PMIC).
90 This driver include only the core APIs. You have to select individual
91 components like regulators or the PEK (Power Enable Key) under the
92 corresponding menus.
93
94 config MFD_CROS_EC
95 tristate "ChromeOS Embedded Controller"
96 select MFD_CORE
97 help
98 If you say Y here you get support for the ChromeOS Embedded
99 Controller (EC) providing keyboard, battery and power services.
100 You also need to enable the driver for the bus you are using. The
101 protocol for talking to the EC is defined by the bus driver.
102
103 config MFD_CROS_EC_I2C
104 tristate "ChromeOS Embedded Controller (I2C)"
105 depends on MFD_CROS_EC && I2C
106
107 help
108 If you say Y here, you get support for talking to the ChromeOS
109 EC through an I2C bus. This uses a simple byte-level protocol with
110 a checksum. Failing accesses will be retried three times to
111 improve reliability.
112
113 config MFD_CROS_EC_SPI
114 tristate "ChromeOS Embedded Controller (SPI)"
115 depends on MFD_CROS_EC && SPI && OF
116
117 ---help---
118 If you say Y here, you get support for talking to the ChromeOS EC
119 through a SPI bus, using a byte-level protocol. Since the EC's
120 response time cannot be guaranteed, we support ignoring
121 'pre-amble' bytes before the response actually starts.
122
123 config MFD_ASIC3
124 bool "Compaq ASIC3"
125 depends on GPIOLIB && ARM
126 select MFD_CORE
127 ---help---
128 This driver supports the ASIC3 multifunction chip found on many
129 PDAs (mainly iPAQ and HTC based ones)
130
131 config PMIC_DA903X
132 bool "Dialog Semiconductor DA9030/DA9034 PMIC Support"
133 depends on I2C=y
134 help
135 Say yes here to add support for Dialog Semiconductor DA9030 (a.k.a
136 ARAVA) and DA9034 (a.k.a MICCO), these are Power Management IC
137 usually found on PXA processors-based platforms. This includes
138 the I2C driver and the core APIs _only_, you have to select
139 individual components like LCD backlight, voltage regulators,
140 LEDs and battery-charger under the corresponding menus.
141
142 config PMIC_DA9052
143 bool
144 select MFD_CORE
145
146 config MFD_DA9052_SPI
147 bool "Dialog Semiconductor DA9052/53 PMIC variants with SPI"
148 select REGMAP_SPI
149 select REGMAP_IRQ
150 select PMIC_DA9052
151 depends on SPI_MASTER=y
152 help
153 Support for the Dialog Semiconductor DA9052 PMIC
154 when controlled using SPI. This driver provides common support
155 for accessing the device, additional drivers must be enabled in
156 order to use the functionality of the device.
157
158 config MFD_DA9052_I2C
159 bool "Dialog Semiconductor DA9052/53 PMIC variants with I2C"
160 select REGMAP_I2C
161 select REGMAP_IRQ
162 select PMIC_DA9052
163 depends on I2C=y
164 help
165 Support for the Dialog Semiconductor DA9052 PMIC
166 when controlled using I2C. This driver provides common support
167 for accessing the device, additional drivers must be enabled in
168 order to use the functionality of the device.
169
170 config MFD_DA9055
171 bool "Dialog Semiconductor DA9055 PMIC Support"
172 select REGMAP_I2C
173 select REGMAP_IRQ
174 select MFD_CORE
175 depends on I2C=y
176 help
177 Say yes here for support of Dialog Semiconductor DA9055. This is
178 a Power Management IC. This driver provides common support for
179 accessing the device as well as the I2C interface to the chip itself.
180 Additional drivers must be enabled in order to use the functionality
181 of the device.
182
183 This driver can be built as a module. If built as a module it will be
184 called "da9055"
185
186 config MFD_DA9063
187 bool "Dialog Semiconductor DA9063 PMIC Support"
188 select MFD_CORE
189 select REGMAP_I2C
190 select REGMAP_IRQ
191 depends on I2C=y
192 help
193 Say yes here for support for the Dialog Semiconductor DA9063 PMIC.
194 This includes the I2C driver and core APIs.
195 Additional drivers must be enabled in order to use the functionality
196 of the device.
197
198 config MFD_DLN2
199 tristate "Diolan DLN2 support"
200 select MFD_CORE
201 depends on USB
202 help
203 This adds support for Diolan USB-I2C/SPI/GPIO Master Adapter
204 DLN-2. Additional drivers such as I2C_DLN2, GPIO_DLN2,
205 etc. must be enabled in order to use the functionality of
206 the device.
207
208 config MFD_MC13XXX
209 tristate
210 depends on (SPI_MASTER || I2C)
211 select MFD_CORE
212 select REGMAP_IRQ
213 help
214 Enable support for the Freescale MC13783 and MC13892 PMICs.
215 This driver provides common support for accessing the device,
216 additional drivers must be enabled in order to use the
217 functionality of the device.
218
219 config MFD_MC13XXX_SPI
220 tristate "Freescale MC13783 and MC13892 SPI interface"
221 depends on SPI_MASTER
222 select REGMAP_SPI
223 select MFD_MC13XXX
224 help
225 Select this if your MC13xxx is connected via an SPI bus.
226
227 config MFD_MC13XXX_I2C
228 tristate "Freescale MC13892 I2C interface"
229 depends on I2C
230 select REGMAP_I2C
231 select MFD_MC13XXX
232 help
233 Select this if your MC13xxx is connected via an I2C bus.
234
235 config MFD_HI6421_PMIC
236 tristate "HiSilicon Hi6421 PMU/Codec IC"
237 depends on OF
238 select MFD_CORE
239 select REGMAP_MMIO
240 help
241 Add support for HiSilicon Hi6421 PMIC. Hi6421 includes multi-
242 functions, such as regulators, RTC, codec, Coulomb counter, etc.
243 This driver includes core APIs _only_. You have to select
244 individul components like voltage regulators under corresponding
245 menus in order to enable them.
246 We communicate with the Hi6421 via memory-mapped I/O.
247
248 config HTC_EGPIO
249 bool "HTC EGPIO support"
250 depends on GPIOLIB && ARM
251 help
252 This driver supports the CPLD egpio chip present on
253 several HTC phones. It provides basic support for input
254 pins, output pins, and irqs.
255
256 config HTC_PASIC3
257 tristate "HTC PASIC3 LED/DS1WM chip support"
258 select MFD_CORE
259 help
260 This core driver provides register access for the LED/DS1WM
261 chips labeled "AIC2" and "AIC3", found on HTC Blueangel and
262 HTC Magician devices, respectively. Actual functionality is
263 handled by the leds-pasic3 and ds1wm drivers.
264
265 config HTC_I2CPLD
266 bool "HTC I2C PLD chip support"
267 depends on I2C=y && GPIOLIB
268 help
269 If you say yes here you get support for the supposed CPLD
270 found on omap850 HTC devices like the HTC Wizard and HTC Herald.
271 This device provides input and output GPIOs through an I2C
272 interface to one or more sub-chips.
273
274 config LPC_ICH
275 tristate "Intel ICH LPC"
276 depends on PCI
277 select MFD_CORE
278 help
279 The LPC bridge function of the Intel ICH provides support for
280 many functional units. This driver provides needed support for
281 other drivers to control these functions, currently GPIO and
282 watchdog.
283
284 config LPC_SCH
285 tristate "Intel SCH LPC"
286 depends on PCI
287 select MFD_CORE
288 help
289 LPC bridge function of the Intel SCH provides support for
290 System Management Bus and General Purpose I/O.
291
292 config INTEL_SOC_PMIC
293 bool "Support for Intel Atom SoC PMIC"
294 depends on I2C=y
295 select MFD_CORE
296 select REGMAP_I2C
297 select REGMAP_IRQ
298 help
299 Select this option to enable support for the PMIC device
300 on some Intel SoC systems. The PMIC provides ADC, GPIO,
301 thermal, charger and related power management functions
302 on these systems.
303
304 config MFD_INTEL_MSIC
305 bool "Intel MSIC"
306 depends on INTEL_SCU_IPC
307 select MFD_CORE
308 help
309 Select this option to enable access to Intel MSIC (Avatele
310 Passage) chip. This chip embeds audio, battery, GPIO, etc.
311 devices used in Intel Medfield platforms.
312
313 config MFD_IPAQ_MICRO
314 bool "Atmel Micro ASIC (iPAQ h3100/h3600/h3700) Support"
315 depends on SA1100_H3100 || SA1100_H3600
316 select MFD_CORE
317 help
318 Select this to get support for the Microcontroller found in
319 the Compaq iPAQ handheld computers. This is an Atmel
320 AT90LS8535 microcontroller flashed with a special iPAQ
321 firmware using the custom protocol implemented in this driver.
322
323 config MFD_JANZ_CMODIO
324 tristate "Janz CMOD-IO PCI MODULbus Carrier Board"
325 select MFD_CORE
326 depends on PCI
327 help
328 This is the core driver for the Janz CMOD-IO PCI MODULbus
329 carrier board. This device is a PCI to MODULbus bridge which may
330 host many different types of MODULbus daughterboards, including
331 CAN and GPIO controllers.
332
333 config MFD_JZ4740_ADC
334 bool "Janz JZ4740 ADC core"
335 select MFD_CORE
336 select GENERIC_IRQ_CHIP
337 depends on MACH_JZ4740
338 help
339 Say yes here if you want support for the ADC unit in the JZ4740 SoC.
340 This driver is necessary for jz4740-battery and jz4740-hwmon driver.
341
342 config MFD_KEMPLD
343 tristate "Kontron module PLD device"
344 select MFD_CORE
345 help
346 This is the core driver for the PLD (Programmable Logic Device) found
347 on some Kontron ETX and COMexpress (ETXexpress) modules. The PLD
348 device may provide functions like watchdog, GPIO, UART and I2C bus.
349
350 The following modules are supported:
351 * COMe-bHL6
352 * COMe-bIP#
353 * COMe-bPC2 (ETXexpress-PC)
354 * COMe-bSC# (ETXexpress-SC T#)
355 * COMe-cBT6
356 * COMe-cCT6
357 * COMe-cDC2 (microETXexpress-DC)
358 * COMe-cHL6
359 * COMe-cPC2 (microETXexpress-PC)
360 * COMe-mBT10
361 * COMe-mCT10
362 * COMe-mTT10 (nanoETXexpress-TT)
363 * ETX-OH
364
365 This driver can also be built as a module. If so, the module
366 will be called kempld-core.
367
368 config MFD_88PM800
369 tristate "Marvell 88PM800"
370 depends on I2C=y
371 select REGMAP_I2C
372 select REGMAP_IRQ
373 select MFD_CORE
374 help
375 This supports for Marvell 88PM800 Power Management IC.
376 This includes the I2C driver and the core APIs _only_, you have to
377 select individual components like voltage regulators, RTC and
378 battery-charger under the corresponding menus.
379
380 config MFD_88PM805
381 tristate "Marvell 88PM805"
382 depends on I2C=y
383 select REGMAP_I2C
384 select REGMAP_IRQ
385 select MFD_CORE
386 help
387 This supports for Marvell 88PM805 Power Management IC. This includes
388 the I2C driver and the core APIs _only_, you have to select individual
389 components like codec device, headset/Mic device under the
390 corresponding menus.
391
392 config MFD_88PM860X
393 bool "Marvell 88PM8606/88PM8607"
394 depends on I2C=y
395 select REGMAP_I2C
396 select MFD_CORE
397 help
398 This supports for Marvell 88PM8606/88PM8607 Power Management IC.
399 This includes the I2C driver and the core APIs _only_, you have to
400 select individual components like voltage regulators, RTC and
401 battery-charger under the corresponding menus.
402
403 config MFD_MAX14577
404 bool "Maxim Semiconductor MAX14577/77836 MUIC + Charger Support"
405 depends on I2C=y
406 select MFD_CORE
407 select REGMAP_I2C
408 select REGMAP_IRQ
409 select IRQ_DOMAIN
410 help
411 Say yes here to add support for Maxim Semiconductor MAX14577 and
412 MAX77836 Micro-USB ICs with battery charger.
413 This driver provides common support for accessing the device;
414 additional drivers must be enabled in order to use the functionality
415 of the device.
416
417 config MFD_MAX77686
418 bool "Maxim Semiconductor MAX77686/802 PMIC Support"
419 depends on I2C=y
420 select MFD_CORE
421 select REGMAP_I2C
422 select REGMAP_IRQ
423 select IRQ_DOMAIN
424 help
425 Say yes here to add support for Maxim Semiconductor MAX77686 and
426 MAX77802 which are Power Management IC with an RTC on chip.
427 This driver provides common support for accessing the device;
428 additional drivers must be enabled in order to use the functionality
429 of the device.
430
431 config MFD_MAX77693
432 bool "Maxim Semiconductor MAX77693 PMIC Support"
433 depends on I2C=y
434 select MFD_CORE
435 select REGMAP_I2C
436 select REGMAP_IRQ
437 help
438 Say yes here to add support for Maxim Semiconductor MAX77693.
439 This is a companion Power Management IC with Flash, Haptic, Charger,
440 and MUIC(Micro USB Interface Controller) controls on chip.
441 This driver provides common support for accessing the device;
442 additional drivers must be enabled in order to use the functionality
443 of the device.
444
445 config MFD_MAX8907
446 tristate "Maxim Semiconductor MAX8907 PMIC Support"
447 select MFD_CORE
448 depends on I2C=y
449 select REGMAP_I2C
450 select REGMAP_IRQ
451 help
452 Say yes here to add support for Maxim Semiconductor MAX8907. This is
453 a Power Management IC. This driver provides common support for
454 accessing the device; additional drivers must be enabled in order
455 to use the functionality of the device.
456
457 config MFD_MAX8925
458 bool "Maxim Semiconductor MAX8925 PMIC Support"
459 depends on I2C=y
460 select MFD_CORE
461 help
462 Say yes here to add support for Maxim Semiconductor MAX8925. This is
463 a Power Management IC. This driver provides common support for
464 accessing the device, additional drivers must be enabled in order
465 to use the functionality of the device.
466
467 config MFD_MAX8997
468 bool "Maxim Semiconductor MAX8997/8966 PMIC Support"
469 depends on I2C=y
470 select MFD_CORE
471 select IRQ_DOMAIN
472 help
473 Say yes here to add support for Maxim Semiconductor MAX8997/8966.
474 This is a Power Management IC with RTC, Flash, Fuel Gauge, Haptic,
475 MUIC controls on chip.
476 This driver provides common support for accessing the device;
477 additional drivers must be enabled in order to use the functionality
478 of the device.
479
480 config MFD_MAX8998
481 bool "Maxim Semiconductor MAX8998/National LP3974 PMIC Support"
482 depends on I2C=y
483 select MFD_CORE
484 select IRQ_DOMAIN
485 help
486 Say yes here to add support for Maxim Semiconductor MAX8998 and
487 National Semiconductor LP3974. This is a Power Management IC.
488 This driver provides common support for accessing the device,
489 additional drivers must be enabled in order to use the functionality
490 of the device.
491
492 config MFD_MENF21BMC
493 tristate "MEN 14F021P00 Board Management Controller Support"
494 depends on I2C
495 select MFD_CORE
496 help
497 Say yes here to add support for the MEN 14F021P00 BMC
498 which is a Board Management Controller connected to the I2C bus.
499 The device supports multiple sub-devices like LED, HWMON and WDT.
500 This driver provides common support for accessing the devices;
501 additional drivers must be enabled in order to use the
502 functionality of the BMC device.
503
504 This driver can also be built as a module. If so the module
505 will be called menf21bmc.
506
507 config EZX_PCAP
508 bool "Motorola EZXPCAP Support"
509 depends on SPI_MASTER
510 help
511 This enables the PCAP ASIC present on EZX Phones. This is
512 needed for MMC, TouchScreen, Sound, USB, etc..
513
514 config MFD_VIPERBOARD
515 tristate "Nano River Technologies Viperboard"
516 select MFD_CORE
517 depends on USB
518 default n
519 help
520 Say yes here if you want support for Nano River Technologies
521 Viperboard.
522 There are mfd cell drivers available for i2c master, adc and
523 both gpios found on the board. The spi part does not yet
524 have a driver.
525 You need to select the mfd cell drivers separately.
526 The drivers do not support all features the board exposes.
527
528 config MFD_RETU
529 tristate "Nokia Retu and Tahvo multi-function device"
530 select MFD_CORE
531 depends on I2C
532 select REGMAP_IRQ
533 help
534 Retu and Tahvo are a multi-function devices found on Nokia
535 Internet Tablets (770, N800 and N810).
536
537 config MFD_PCF50633
538 tristate "NXP PCF50633"
539 depends on I2C
540 select REGMAP_I2C
541 help
542 Say yes here if you have NXP PCF50633 chip on your board.
543 This core driver provides register access and IRQ handling
544 facilities, and registers devices for the various functions
545 so that function-specific drivers can bind to them.
546
547 config PCF50633_ADC
548 tristate "NXP PCF50633 ADC"
549 depends on MFD_PCF50633
550 help
551 Say yes here if you want to include support for ADC in the
552 NXP PCF50633 chip.
553
554 config PCF50633_GPIO
555 tristate "NXP PCF50633 GPIO"
556 depends on MFD_PCF50633
557 help
558 Say yes here if you want to include support GPIO for pins on
559 the PCF50633 chip.
560
561 config UCB1400_CORE
562 tristate "Philips UCB1400 Core driver"
563 depends on AC97_BUS
564 depends on GPIOLIB
565 help
566 This enables support for the Philips UCB1400 core functions.
567 The UCB1400 is an AC97 audio codec.
568
569 To compile this driver as a module, choose M here: the
570 module will be called ucb1400_core.
571
572 config MFD_PM8XXX
573 tristate
574
575 config MFD_PM8921_CORE
576 tristate "Qualcomm PM8921 PMIC chip"
577 depends on (ARM || HEXAGON)
578 select IRQ_DOMAIN
579 select MFD_CORE
580 select MFD_PM8XXX
581 select REGMAP
582 help
583 If you say yes to this option, support will be included for the
584 built-in PM8921 PMIC chip.
585
586 This is required if your board has a PM8921 and uses its features,
587 such as: MPPs, GPIOs, regulators, interrupts, and PWM.
588
589 Say M here if you want to include support for PM8921 chip as a module.
590 This will build a module called "pm8921-core".
591
592 config MFD_SPMI_PMIC
593 tristate "Qualcomm SPMI PMICs"
594 depends on ARCH_QCOM || COMPILE_TEST
595 depends on OF
596 depends on SPMI
597 select REGMAP_SPMI
598 help
599 This enables support for the Qualcomm SPMI PMICs.
600 These PMICs are currently used with the Snapdragon 800 series of
601 SoCs. Note, that this will only be useful paired with descriptions
602 of the independent functions as children nodes in the device tree.
603
604 Say M here if you want to include support for the SPMI PMIC
605 series as a module. The module will be called "qcom-spmi-pmic".
606
607 config MFD_RDC321X
608 tristate "RDC R-321x southbridge"
609 select MFD_CORE
610 depends on PCI
611 help
612 Say yes here if you want to have support for the RDC R-321x SoC
613 southbridge which provides access to GPIOs and Watchdog using the
614 southbridge PCI device configuration space.
615
616 config MFD_RTSX_PCI
617 tristate "Realtek PCI-E card reader"
618 depends on PCI
619 select MFD_CORE
620 help
621 This supports for Realtek PCI-Express card reader including rts5209,
622 rts5229, rtl8411, etc. Realtek card reader supports access to many
623 types of memory cards, such as Memory Stick, Memory Stick Pro,
624 Secure Digital and MultiMediaCard.
625
626 config MFD_RTSX_USB
627 tristate "Realtek USB card reader"
628 depends on USB
629 select MFD_CORE
630 help
631 Select this option to get support for Realtek USB 2.0 card readers
632 including RTS5129, RTS5139, RTS5179 and RTS5170.
633 Realtek card reader supports access to many types of memory cards,
634 such as Memory Stick Pro, Secure Digital and MultiMediaCard.
635
636 config MFD_RC5T583
637 bool "Ricoh RC5T583 Power Management system device"
638 depends on I2C=y
639 select MFD_CORE
640 select REGMAP_I2C
641 help
642 Select this option to get support for the RICOH583 Power
643 Management system device.
644 This driver provides common support for accessing the device
645 through i2c interface. The device supports multiple sub-devices
646 like GPIO, interrupts, RTC, LDO and DCDC regulators, onkey.
647 Additional drivers must be enabled in order to use the
648 different functionality of the device.
649
650 config MFD_RK808
651 tristate "Rockchip RK808 Power Management chip"
652 depends on I2C && OF
653 select MFD_CORE
654 select REGMAP_I2C
655 select REGMAP_IRQ
656 help
657 If you say yes here you get support for the RK808
658 Power Management chips.
659 This driver provides common support for accessing the device
660 through I2C interface. The device supports multiple sub-devices
661 including interrupts, RTC, LDO & DCDC regulators, and onkey.
662
663 config MFD_RN5T618
664 tristate "Ricoh RN5T5618 PMIC"
665 depends on I2C
666 select MFD_CORE
667 select REGMAP_I2C
668 help
669 Say yes here to add support for the Ricoh RN5T618 PMIC. This
670 driver provides common support for accessing the device,
671 additional drivers must be enabled in order to use the
672 functionality of the device.
673
674 config MFD_SEC_CORE
675 bool "SAMSUNG Electronics PMIC Series Support"
676 depends on I2C=y
677 select MFD_CORE
678 select REGMAP_I2C
679 select REGMAP_IRQ
680 help
681 Support for the Samsung Electronics MFD series.
682 This driver provides common support for accessing the device,
683 additional drivers must be enabled in order to use the functionality
684 of the device
685
686 config MFD_SI476X_CORE
687 tristate "Silicon Laboratories 4761/64/68 AM/FM radio."
688 depends on I2C
689 select MFD_CORE
690 select REGMAP_I2C
691 help
692 This is the core driver for the SI476x series of AM/FM
693 radio. This MFD driver connects the radio-si476x V4L2 module
694 and the si476x audio codec.
695
696 To compile this driver as a module, choose M here: the
697 module will be called si476x-core.
698
699 config MFD_SM501
700 tristate "Silicon Motion SM501"
701 ---help---
702 This is the core driver for the Silicon Motion SM501 multimedia
703 companion chip. This device is a multifunction device which may
704 provide numerous interfaces including USB host controller, USB gadget,
705 asynchronous serial ports, audio functions, and a dual display video
706 interface. The device may be connected by PCI or local bus with
707 varying functions enabled.
708
709 config MFD_SM501_GPIO
710 bool "Export GPIO via GPIO layer"
711 depends on MFD_SM501 && GPIOLIB
712 ---help---
713 This option uses the gpio library layer to export the 64 GPIO
714 lines on the SM501. The platform data is used to supply the
715 base number for the first GPIO line to register.
716
717 config MFD_SMSC
718 bool "SMSC ECE1099 series chips"
719 depends on I2C=y
720 select MFD_CORE
721 select REGMAP_I2C
722 help
723 If you say yes here you get support for the
724 ece1099 chips from SMSC.
725
726 To compile this driver as a module, choose M here: the
727 module will be called smsc.
728
729 config ABX500_CORE
730 bool "ST-Ericsson ABX500 Mixed Signal Circuit register functions"
731 default y if ARCH_U300 || ARCH_U8500
732 help
733 Say yes here if you have the ABX500 Mixed Signal IC family
734 chips. This core driver expose register access functions.
735 Functionality specific drivers using these functions can
736 remain unchanged when IC changes. Binding of the functions to
737 actual register access is done by the IC core driver.
738
739 config AB3100_CORE
740 bool "ST-Ericsson AB3100 Mixed Signal Circuit core functions"
741 depends on I2C=y && ABX500_CORE
742 select MFD_CORE
743 default y if ARCH_U300
744 help
745 Select this to enable the AB3100 Mixed Signal IC core
746 functionality. This connects to a AB3100 on the I2C bus
747 and expose a number of symbols needed for dependent devices
748 to read and write registers and subscribe to events from
749 this multi-functional IC. This is needed to use other features
750 of the AB3100 such as battery-backed RTC, charging control,
751 LEDs, vibrator, system power and temperature, power management
752 and ALSA sound.
753
754 config AB3100_OTP
755 tristate "ST-Ericsson AB3100 OTP functions"
756 depends on AB3100_CORE
757 default y if AB3100_CORE
758 help
759 Select this to enable the AB3100 Mixed Signal IC OTP (one-time
760 programmable memory) support. This exposes a sysfs file to read
761 out OTP values.
762
763 config AB8500_CORE
764 bool "ST-Ericsson AB8500 Mixed Signal Power Management chip"
765 depends on ABX500_CORE && MFD_DB8500_PRCMU
766 select POWER_SUPPLY
767 select MFD_CORE
768 select IRQ_DOMAIN
769 help
770 Select this option to enable access to AB8500 power management
771 chip. This connects to U8500 either on the SSP/SPI bus (deprecated
772 since hardware version v1.0) or the I2C bus via PRCMU. It also adds
773 the irq_chip parts for handling the Mixed Signal chip events.
774 This chip embeds various other multimedia funtionalities as well.
775
776 config AB8500_DEBUG
777 bool "Enable debug info via debugfs"
778 depends on AB8500_GPADC && DEBUG_FS
779 default y if DEBUG_FS
780 help
781 Select this option if you want debug information using the debug
782 filesystem, debugfs.
783
784 config AB8500_GPADC
785 bool "ST-Ericsson AB8500 GPADC driver"
786 depends on AB8500_CORE && REGULATOR_AB8500
787 default y
788 help
789 AB8500 GPADC driver used to convert Acc and battery/ac/usb voltage
790
791 config MFD_DB8500_PRCMU
792 bool "ST-Ericsson DB8500 Power Reset Control Management Unit"
793 depends on UX500_SOC_DB8500
794 select MFD_CORE
795 help
796 Select this option to enable support for the DB8500 Power Reset
797 and Control Management Unit. This is basically an autonomous
798 system controller running an XP70 microprocessor, which is accessed
799 through a register map.
800
801 config MFD_STMPE
802 bool "STMicroelectronics STMPE"
803 depends on (I2C=y || SPI_MASTER=y)
804 depends on OF
805 select MFD_CORE
806 help
807 Support for the STMPE family of I/O Expanders from
808 STMicroelectronics.
809
810 Currently supported devices are:
811
812 STMPE811: GPIO, Touchscreen
813 STMPE1601: GPIO, Keypad
814 STMPE1801: GPIO, Keypad
815 STMPE2401: GPIO, Keypad
816 STMPE2403: GPIO, Keypad
817
818 This driver provides common support for accessing the device,
819 additional drivers must be enabled in order to use the functionality
820 of the device. Currently available sub drivers are:
821
822 GPIO: stmpe-gpio
823 Keypad: stmpe-keypad
824 Touchscreen: stmpe-ts
825
826 menu "STMicroelectronics STMPE Interface Drivers"
827 depends on MFD_STMPE
828
829 config STMPE_I2C
830 bool "STMicroelectronics STMPE I2C Interface"
831 depends on I2C=y
832 default y
833 help
834 This is used to enable I2C interface of STMPE
835
836 config STMPE_SPI
837 bool "STMicroelectronics STMPE SPI Interface"
838 depends on SPI_MASTER
839 help
840 This is used to enable SPI interface of STMPE
841 endmenu
842
843 config MFD_STA2X11
844 bool "STMicroelectronics STA2X11"
845 depends on STA2X11
846 select MFD_CORE
847 select REGMAP_MMIO
848
849 config MFD_SUN6I_PRCM
850 bool "Allwinner A31 PRCM controller"
851 depends on ARCH_SUNXI
852 select MFD_CORE
853 help
854 Support for the PRCM (Power/Reset/Clock Management) unit available
855 in A31 SoC.
856
857 config MFD_SYSCON
858 bool "System Controller Register R/W Based on Regmap"
859 select REGMAP_MMIO
860 help
861 Select this option to enable accessing system control registers
862 via regmap.
863
864 config MFD_DAVINCI_VOICECODEC
865 tristate
866 select MFD_CORE
867 select REGMAP_MMIO
868
869 config MFD_TI_AM335X_TSCADC
870 tristate "TI ADC / Touch Screen chip support"
871 select MFD_CORE
872 select REGMAP
873 select REGMAP_MMIO
874 help
875 If you say yes here you get support for Texas Instruments series
876 of Touch Screen /ADC chips.
877 To compile this driver as a module, choose M here: the
878 module will be called ti_am335x_tscadc.
879
880 config MFD_DM355EVM_MSP
881 bool "TI DaVinci DM355 EVM microcontroller"
882 depends on I2C=y && MACH_DAVINCI_DM355_EVM
883 help
884 This driver supports the MSP430 microcontroller used on these
885 boards. MSP430 firmware manages resets and power sequencing,
886 inputs from buttons and the IR remote, LEDs, an RTC, and more.
887
888 config MFD_LP3943
889 tristate "TI/National Semiconductor LP3943 MFD Driver"
890 depends on I2C
891 select MFD_CORE
892 select REGMAP_I2C
893 help
894 Support for the TI/National Semiconductor LP3943.
895 This driver consists of GPIO and PWM drivers.
896 With these functionalities, it can be used for LED string control or
897 general usage such like a GPIO controller and a PWM controller.
898
899 config MFD_LP8788
900 bool "TI LP8788 Power Management Unit Driver"
901 depends on I2C=y
902 select MFD_CORE
903 select REGMAP_I2C
904 select IRQ_DOMAIN
905 help
906 TI LP8788 PMU supports regulators, battery charger, RTC,
907 ADC, backlight driver and current sinks.
908
909 config MFD_OMAP_USB_HOST
910 bool "TI OMAP USBHS core and TLL driver"
911 depends on USB_EHCI_HCD_OMAP || USB_OHCI_HCD_OMAP3
912 default y
913 help
914 This is the core driver for the OAMP EHCI and OHCI drivers.
915 This MFD driver does the required setup functionalities for
916 OMAP USB Host drivers.
917
918 config MFD_PALMAS
919 bool "TI Palmas series chips"
920 select MFD_CORE
921 select REGMAP_I2C
922 select REGMAP_IRQ
923 depends on I2C=y
924 help
925 If you say yes here you get support for the Palmas
926 series of PMIC chips from Texas Instruments.
927
928 config TPS6105X
929 tristate "TI TPS61050/61052 Boost Converters"
930 depends on I2C
931 select REGULATOR
932 select MFD_CORE
933 select REGULATOR_FIXED_VOLTAGE
934 help
935 This option enables a driver for the TP61050/TPS61052
936 high-power "white LED driver". This boost converter is
937 sometimes used for other things than white LEDs, and
938 also contains a GPIO pin.
939
940 config TPS65010
941 tristate "TI TPS6501x Power Management chips"
942 depends on I2C && GPIOLIB
943 default y if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_OSK
944 help
945 If you say yes here you get support for the TPS6501x series of
946 Power Management chips. These include voltage regulators,
947 lithium ion/polymer battery charging, and other features that
948 are often used in portable devices like cell phones and cameras.
949
950 This driver can also be built as a module. If so, the module
951 will be called tps65010.
952
953 config TPS6507X
954 tristate "TI TPS6507x Power Management / Touch Screen chips"
955 select MFD_CORE
956 depends on I2C
957 help
958 If you say yes here you get support for the TPS6507x series of
959 Power Management / Touch Screen chips. These include voltage
960 regulators, lithium ion/polymer battery charging, touch screen
961 and other features that are often used in portable devices.
962 This driver can also be built as a module. If so, the module
963 will be called tps6507x.
964
965 config TPS65911_COMPARATOR
966 tristate
967
968 config MFD_TPS65090
969 bool "TI TPS65090 Power Management chips"
970 depends on I2C=y
971 select MFD_CORE
972 select REGMAP_I2C
973 select REGMAP_IRQ
974 help
975 If you say yes here you get support for the TPS65090 series of
976 Power Management chips.
977 This driver provides common support for accessing the device,
978 additional drivers must be enabled in order to use the
979 functionality of the device.
980
981 config MFD_TPS65217
982 tristate "TI TPS65217 Power Management / White LED chips"
983 depends on I2C
984 select MFD_CORE
985 select REGMAP_I2C
986 help
987 If you say yes here you get support for the TPS65217 series of
988 Power Management / White LED chips.
989 These include voltage regulators, lithium ion/polymer battery
990 charger, wled and other features that are often used in portable
991 devices.
992
993 This driver can also be built as a module. If so, the module
994 will be called tps65217.
995
996 config MFD_TPS65218
997 tristate "TI TPS65218 Power Management chips"
998 depends on I2C
999 select MFD_CORE
1000 select REGMAP_I2C
1001 select REGMAP_IRQ
1002 help
1003 If you say yes here you get support for the TPS65218 series of
1004 Power Management chips.
1005 These include voltage regulators, gpio and other features
1006 that are often used in portable devices. Only regulator
1007 component is currently supported.
1008
1009 This driver can also be built as a module. If so, the module
1010 will be called tps65218.
1011
1012 config MFD_TPS6586X
1013 bool "TI TPS6586x Power Management chips"
1014 depends on I2C=y
1015 select MFD_CORE
1016 select REGMAP_I2C
1017 help
1018 If you say yes here you get support for the TPS6586X series of
1019 Power Management chips.
1020 This driver provides common support for accessing the device,
1021 additional drivers must be enabled in order to use the
1022 functionality of the device.
1023
1024 This driver can also be built as a module. If so, the module
1025 will be called tps6586x.
1026
1027 config MFD_TPS65910
1028 bool "TI TPS65910 Power Management chip"
1029 depends on I2C=y && GPIOLIB
1030 select MFD_CORE
1031 select REGMAP_I2C
1032 select REGMAP_IRQ
1033 select IRQ_DOMAIN
1034 help
1035 if you say yes here you get support for the TPS65910 series of
1036 Power Management chips.
1037
1038 config MFD_TPS65912
1039 bool "TI TPS65912 Power Management chip"
1040 depends on GPIOLIB
1041 select MFD_CORE
1042 help
1043 If you say yes here you get support for the TPS65912 series of
1044 PM chips.
1045
1046 config MFD_TPS65912_I2C
1047 bool "TI TPS65912 Power Management chip with I2C"
1048 select MFD_CORE
1049 select MFD_TPS65912
1050 depends on I2C=y && GPIOLIB
1051 help
1052 If you say yes here you get support for the TPS65912 series of
1053 PM chips with I2C interface.
1054
1055 config MFD_TPS65912_SPI
1056 bool "TI TPS65912 Power Management chip with SPI"
1057 select MFD_CORE
1058 select MFD_TPS65912
1059 depends on SPI_MASTER && GPIOLIB
1060 help
1061 If you say yes here you get support for the TPS65912 series of
1062 PM chips with SPI interface.
1063
1064 config MFD_TPS80031
1065 bool "TI TPS80031/TPS80032 Power Management chips"
1066 depends on I2C=y
1067 select MFD_CORE
1068 select REGMAP_I2C
1069 select REGMAP_IRQ
1070 help
1071 If you say yes here you get support for the Texas Instruments
1072 TPS80031/ TPS80032 Fully Integrated Power Management with Power
1073 Path and Battery Charger. The device provides five configurable
1074 step-down converters, 11 general purpose LDOs, USB OTG Module,
1075 ADC, RTC, 2 PWM, System Voltage Regulator/Battery Charger with
1076 Power Path from USB, 32K clock generator.
1077
1078 config TWL4030_CORE
1079 bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 Support"
1080 depends on I2C=y
1081 select IRQ_DOMAIN
1082 select REGMAP_I2C
1083 help
1084 Say yes here if you have TWL4030 / TWL6030 family chip on your board.
1085 This core driver provides register access and IRQ handling
1086 facilities, and registers devices for the various functions
1087 so that function-specific drivers can bind to them.
1088
1089 These multi-function chips are found on many OMAP2 and OMAP3
1090 boards, providing power management, RTC, GPIO, keypad, a
1091 high speed USB OTG transceiver, an audio codec (on most
1092 versions) and many other features.
1093
1094 config TWL4030_POWER
1095 bool "TI TWL4030 power resources"
1096 depends on TWL4030_CORE && ARM
1097 help
1098 Say yes here if you want to use the power resources on the
1099 TWL4030 family chips. Most of these resources are regulators,
1100 which have a separate driver; some are control signals, such
1101 as clock request handshaking.
1102
1103 This driver uses board-specific data to initialize the resources
1104 and load scripts controlling which resources are switched off/on
1105 or reset when a sleep, wakeup or warm reset event occurs.
1106
1107 config MFD_TWL4030_AUDIO
1108 bool "TI TWL4030 Audio"
1109 depends on TWL4030_CORE
1110 select MFD_CORE
1111 default n
1112
1113 config TWL6040_CORE
1114 bool "TI TWL6040 audio codec"
1115 depends on I2C=y
1116 select MFD_CORE
1117 select REGMAP_I2C
1118 select REGMAP_IRQ
1119 default n
1120 help
1121 Say yes here if you want support for Texas Instruments TWL6040 audio
1122 codec.
1123 This driver provides common support for accessing the device,
1124 additional drivers must be enabled in order to use the
1125 functionality of the device (audio, vibra).
1126
1127 config MENELAUS
1128 bool "TI TWL92330/Menelaus PM chip"
1129 depends on I2C=y && ARCH_OMAP2
1130 help
1131 If you say yes here you get support for the Texas Instruments
1132 TWL92330/Menelaus Power Management chip. This include voltage
1133 regulators, Dual slot memory card transceivers, real-time clock
1134 and other features that are often used in portable devices like
1135 cell phones and PDAs.
1136
1137 config MFD_WL1273_CORE
1138 tristate "TI WL1273 FM radio"
1139 depends on I2C
1140 select MFD_CORE
1141 default n
1142 help
1143 This is the core driver for the TI WL1273 FM radio. This MFD
1144 driver connects the radio-wl1273 V4L2 module and the wl1273
1145 audio codec.
1146
1147 config MFD_LM3533
1148 tristate "TI/National Semiconductor LM3533 Lighting Power chip"
1149 depends on I2C
1150 select MFD_CORE
1151 select REGMAP_I2C
1152 help
1153 Say yes here to enable support for National Semiconductor / TI
1154 LM3533 Lighting Power chips.
1155
1156 This driver provides common support for accessing the device;
1157 additional drivers must be enabled in order to use the LED,
1158 backlight or ambient-light-sensor functionality of the device.
1159
1160 config MFD_TIMBERDALE
1161 tristate "Timberdale FPGA"
1162 select MFD_CORE
1163 depends on PCI && GPIOLIB && (X86_32 || COMPILE_TEST)
1164 ---help---
1165 This is the core driver for the timberdale FPGA. This device is a
1166 multifunction device which exposes numerous platform devices.
1167
1168 The timberdale FPGA can be found on the Intel Atom development board
1169 for in-vehicle infontainment, called Russellville.
1170
1171 config MFD_TC3589X
1172 bool "Toshiba TC35892 and variants"
1173 depends on I2C=y
1174 select MFD_CORE
1175 help
1176 Support for the Toshiba TC35892 and variants I/O Expander.
1177
1178 This driver provides common support for accessing the device,
1179 additional drivers must be enabled in order to use the
1180 functionality of the device.
1181
1182 config MFD_TMIO
1183 bool
1184 default n
1185
1186 config MFD_T7L66XB
1187 bool "Toshiba T7L66XB"
1188 depends on ARM && HAVE_CLK
1189 select MFD_CORE
1190 select MFD_TMIO
1191 help
1192 Support for Toshiba Mobile IO Controller T7L66XB
1193
1194 config MFD_TC6387XB
1195 bool "Toshiba TC6387XB"
1196 depends on ARM && HAVE_CLK
1197 select MFD_CORE
1198 select MFD_TMIO
1199 help
1200 Support for Toshiba Mobile IO Controller TC6387XB
1201
1202 config MFD_TC6393XB
1203 bool "Toshiba TC6393XB"
1204 depends on ARM && HAVE_CLK
1205 select GPIOLIB
1206 select MFD_CORE
1207 select MFD_TMIO
1208 help
1209 Support for Toshiba Mobile IO Controller TC6393XB
1210
1211 config MFD_VX855
1212 tristate "VIA VX855/VX875 integrated south bridge"
1213 depends on PCI
1214 select MFD_CORE
1215 help
1216 Say yes here to enable support for various functions of the
1217 VIA VX855/VX875 south bridge. You will need to enable the vx855_spi
1218 and/or vx855_gpio drivers for this to do anything useful.
1219
1220 config MFD_ARIZONA
1221 select REGMAP
1222 select REGMAP_IRQ
1223 select MFD_CORE
1224 bool
1225
1226 config MFD_ARIZONA_I2C
1227 tristate "Wolfson Microelectronics Arizona platform with I2C"
1228 select MFD_ARIZONA
1229 select MFD_CORE
1230 select REGMAP_I2C
1231 depends on I2C
1232 help
1233 Support for the Wolfson Microelectronics Arizona platform audio SoC
1234 core functionality controlled via I2C.
1235
1236 config MFD_ARIZONA_SPI
1237 tristate "Wolfson Microelectronics Arizona platform with SPI"
1238 select MFD_ARIZONA
1239 select MFD_CORE
1240 select REGMAP_SPI
1241 depends on SPI_MASTER
1242 help
1243 Support for the Wolfson Microelectronics Arizona platform audio SoC
1244 core functionality controlled via I2C.
1245
1246 config MFD_WM5102
1247 bool "Wolfson Microelectronics WM5102"
1248 depends on MFD_ARIZONA
1249 help
1250 Support for Wolfson Microelectronics WM5102 low power audio SoC
1251
1252 config MFD_WM5110
1253 bool "Wolfson Microelectronics WM5110"
1254 depends on MFD_ARIZONA
1255 help
1256 Support for Wolfson Microelectronics WM5110 low power audio SoC
1257
1258 config MFD_WM8997
1259 bool "Wolfson Microelectronics WM8997"
1260 depends on MFD_ARIZONA
1261 help
1262 Support for Wolfson Microelectronics WM8997 low power audio SoC
1263
1264 config MFD_WM8400
1265 bool "Wolfson Microelectronics WM8400"
1266 select MFD_CORE
1267 depends on I2C=y
1268 select REGMAP_I2C
1269 help
1270 Support for the Wolfson Microelecronics WM8400 PMIC and audio
1271 CODEC. This driver provides common support for accessing
1272 the device, additional drivers must be enabled in order to use
1273 the functionality of the device.
1274
1275 config MFD_WM831X
1276 bool
1277
1278 config MFD_WM831X_I2C
1279 bool "Wolfson Microelectronics WM831x/2x PMICs with I2C"
1280 select MFD_CORE
1281 select MFD_WM831X
1282 select REGMAP_I2C
1283 select IRQ_DOMAIN
1284 depends on I2C=y
1285 help
1286 Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1287 when controlled using I2C. This driver provides common support
1288 for accessing the device, additional drivers must be enabled in
1289 order to use the functionality of the device.
1290
1291 config MFD_WM831X_SPI
1292 bool "Wolfson Microelectronics WM831x/2x PMICs with SPI"
1293 select MFD_CORE
1294 select MFD_WM831X
1295 select REGMAP_SPI
1296 select IRQ_DOMAIN
1297 depends on SPI_MASTER
1298 help
1299 Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1300 when controlled using SPI. This driver provides common support
1301 for accessing the device, additional drivers must be enabled in
1302 order to use the functionality of the device.
1303
1304 config MFD_WM8350
1305 bool
1306
1307 config MFD_WM8350_I2C
1308 bool "Wolfson Microelectronics WM8350 with I2C"
1309 select MFD_WM8350
1310 depends on I2C=y
1311 help
1312 The WM8350 is an integrated audio and power management
1313 subsystem with watchdog and RTC functionality for embedded
1314 systems. This option enables core support for the WM8350 with
1315 I2C as the control interface. Additional options must be
1316 selected to enable support for the functionality of the chip.
1317
1318 config MFD_WM8994
1319 tristate "Wolfson Microelectronics WM8994"
1320 select MFD_CORE
1321 select REGMAP_I2C
1322 select REGMAP_IRQ
1323 depends on I2C
1324 help
1325 The WM8994 is a highly integrated hi-fi CODEC designed for
1326 smartphone applicatiosn. As well as audio functionality it
1327 has on board GPIO and regulator functionality which is
1328 supported via the relevant subsystems. This driver provides
1329 core support for the WM8994, in order to use the actual
1330 functionaltiy of the device other drivers must be enabled.
1331
1332 config MFD_STW481X
1333 tristate "Support for ST Microelectronics STw481x"
1334 depends on I2C && ARCH_NOMADIK
1335 select REGMAP_I2C
1336 select MFD_CORE
1337 help
1338 Select this option to enable the STw481x chip driver used
1339 in various ST Microelectronics and ST-Ericsson embedded
1340 Nomadik series.
1341
1342 menu "Multimedia Capabilities Port drivers"
1343 depends on ARCH_SA1100
1344
1345 config MCP
1346 tristate
1347
1348 # Interface drivers
1349 config MCP_SA11X0
1350 tristate "Support SA11x0 MCP interface"
1351 depends on ARCH_SA1100
1352 select MCP
1353
1354 # Chip drivers
1355 config MCP_UCB1200
1356 tristate "Support for UCB1200 / UCB1300"
1357 depends on MCP_SA11X0
1358 select MCP
1359
1360 config MCP_UCB1200_TS
1361 tristate "Touchscreen interface support"
1362 depends on MCP_UCB1200 && INPUT
1363
1364 endmenu
1365
1366 config MFD_VEXPRESS_SYSREG
1367 bool "Versatile Express System Registers"
1368 depends on VEXPRESS_CONFIG && GPIOLIB
1369 default y
1370 select CLKSRC_MMIO
1371 select GPIO_GENERIC_PLATFORM
1372 select MFD_CORE
1373 select MFD_SYSCON
1374 help
1375 System Registers are the platform configuration block
1376 on the ARM Ltd. Versatile Express board.
1377
1378 endmenu
1379 endif