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

	  This is not related to standard keyboard LEDs which are controlled
	  via the input system.

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.

comment "LED drivers"

config LEDS_CORGI
	tristate "LED Support for the Sharp SL-C7x0 series"
	depends on LEDS_CLASS && PXA_SHARP_C7xx
	help
	  This option enables support for the LEDs on Sharp Zaurus
	  SL-C7x0 series (C700, C750, C760, C860).

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

config LEDS_SPITZ
	tristate "LED Support for the Sharp SL-Cxx00 series"
	depends on LEDS_CLASS && PXA_SHARP_Cxx00
	help
	  This option enables support for the LEDs on Sharp Zaurus
	  SL-Cxx00 series (C1000, C3000, C3100).

config LEDS_IXP4XX
	tristate "LED Support for GPIO connected LEDs on IXP4XX processors"
	depends on LEDS_CLASS && ARCH_IXP4XX
	help
	  This option enables support for the LEDs connected to GPIO
	  outputs of the Intel IXP4XX processors.  To be useful the
	  particular board must have LEDs and they must be connected
	  to the GPIO lines.  If unsure, say Y.

config LEDS_TOSA
	tristate "LED Support for the Sharp SL-6000 series"
	depends on LEDS_CLASS && PXA_SHARPSL
	help
	  This option enables support for the LEDs on Sharp Zaurus
	  SL-6000 series.

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

config LEDS_AMS_DELTA
	tristate "LED Support for the Amstrad Delta (E3)"
	depends on LEDS_CLASS && MACH_AMS_DELTA
	help
	  This option enables support for the LEDs on Amstrad Delta (E3).

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

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

config LEDS_H1940
	tristate "LED Support for iPAQ H1940 device"
	depends on LEDS_CLASS && ARCH_H1940
	help
	  This option enables support for the LEDs on the h1940.

config LEDS_COBALT_QUBE
	tristate "LED Support for the Cobalt Qube series front LED"
	depends on LEDS_CLASS && 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 && MIPS_COBALT
	select LEDS_TRIGGERS
	help
	  This option enables support for the Cobalt Raq series LEDs.

config LEDS_GPIO
	tristate "LED Support for GPIO connected LEDs"
	depends on LEDS_CLASS && GENERIC_GPIO
	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.

comment "LED Triggers"

config LEDS_TRIGGERS
	bool "LED Trigger support"
	help
	  This option enables trigger support for the leds class.
	  These triggers allow kernel events to drive the LEDs and can
	  be configured via sysfs. If unsure, say Y.

config LEDS_TRIGGER_TIMER
	tristate "LED Timer Trigger"
	depends on LEDS_TRIGGERS
	help
	  This allows LEDs to be controlled by a programmable timer
	  via sysfs. If unsure, say Y.

config LEDS_TRIGGER_IDE_DISK
	bool "LED IDE Disk Trigger"
	depends on LEDS_TRIGGERS && BLK_DEV_IDEDISK
	help
	  This allows LEDs to be controlled by IDE disk activity.
	  If unsure, say Y.

config LEDS_TRIGGER_HEARTBEAT
	tristate "LED Heartbeat Trigger"
	depends on LEDS_TRIGGERS
	help
	  This allows LEDs to be controlled by a CPU load average.
	  The flash frequency is a hyperbolic function of the 1-minute
	  load average.
	  If unsure, say Y.

endif # NEW_LEDS
