config LEDS_GPIO_REGISTER
	bool
	help
	  This option provides the function gpio_led_register_device.
	  As this function is used by arch code it must not be compiled as a
	  module.

menuconfig NEW_LEDS
	bool "LED Support"
	help
	  Say Y to enable Linux LED support.  This allows control of supported
	  LEDs from both userspace and optionally, by kernel events (triggers).

if NEW_LEDS

config LEDS_CLASS
	tristate "LED Class Support"
	help
	  This option enables the led sysfs class in /sys/class/leds.  You'll
	  need this to do anything useful with LEDs.  If unsure, say N.

config LEDS_CLASS_FLASH
	tristate "LED Flash Class Support"
	depends on LEDS_CLASS
	help
	  This option enables the flash led sysfs class in /sys/class/leds.
	  It wrapps LED Class and adds flash LEDs specific sysfs attributes
	  and kernel internal API to it. You'll need this to provide support
	  for the flash related features of a LED device. It can be built
	  as a module.

config LEDS_BRIGHTNESS_HW_CHANGED
	bool "LED Class brightness_hw_changed attribute support"
	depends on LEDS_CLASS
	help
	  This option enables support for the brightness_hw_changed attribute
	  for led sysfs class devices under /sys/class/leds.

	  See Documentation/ABI/testing/sysfs-class-led for details.

comment "LED drivers"

config LEDS_88PM860X
	tristate "LED Support for Marvell 88PM860x PMIC"
	depends on LEDS_CLASS
	depends on MFD_88PM860X
	help
	  This option enables support for on-chip LED drivers found on Marvell
	  Semiconductor 88PM8606 PMIC.

config LEDS_AAT1290
	tristate "LED support for the AAT1290"
	depends on LEDS_CLASS_FLASH
	depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS
	depends on GPIOLIB || COMPILE_TEST
	depends on OF
	depends on PINCTRL
	help
	 This option enables support for the LEDs on the AAT1290.

config LEDS_BCM6328
	tristate "LED Support for Broadcom BCM6328"
	depends on LEDS_CLASS
	depends on HAS_IOMEM
	depends on OF
	help
	  This option enables support for LEDs connected to the BCM6328
	  LED HW controller accessed via MMIO registers.

config LEDS_BCM6358
	tristate "LED Support for Broadcom BCM6358"
	depends on LEDS_CLASS
	depends on HAS_IOMEM
	depends on OF
	help
	  This option enables support for LEDs connected to the BCM6358
	  LED HW controller accessed via MMIO registers.

config LEDS_CPCAP
	tristate "LED Support for Motorola CPCAP"
	depends on LEDS_CLASS
	depends on MFD_CPCAP
	depends on OF
	help
	  This option enables support for LEDs offered by Motorola's
	  CPCAP PMIC.

config LEDS_LM3530
	tristate "LCD Backlight driver for LM3530"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for the LCD backlight using
	  LM3530 ambient light sensor chip. This ALS chip can be
	  controlled manually or using PWM input or using ambient
	  light automatically.

config LEDS_LM3533
	tristate "LED support for LM3533"
	depends on LEDS_CLASS
	depends on MFD_LM3533
	help
	  This option enables support for the LEDs on National Semiconductor /
	  TI LM3533 Lighting Power chips.

	  The LEDs can be controlled directly, through PWM input, or by the
	  ambient-light-sensor interface. The chip supports
	  hardware-accelerated blinking with maximum on and off periods of 9.8
	  and 77 seconds respectively.

config LEDS_LM3642
	tristate "LED support for LM3642 Chip"
	depends on LEDS_CLASS && I2C
	select REGMAP_I2C
	help
	  This option enables support for LEDs connected to LM3642.
	  The LM3642 is a 4MHz fixed-frequency synchronous boost
	  converter plus 1.5A constant current driver for a high-current
	  white LED.


config LEDS_LOCOMO
	tristate "LED Support for Locomo device"
	depends on LEDS_CLASS
	depends on SHARP_LOCOMO
	help
	  This option enables support for the LEDs on Sharp Locomo.
	  Zaurus models SL-5500 and SL-5600.

config LEDS_MIKROTIK_RB532
	tristate "LED Support for Mikrotik Routerboard 532"
	depends on LEDS_CLASS
	depends on MIKROTIK_RB532
	help
	  This option enables support for the so called "User LED" of
	  Mikrotik's Routerboard 532.

config LEDS_MT6323
	tristate "LED Support for Mediatek MT6323 PMIC"
	depends on LEDS_CLASS
	depends on MFD_MT6397
	help
	  This option enables support for on-chip LED drivers found on
	  Mediatek MT6323 PMIC.

config LEDS_S3C24XX
	tristate "LED Support for Samsung S3C24XX GPIO LEDs"
	depends on LEDS_CLASS
	depends on ARCH_S3C24XX
	help
	  This option enables support for LEDs connected to GPIO lines
	  on Samsung S3C24XX series CPUs, such as the S3C2410 and S3C2440.

config LEDS_NET48XX
	tristate "LED Support for Soekris net48xx series Error LED"
	depends on LEDS_CLASS
	depends on SCx200_GPIO
	help
	  This option enables support for the Soekris net4801 and net4826 error
	  LED.

config LEDS_FSG
	tristate "LED Support for the Freecom FSG-3"
	depends on LEDS_CLASS
	depends on MACH_FSG
	help
	  This option enables support for the LEDs on the Freecom FSG-3.

config LEDS_WRAP
	tristate "LED Support for the WRAP series LEDs"
	depends on LEDS_CLASS
	depends on SCx200_GPIO
	help
	  This option enables support for the PCEngines WRAP programmable LEDs.

config LEDS_COBALT_QUBE
	tristate "LED Support for the Cobalt Qube series front LED"
	depends on LEDS_CLASS
	depends on MIPS_COBALT
	help
	  This option enables support for the front LED on Cobalt Qube series

config LEDS_COBALT_RAQ
	bool "LED Support for the Cobalt Raq series"
	depends on LEDS_CLASS=y && MIPS_COBALT
	select LEDS_TRIGGERS
	help
	  This option enables support for the Cobalt Raq series LEDs.

config LEDS_SUNFIRE
	tristate "LED support for SunFire servers."
	depends on LEDS_CLASS
	depends on SPARC64
	select LEDS_TRIGGERS
	help
	  This option enables support for the Left, Middle, and Right
	  LEDs on the I/O and CPU boards of SunFire UltraSPARC servers.

config LEDS_IPAQ_MICRO
	tristate "LED Support for the Compaq iPAQ h3xxx"
	depends on LEDS_CLASS
	depends on MFD_IPAQ_MICRO
	help
	  Choose this option if you want to use the notification LED on
	  Compaq/HP iPAQ h3100 and h3600.

config LEDS_HP6XX
	tristate "LED Support for the HP Jornada 6xx"
	depends on LEDS_CLASS
	depends on SH_HP6XX
	help
	  This option enables LED support for the handheld
	  HP Jornada 620/660/680/690.

config LEDS_PCA9532
	tristate "LED driver for PCA9532 dimmer"
	depends on LEDS_CLASS
	depends on I2C && INPUT
	help
	  This option enables support for NXP pca9532
	  LED controller. It is generally only useful
	  as a platform driver

config LEDS_PCA9532_GPIO
	bool "Enable GPIO support for PCA9532"
	depends on LEDS_PCA9532
	depends on GPIOLIB
	help
	  Allow unused pins on PCA9532 to be used as gpio.

	  To use a pin as gpio pca9532_type in pca9532_platform data needs to
	  set to PCA9532_TYPE_GPIO.

config LEDS_GPIO
	tristate "LED Support for GPIO connected LEDs"
	depends on LEDS_CLASS
	depends on GPIOLIB || COMPILE_TEST
	help
	  This option enables support for the LEDs connected to GPIO
	  outputs. To be useful the particular board must have LEDs
	  and they must be connected to the GPIO lines.  The LEDs must be
	  defined as platform devices and/or OpenFirmware platform devices.
	  The code to use these bindings can be selected below.

config LEDS_LP3944
	tristate "LED Support for N.S. LP3944 (Fun Light) I2C chip"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for LEDs connected to the National
	  Semiconductor LP3944 Lighting Management Unit (LMU) also known as
	  Fun Light Chip.

	  To compile this driver as a module, choose M here: the
	  module will be called leds-lp3944.

config LEDS_LP3952
	tristate "LED Support for TI LP3952 2 channel LED driver"
	depends on LEDS_CLASS
	depends on I2C
	depends on GPIOLIB
	select REGMAP_I2C
	help
	  This option enables support for LEDs connected to the Texas
	  Instruments LP3952 LED driver.

	  To compile this driver as a module, choose M here: the
	  module will be called leds-lp3952.

config LEDS_LP55XX_COMMON
	tristate "Common Driver for TI/National LP5521/5523/55231/5562/8501"
	depends on LEDS_LP5521 || LEDS_LP5523 || LEDS_LP5562 || LEDS_LP8501
	select FW_LOADER
	select FW_LOADER_USER_HELPER
	help
	  This option supports common operations for LP5521/5523/55231/5562/8501
	  devices.

config LEDS_LP5521
	tristate "LED Support for N.S. LP5521 LED driver chip"
	depends on LEDS_CLASS && I2C
	select LEDS_LP55XX_COMMON
	help
	  If you say yes here you get support for the National Semiconductor
	  LP5521 LED driver. It is 3 channel chip with programmable engines.
	  Driver provides direct control via LED class and interface for
	  programming the engines.

config LEDS_LP5523
	tristate "LED Support for TI/National LP5523/55231 LED driver chip"
	depends on LEDS_CLASS && I2C
	select LEDS_LP55XX_COMMON
	help
	  If you say yes here you get support for TI/National Semiconductor
	  LP5523/55231 LED driver.
	  It is 9 channel chip with programmable engines.
	  Driver provides direct control via LED class and interface for
	  programming the engines.

config LEDS_LP5562
	tristate "LED Support for TI LP5562 LED driver chip"
	depends on LEDS_CLASS && I2C
	select LEDS_LP55XX_COMMON
	help
	  If you say yes here you get support for TI LP5562 LED driver.
	  It is 4 channels chip with programmable engines.
	  Driver provides direct control via LED class and interface for
	  programming the engines.

config LEDS_LP8501
	tristate "LED Support for TI LP8501 LED driver chip"
	depends on LEDS_CLASS && I2C
	select LEDS_LP55XX_COMMON
	help
	  If you say yes here you get support for TI LP8501 LED driver.
	  It is 9 channel chip with programmable engines.
	  Driver provides direct control via LED class and interface for
	  programming the engines.
	  It is similar as LP5523, but output power selection is available.
	  And register layout and engine program schemes are different.

config LEDS_LP8788
	tristate "LED support for the TI LP8788 PMIC"
	depends on LEDS_CLASS
	depends on MFD_LP8788
	help
	  This option enables support for the Keyboard LEDs on the LP8788 PMIC.

config LEDS_LP8860
	tristate "LED support for the TI LP8860 4 channel LED driver"
	depends on LEDS_CLASS && I2C
	select REGMAP_I2C
	help
	  If you say yes here you get support for the TI LP8860 4 channel
	  LED driver.
	  This option enables support for the display cluster LEDs
	  on the LP8860 4 channel LED driver using the I2C communication
	  bus.

config LEDS_CLEVO_MAIL
	tristate "Mail LED on Clevo notebook"
	depends on LEDS_CLASS
	depends on X86 && SERIO_I8042 && DMI
	help
	  This driver makes the mail LED accessible from userspace
	  programs through the leds subsystem. This LED have three
	  known mode: off, blink at 0.5Hz and blink at 1Hz.

	  The driver supports two kinds of interface: using ledtrig-timer
	  or through /sys/class/leds/clevo::mail/brightness. As this LED
	  cannot change it's brightness it blinks instead. The brightness
	  value 0 means off, 1..127 means blink at 0.5Hz and 128..255 means
	  blink at 1Hz.

	  This module can drive the mail LED for the following notebooks:

	  	Clevo D400P
	  	Clevo D410J
	  	Clevo D410V
	  	Clevo D400V/D470V (not tested, but might work)
	  	Clevo M540N
	  	Clevo M5x0N (not tested, but might work)
	  	Positivo Mobile (Clevo M5x0V)

	  If your model is not listed here you can try the "nodetect"
	  module parameter.

	  To compile this driver as a module, choose M here: the
	  module will be called leds-clevo-mail.

config LEDS_PCA955X
	tristate "LED Support for PCA955x I2C chips"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for LEDs connected to PCA955x
	  LED driver chips accessed via the I2C bus.  Supported
	  devices include PCA9550, PCA9551, PCA9552, and PCA9553.

config LEDS_PCA963X
	tristate "LED support for PCA963x I2C chip"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for LEDs connected to the PCA963x
	  LED driver chip accessed via the I2C bus. Supported
	  devices include PCA9633 and PCA9634

config LEDS_WM831X_STATUS
	tristate "LED support for status LEDs on WM831x PMICs"
	depends on LEDS_CLASS
	depends on MFD_WM831X
	help
	  This option enables support for the status LEDs of the WM831x
          series of PMICs.

config LEDS_WM8350
	tristate "LED Support for WM8350 AudioPlus PMIC"
	depends on LEDS_CLASS
	depends on MFD_WM8350
	help
	  This option enables support for LEDs driven by the Wolfson
	  Microelectronics WM8350 AudioPlus PMIC.

config LEDS_DA903X
	tristate "LED Support for DA9030/DA9034 PMIC"
	depends on LEDS_CLASS
	depends on PMIC_DA903X
	help
	  This option enables support for on-chip LED drivers found
	  on Dialog Semiconductor DA9030/DA9034 PMICs.

config LEDS_DA9052
	tristate "Dialog DA9052/DA9053 LEDS"
	depends on LEDS_CLASS
	depends on PMIC_DA9052
	help
	  This option enables support for on-chip LED drivers found
	  on Dialog Semiconductor DA9052-BC and DA9053-AA/Bx PMICs.

config LEDS_DAC124S085
	tristate "LED Support for DAC124S085 SPI DAC"
	depends on LEDS_CLASS
	depends on SPI
	help
	  This option enables support for DAC124S085 SPI DAC from NatSemi,
	  which can be used to control up to four LEDs.

config LEDS_PWM
	tristate "PWM driven LED Support"
	depends on LEDS_CLASS
	depends on PWM
	help
	  This option enables support for pwm driven LEDs

config LEDS_REGULATOR
	tristate "REGULATOR driven LED support"
	depends on LEDS_CLASS
	depends on REGULATOR
	help
	  This option enables support for regulator driven LEDs.

config LEDS_BD2802
	tristate "LED driver for BD2802 RGB LED"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for BD2802GU RGB LED driver chips
	  accessed via the I2C bus.

config LEDS_INTEL_SS4200
	tristate "LED driver for Intel NAS SS4200 series"
	depends on LEDS_CLASS
	depends on PCI && DMI
	depends on X86
	help
	  This option enables support for the Intel SS4200 series of
	  Network Attached Storage servers. You may control the hard
	  drive or power LEDs on the front panel. Using this driver
	  can stop the front LED from blinking after startup.

config LEDS_LT3593
	tristate "LED driver for LT3593 controllers"
	depends on LEDS_CLASS
	depends on GPIOLIB || COMPILE_TEST
	help
	  This option enables support for LEDs driven by a Linear Technology
	  LT3593 controller. This controller uses a special one-wire pulse
	  coding protocol to set the brightness.

config LEDS_ADP5520
	tristate "LED Support for ADP5520/ADP5501 PMIC"
	depends on LEDS_CLASS
	depends on PMIC_ADP5520
	help
	  This option enables support for on-chip LED drivers found
	  on Analog Devices ADP5520/ADP5501 PMICs.

	  To compile this driver as a module, choose M here: the module will
	  be called leds-adp5520.

config LEDS_MC13783
	tristate "LED Support for MC13XXX PMIC"
	depends on LEDS_CLASS
	depends on MFD_MC13XXX
	help
	  This option enable support for on-chip LED drivers found
	  on Freescale Semiconductor MC13783/MC13892/MC34708 PMIC.

config LEDS_NS2
	tristate "LED support for Network Space v2 GPIO LEDs"
	depends on LEDS_CLASS
	depends on MACH_KIRKWOOD || MACH_ARMADA_370
	default y
	help
	  This option enables support for the dual-GPIO LEDs found on the
	  following LaCie/Seagate boards:

		Network Space v2 (and parents: Max, Mini)
		Internet Space v2
		d2 Network v2
		n090401 (Seagate NAS 4-Bay)

config LEDS_NETXBIG
	tristate "LED support for Big Network series LEDs"
	depends on LEDS_CLASS
	depends on MACH_KIRKWOOD
	default y
	help
	  This option enable support for LEDs found on the LaCie 2Big
	  and 5Big Network v2 boards. The LEDs are wired to a CPLD and are
	  controlled through a GPIO extension bus.

config LEDS_ASIC3
	bool "LED support for the HTC ASIC3"
	depends on LEDS_CLASS=y
	depends on MFD_ASIC3
	default y
	help
	  This option enables support for the LEDs on the HTC ASIC3. The HTC
	  ASIC3 LED GPIOs are inputs, not outputs, thus the leds-gpio driver
	  cannot be used. This driver supports hardware blinking with an on+off
	  period from 62ms to 125s. Say Y to enable LEDs on the HP iPAQ hx4700.

config LEDS_TCA6507
	tristate "LED Support for TCA6507 I2C chip"
	depends on LEDS_CLASS && I2C
	help
	  This option enables support for LEDs connected to TC6507
	  LED driver chips accessed via the I2C bus.
	  Driver support brightness control and hardware-assisted blinking.

config LEDS_TLC591XX
	tristate "LED driver for TLC59108 and TLC59116 controllers"
	depends on LEDS_CLASS && I2C
	select REGMAP_I2C
	help
	  This option enables support for Texas Instruments TLC59108
	  and TLC59116 LED controllers.

config LEDS_MAX77693
	tristate "LED support for MAX77693 Flash"
	depends on LEDS_CLASS_FLASH
	depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS
	depends on MFD_MAX77693
	depends on OF
	help
	  This option enables support for the flash part of the MAX77693
	  multifunction device. It has build in control for two leds in flash
	  and torch mode.

config LEDS_MAX8997
	tristate "LED support for MAX8997 PMIC"
	depends on LEDS_CLASS && MFD_MAX8997
	help
	  This option enables support for on-chip LED drivers on
	  MAXIM MAX8997 PMIC.

config LEDS_LM355x
	tristate "LED support for LM355x Chips, LM3554 and LM3556"
	depends on LEDS_CLASS && I2C
	select REGMAP_I2C
	help
	  This option enables support for LEDs connected to LM355x.
	  LM355x includes Torch, Flash and Indicator functions.

config LEDS_OT200
	tristate "LED support for the Bachmann OT200"
	depends on LEDS_CLASS && HAS_IOMEM && (X86_32 || COMPILE_TEST)
	help
	  This option enables support for the LEDs on the Bachmann OT200.
	  Say Y to enable LEDs on the Bachmann OT200.

config LEDS_MENF21BMC
	tristate "LED support for the MEN 14F021P00 BMC"
	depends on LEDS_CLASS && MFD_MENF21BMC
	help
	  Say Y here to include support for the MEN 14F021P00 BMC LEDs.

	  This driver can also be built as a module. If so the module
	  will be called leds-menf21bmc.

config LEDS_KTD2692
	tristate "LED support for KTD2692 flash LED controller"
	depends on LEDS_CLASS_FLASH && OF
	depends on GPIOLIB || COMPILE_TEST
	help
	  This option enables support for KTD2692 LED flash connected
	  through ExpressWire interface.

	  Say Y to enable this driver.

config LEDS_SEAD3
	tristate "LED support for the MIPS SEAD 3 board"
	depends on LEDS_CLASS && MIPS_SEAD3
	help
	  Say Y here to include support for the FLED and PLED LEDs on SEAD3 eval
	  boards.

	  This driver can also be built as a module. If so the module
	  will be called leds-sead3.

config LEDS_IS31FL319X
	tristate "LED Support for ISSI IS31FL319x I2C LED controller family"
	depends on LEDS_CLASS && I2C && OF
	select REGMAP_I2C
	help
	  This option enables support for LEDs connected to ISSI IS31FL319x
	  fancy LED driver chips accessed via the I2C bus.
	  Driver supports individual PWM brightness control for each channel.

	  This driver can also be built as a module. If so the module will be
	  called leds-is31fl319x.

config LEDS_IS31FL32XX
	tristate "LED support for ISSI IS31FL32XX I2C LED controller family"
	depends on LEDS_CLASS && I2C && OF
	help
	  Say Y here to include support for ISSI IS31FL32XX and Si-En SN32xx
	  LED controllers. They are I2C devices with multiple constant-current
	  channels, each with independent 256-level PWM control.

comment "LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)"

config LEDS_BLINKM
	tristate "LED support for the BlinkM I2C RGB LED"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for the BlinkM RGB LED connected
	  through I2C. Say Y to enable support for the BlinkM LED.

config LEDS_POWERNV
	tristate "LED support for PowerNV Platform"
	depends on LEDS_CLASS
	depends on PPC_POWERNV
	depends on OF
	help
	  This option enables support for the system LEDs present on
	  PowerNV platforms. Say 'y' to enable this support in kernel.
	  To compile this driver as a module, choose 'm' here: the module
	  will be called leds-powernv.

config LEDS_SYSCON
	bool "LED support for LEDs on system controllers"
	depends on LEDS_CLASS=y
	depends on MFD_SYSCON
	depends on OF
	help
	  This option enabled support for the LEDs on syscon type
	  devices. This will only work with device tree enabled
	  devices.

config LEDS_VERSATILE
	tristate "LED support for the ARM Versatile and RealView"
	depends on ARCH_REALVIEW || ARCH_VERSATILE
	depends on LEDS_CLASS
	help
	  This option enabled support for the LEDs on the ARM Versatile
	  and RealView boards. Say Y to enabled these.

config LEDS_PM8058
	tristate "LED Support for the Qualcomm PM8058 PMIC"
	depends on MFD_PM8XXX
	depends on LEDS_CLASS
	help
	  Choose this option if you want to use the LED drivers in
	  the Qualcomm PM8058 PMIC.

config LEDS_MLXCPLD
	tristate "LED support for the Mellanox boards"
	depends on X86_64 && DMI
	depends on LEDS_CLASS
	help
	  This option enabled support for the LEDs on the Mellanox
	  boards. Say Y to enabled these.

config LEDS_USER
	tristate "Userspace LED support"
	depends on LEDS_CLASS
	help
	  This option enables support for userspace LEDs. Say 'y' to enable this
	  support in kernel. To compile this driver as a module, choose 'm' here:
	  the module will be called uleds.

config LEDS_NIC78BX
	tristate "LED support for NI PXI NIC78bx devices"
	depends on LEDS_CLASS
	depends on X86 && ACPI
	help
	  This option enables support for the User1 and User2 LEDs on NI
	  PXI NIC78bx devices.

	  To compile this driver as a module, choose M here: the module
	  will be called leds-nic78bx.

comment "LED Triggers"
source "drivers/leds/trigger/Kconfig"

endif # NEW_LEDS
