I wanted to add status LEDs support to my imx6 based board and have found out,
that I could use diag.sh script found in ramips platform, which seems to be
also shared in a few other platforms:
4801276bc2078c5bcf03003c831e3b0a target/linux/ramips/base-files/etc/diag.sh
4801276bc2078c5bcf03003c831e3b0a target/linux/ipq40xx/base-files/etc/diag.sh
4801276bc2078c5bcf03003c831e3b0a target/linux/ath79/base-files/etc/diag.sh
And @chunkeey suggested to me, that I can also add lantiq, ipq806x and
apm821xx to the list of platforms which could share this generic
diag.sh.
I've extended the base diag.sh in a way, that if it detects any of the
DTS LED aliases, then it would use the generic DTS set_led_state code.
The code in platform's diag.sh has moved to base-files package in this
commit:
base-files: diag.sh: Make it more generic towards DTS so it could be reused
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Tested-by: Christian Lamparter <chunkeey@gmail.com> (apm821xx and ipq40xx)
(backported from
9da6cd40ebb29c5d6d7af6af2c18b85448a28790)
+++ /dev/null
-#!/bin/sh
-
-. /lib/functions.sh
-. /lib/functions/leds.sh
-
-boot="$(get_dt_led boot)"
-failsafe="$(get_dt_led failsafe)"
-running="$(get_dt_led running)"
-upgrade="$(get_dt_led upgrade)"
-
-set_state() {
- status_led="$boot"
-
- case "$1" in
- preinit_regular)
- status_led_blink_preinit_regular
- ;;
- preinit)
- status_led_blink_preinit
- ;;
- failsafe)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$failsafe"
- status_led_blink_failsafe
- ;;
- upgrade)
- [ -n "$running" ] && {
- status_led="$upgrade"
- status_led_blink_preinit_regular
- }
- ;;
- done)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_on
- }
- ;;
- esac
-}
+++ /dev/null
-#!/bin/sh
-
-. /lib/functions/leds.sh
-
-boot="$(get_dt_led boot)"
-failsafe="$(get_dt_led failsafe)"
-running="$(get_dt_led running)"
-upgrade="$(get_dt_led upgrade)"
-
-set_state() {
- status_led="$boot"
-
- case "$1" in
- preinit)
- status_led_blink_preinit
- ;;
- failsafe)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$failsafe"
- status_led_blink_failsafe
- ;;
- preinit_regular)
- status_led_blink_preinit_regular
- ;;
- upgrade)
- [ -n "$running" ] && {
- status_led="$upgrade"
- status_led_blink_preinit_regular
- }
- ;;
- done)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_on
- }
- ;;
- esac
-}
+++ /dev/null
-#!/bin/sh
-# Copyright (C) 2016 Henryk Heisig hyniu@o2.pl
-
-. /lib/functions/leds.sh
-
-boot="$(get_dt_led boot)"
-failsafe="$(get_dt_led failsafe)"
-running="$(get_dt_led running)"
-upgrade="$(get_dt_led upgrade)"
-
-set_state() {
- status_led="$boot"
-
- case "$1" in
- preinit)
- status_led_blink_preinit
- ;;
- failsafe)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$failsafe"
- status_led_blink_failsafe
- ;;
- preinit_regular)
- status_led_blink_preinit_regular
- ;;
- upgrade)
- [ -n "$running" ] && {
- status_led="$upgrade"
- status_led_blink_preinit_regular
- }
- ;;
- done)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_on
- }
- ;;
- esac
-}
+++ /dev/null
-#!/bin/sh
-# Copyright (C) 2010-2015 OpenWrt.org
-
-. /lib/functions/leds.sh
-
-boot="$(get_dt_led boot)"
-failsafe="$(get_dt_led failsafe)"
-running="$(get_dt_led running)"
-upgrade="$(get_dt_led upgrade)"
-
-set_state() {
- status_led="$boot"
-
- case "$1" in
- preinit)
- status_led_blink_preinit
- ;;
- failsafe)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$failsafe"
- status_led_blink_failsafe
- ;;
- preinit_regular)
- status_led_blink_preinit_regular
- ;;
- upgrade)
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$upgrade"
- status_led_blink_preinit_regular
- ;;
- done)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_on
- }
- ;;
- esac
-}
+++ /dev/null
-#!/bin/sh
-
-. /lib/functions/leds.sh
-
-boot="$(get_dt_led boot)"
-failsafe="$(get_dt_led failsafe)"
-running="$(get_dt_led running)"
-upgrade="$(get_dt_led upgrade)"
-
-set_state() {
- status_led="$boot"
-
- case "$1" in
- preinit)
- status_led_blink_preinit
- ;;
- failsafe)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$failsafe"
- status_led_blink_failsafe
- ;;
- preinit_regular)
- status_led_blink_preinit_regular
- ;;
- upgrade)
- [ -n "$running" ] && {
- status_led="$running"
- status_led_off
- }
- status_led="$upgrade"
- status_led_blink_preinit_regular
- ;;
- done)
- status_led_off
- [ -n "$running" ] && {
- status_led="$running"
- status_led_on
- }
- ;;
- esac
-}