diff options
author | Christian Lamparter <chunkeey@gmail.com> | 2020-08-13 18:26:19 +0200 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2021-10-22 21:25:18 +0200 |
commit | 8b0c053671e5fb7f36c123a281c51a8071bf96e3 (patch) | |
tree | a0a6816131fed9d37221da6e25f5ec0c6eef1815 /target/linux/apm821xx/base-files/etc/diag.sh | |
parent | e9335c292003e15901ef5f665750f9493132eb28 (diff) | |
download | upstream-8b0c053671e5fb7f36c123a281c51a8071bf96e3.tar.gz upstream-8b0c053671e5fb7f36c123a281c51a8071bf96e3.tar.bz2 upstream-8b0c053671e5fb7f36c123a281c51a8071bf96e3.zip |
apm821xx: implement new LED label naming scheme
This patch updates all current APM82181 devices over to that
"new LED naming scheme". This includes many updates to the
device-tree:
- dropped the deprecated, but beloved "label" property.
- rename all DT leds node names to led-#.
- add function and color properties.
- utilized panic-indicator property.
- dropped led- aliases (see below).
migration scripts for all devices are included.
For more information. See:
<https://www.kernel.org/doc/html/latest/leds/leds-class.html>
For the future: It looks like the color+function properties
won over the dt-alias / label. This will need to be wired up
into openwrt eventually. For APM821xx the situation is that
all devices have a dedicated power and fault indicator.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'target/linux/apm821xx/base-files/etc/diag.sh')
-rw-r--r-- | target/linux/apm821xx/base-files/etc/diag.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/target/linux/apm821xx/base-files/etc/diag.sh b/target/linux/apm821xx/base-files/etc/diag.sh new file mode 100644 index 0000000000..9a2f4202bb --- /dev/null +++ b/target/linux/apm821xx/base-files/etc/diag.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-only + +. /lib/functions/leds.sh + +get_status_led() { + local status_led_file + + status_led_file=$(find /sys/class/leds/ -name "*:power" | head -n1) + if [ -d "$status_led_file" ]; then + basename $status_led_file + return + fi; +} + +get_failsafe_led() { + local status_led_file + + status_led_file=$(find /sys/class/leds/ -name "*:fault" | head -n1) + if [ -d "$status_led_file" ]; then + basename $status_led_file + return + fi; +} + +set_state() { + status_led=$(get_status_led) + + [ -z "$status_led" ] && return + + case "$1" in + preinit) + status_led_blink_preinit + ;; + failsafe) + status_led_off + status_led=$(get_failsafe_led) + status_led_blink_failsafe + ;; + preinit_regular) + status_led_blink_preinit_regular + ;; + upgrade) + status_led_blink_preinit_regular + ;; + done) + status_led_on + ;; + esac +} |