[PATCH v4 0/9] misc: introduce STATUS LED activity function
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Jun 20 08:34:03 CEST 2024
On 6/20/24 01:03, Christian Marangi wrote:
> This series expand the STATUS LED framework with a new color
> and a big new feature. One thing that many device need is a way
> to communicate to the user that the device is actually doing
> something.
>
> This is especially useful for recovery steps where an
> user (for example) insert an USB drive, keep a button pressed
> and the device autorecover.
>
> There is currently no way to signal the user externally that
> the bootloader is processing/recoverying aside from setting
> a LED on.
>
> A solid LED on is not enough and won't actually signal any
> kind of progress.
> Solution is the good old blinking LED but uboot doesn't
> suggest (and support) interrupts and almost all the LED
> are usually GPIO LED that doesn't support HW blink.
>
> To fix this and handle the problem of device not supporting
> HW blink, expand the STATUS LED framework with new API.
>
> We introduce a new config LED_STATUS_ACTIVITY, that similar
> to the RED, GREEN and others, takes the LED ID set in
> the LED_STATUS config and is used as the global LED for activity
> operations.
>
> We add status_led_activity_start/stop() used to turn the
> activity LED on and register a cyclic to make it blink.
> LED will continue to blink until _stop() is called.
>
> Function that will start some kind of action will first call
> _start() and then at the end will call stop().
> If (on the broken implementation) a _start() is called before
> calling a _stop(), the Cyclic is first unregister and is
> registered again.
>
> Support for this is initially added to the tftp, mtd and ubi
> command.
>
> This also contains a big fixup for the gpio_led driver that
> currently deviates from the Documentation and make the
> coloured status led feature unusable.
>
> (world tested with the azure pipeline)
Hello Christian,
What is the relationship between CONFIG_LED and CONFIG_LED_STATUS?
Can they be used at the same time or should they be exclusive?
Should CONFIG_LED_STATUS depend on CONFIG_LED?
This should be clarified both in Kconfig and in the documentation.
At least cmd/led.c and cmd/legacy_led.c are conflicting as both provide
a command 'led'.
Can we unify the too?
Best regards
Heinrich
>
> Changes v4:
> - Rebase on top of next
> - Rework for cyclic changes on next
> - Fix compilation error
> - Fix compilation warning due to missing header
> Changes v3:
> - Add log on Status LED error conditions
> Changes v2:
> - Add Documentation conversion
> - Rework to Cyclic and simplify implementation
>
> Christian Marangi (9):
> misc: gpio_led: fix broken coloured LED status functions
> led: status_led: add support for white LED colour
> led: status_led: add function to toggle a status LED
> led: status_led: add warning when an invalid Status LED ID is used
> led: status_led: add new activity LED config and functions
> tftp: implement support for LED status activity
> mtd: implement support for LED status activity
> ubi: implement support for LED status activity
> doc: convert README.LED to .rst documentation
>
> cmd/legacy_led.c | 6 +
> cmd/mtd.c | 19 ++++
> cmd/ubi.c | 15 ++-
> common/board_f.c | 2 +
> doc/README.LED | 77 -------------
> doc/api/index.rst | 1 +
> doc/api/status_led.rst | 35 ++++++
> drivers/led/Kconfig | 30 +++++
> drivers/misc/gpio_led.c | 41 +++++--
> drivers/misc/status_led.c | 75 ++++++++++++-
> include/status_led.h | 231 +++++++++++++++++++++++++++++++++++++-
> net/tftp.c | 7 ++
> 12 files changed, 440 insertions(+), 99 deletions(-)
> delete mode 100644 doc/README.LED
> create mode 100644 doc/api/status_led.rst
>
More information about the U-Boot
mailing list