mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-26 20:44:32 +08:00
8f0adae1cb
The GPIO LED trigger exposes a userspace ABI where a user can echo a GPIO number from the global GPIO numberspace into a file that will trigger a certain LED when active. This is problematic because the global GPIO numberspace is inherently instable. The trigger came about at a time when systems had one GPIO controller that defined hard-wired GPIOs numbered 0..N and this number space was stable. We have since moved to dynamic allocation of GPIO numbers and there is no real guarantee that a GPIO number will stay consistent even across a reboot: consider a USB attached GPIO controller for example. Or two. Or the effect of probe order after adding -EPROBE_DEFER to the kernel. The trigger was added to support keypad LEDs on the Nokia n810 from the GPIO event when a user slides up/down the keypad. This is arch/arm/boot/dts/omap2420-n810.dts. A userspace script is needed to activate the trigger. This will be broken unless the script was updated recently since the OMAP GPIO controller now uses dynamic GPIO number allocations. I want to know that this trigger has active users that cannot live without it if we are to continue to support it. Option if this is really needed: I can develop a new trigger that can associate GPIOs with LEDs as triggers using device tree, which should also remove the use of userspace custom scripts to achieve this and be much more trustworthy, if someone with the Nokia n810 or a device with a similar need is willing to test it. Suggested-by Pavel Machek <pavel@ucw.cz> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Lee Jones <lee@kernel.org> Link: https://lore.kernel.org/r/20230314210059.419159-1-linus.walleij@linaro.org
159 lines
4.5 KiB
Plaintext
159 lines
4.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
menuconfig LEDS_TRIGGERS
|
|
bool "LED Trigger support"
|
|
depends on LEDS_CLASS
|
|
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.
|
|
|
|
if LEDS_TRIGGERS
|
|
|
|
config LEDS_TRIGGER_TIMER
|
|
tristate "LED Timer Trigger"
|
|
help
|
|
This allows LEDs to be controlled by a programmable timer
|
|
via sysfs. Some LED hardware can be programmed to start
|
|
blinking the LED without any further software interaction.
|
|
For more details read Documentation/leds/leds-class.rst.
|
|
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_ONESHOT
|
|
tristate "LED One-shot Trigger"
|
|
help
|
|
This allows LEDs to blink in one-shot pulses with parameters
|
|
controlled via sysfs. It's useful to notify the user on
|
|
sporadic events, when there are no clear begin and end trap points,
|
|
or on dense events, where this blinks the LED at constant rate if
|
|
rearmed continuously.
|
|
|
|
It also shows how to use the led_blink_set_oneshot() function.
|
|
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_DISK
|
|
bool "LED Disk Trigger"
|
|
depends on ATA
|
|
help
|
|
This allows LEDs to be controlled by disk activity.
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_MTD
|
|
bool "LED MTD (NAND/NOR) Trigger"
|
|
depends on MTD
|
|
help
|
|
This allows LEDs to be controlled by MTD activity.
|
|
If unsure, say N.
|
|
|
|
config LEDS_TRIGGER_HEARTBEAT
|
|
tristate "LED Heartbeat Trigger"
|
|
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.
|
|
|
|
config LEDS_TRIGGER_BACKLIGHT
|
|
tristate "LED backlight Trigger"
|
|
help
|
|
This allows LEDs to be controlled as a backlight device: they
|
|
turn off and on when the display is blanked and unblanked.
|
|
|
|
If unsure, say N.
|
|
|
|
config LEDS_TRIGGER_CPU
|
|
bool "LED CPU Trigger"
|
|
depends on !PREEMPT_RT
|
|
help
|
|
This allows LEDs to be controlled by active CPUs. This shows
|
|
the active CPUs across an array of LEDs so you can see which
|
|
CPUs are active on the system at any given moment.
|
|
|
|
If unsure, say N.
|
|
|
|
config LEDS_TRIGGER_ACTIVITY
|
|
tristate "LED activity Trigger"
|
|
help
|
|
This allows LEDs to be controlled by an immediate CPU usage.
|
|
The flash frequency and duty cycle varies from faint flashes to
|
|
intense brightness depending on the instant CPU load.
|
|
If unsure, say N.
|
|
|
|
config LEDS_TRIGGER_GPIO
|
|
tristate "LED GPIO Trigger"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
depends on BROKEN
|
|
help
|
|
This allows LEDs to be controlled by gpio events. It's good
|
|
when using gpios as switches and triggering the needed LEDs
|
|
from there. One use case is n810's keypad LEDs that could
|
|
be triggered by this trigger when user slides up to show
|
|
keypad.
|
|
|
|
If unsure, say N.
|
|
|
|
config LEDS_TRIGGER_DEFAULT_ON
|
|
tristate "LED Default ON Trigger"
|
|
help
|
|
This allows LEDs to be initialised in the ON state.
|
|
If unsure, say Y.
|
|
|
|
comment "iptables trigger is under Netfilter config (LED target)"
|
|
depends on LEDS_TRIGGERS
|
|
|
|
config LEDS_TRIGGER_TRANSIENT
|
|
tristate "LED Transient Trigger"
|
|
help
|
|
This allows one time activation of a transient state on
|
|
GPIO/PWM based hardware.
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_CAMERA
|
|
tristate "LED Camera Flash/Torch Trigger"
|
|
help
|
|
This allows LEDs to be controlled as a camera flash/torch device.
|
|
This enables direct flash/torch on/off by the driver, kernel space.
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_PANIC
|
|
bool "LED Panic Trigger"
|
|
help
|
|
This allows LEDs to be configured to blink on a kernel panic.
|
|
Enabling this option will allow to mark certain LEDs as panic indicators,
|
|
allowing to blink them on a kernel panic, even if they are set to
|
|
a different trigger.
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_NETDEV
|
|
tristate "LED Netdev Trigger"
|
|
depends on NET
|
|
help
|
|
This allows LEDs to be controlled by network device activity.
|
|
If unsure, say Y.
|
|
|
|
config LEDS_TRIGGER_PATTERN
|
|
tristate "LED Pattern Trigger"
|
|
help
|
|
This allows LEDs to be controlled by a software or hardware pattern
|
|
which is a series of tuples, of brightness and duration (ms).
|
|
If unsure, say N
|
|
|
|
config LEDS_TRIGGER_AUDIO
|
|
tristate "Audio Mute LED Trigger"
|
|
help
|
|
This allows LEDs to be controlled by audio drivers for following
|
|
the audio mute and mic-mute changes.
|
|
If unsure, say N
|
|
|
|
config LEDS_TRIGGER_TTY
|
|
tristate "LED Trigger for TTY devices"
|
|
depends on TTY
|
|
help
|
|
This allows LEDs to be controlled by activity on ttys which includes
|
|
serial devices like /dev/ttyS0.
|
|
|
|
When build as a module this driver will be called ledtrig-tty.
|
|
|
|
endif # LEDS_TRIGGERS
|