aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/apm821xx/base-files/etc/diag.sh
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@gmail.com>2020-08-13 18:26:19 +0200
committerChristian Lamparter <chunkeey@gmail.com>2021-10-22 21:25:18 +0200
commit8b0c053671e5fb7f36c123a281c51a8071bf96e3 (patch)
treea0a6816131fed9d37221da6e25f5ec0c6eef1815 /target/linux/apm821xx/base-files/etc/diag.sh
parente9335c292003e15901ef5f665750f9493132eb28 (diff)
downloadupstream-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.sh50
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
+}