[PATCH 20/20] Enable led on boot to notify user of boot status

Peter Robinson pbrobinson at gmail.com
Thu Feb 25 18:19:12 CET 2021


On Thu, Feb 25, 2021 at 3:17 PM André Przywara <andre.przywara at arm.com> wrote:
>
> On 20/02/2021 12:14, Nicolas Boulenguez wrote:
> > From: Marius Gripsgard <marius at ubports.com>
>
> Hi,
>
> This is not really Pinephone specific, actually not even sunxi specific.
> I see two better ways of solving this:
>
> - We introduce some generic code to find "gpio-leds" subnodes in the DT,
> which have a default-state = "on" property. This could be either added
> to drivers/led/led_gpio.c, or in some higher level.
>
> - We introduce a generic boot LED GPIO config symbol. Maybe there is
> already something, that sounds like a generally useful feature? That
> would have the advantage of being already enabled in the SPL (admittedly
> a sunxi specific problem).
>
> Any opinions?

I believe there's already a way to use LEDs for status during the boot
process using the CONFIG_LED_STATUS selection of config options. A
grep of the defconfig already shows a number of boards using this. I
wonder why the already existing infrastructure isn't useful.

Peter

> Cheers,
> Andre
>
> > ---
> >  arch/arm/mach-sunxi/Kconfig | 5 +++++
> >  board/sunxi/board.c         | 4 ++--
> >  configs/pinephone_defconfig | 1 +
> >  3 files changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> > index 8421f3b685..2bfdf7738b 100644
> > --- a/arch/arm/mach-sunxi/Kconfig
> > +++ b/arch/arm/mach-sunxi/Kconfig
> > @@ -1,5 +1,10 @@
> >  if ARCH_SUNXI
> >
> > +config PINEPHONE_LEDS
> > +     bool "Notify boot status via LEDs on PinePhone"
> > +     ---help---
> > +     LED boot notification.
> > +
> >  config SPL_LDSCRIPT
> >       default "arch/arm/cpu/armv7/sunxi/u-boot-spl.lds" if !ARM64
> >
> > diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> > index abd7e390b2..a117b89ba2 100644
> > --- a/board/sunxi/board.c
> > +++ b/board/sunxi/board.c
> > @@ -637,6 +638,12 @@ void sunxi_board_init(void)
> >  {
> >       int power_failed = 0;
> >
> > +#ifdef CONFIG_PINEPHONE_LEDS
> > +     /* PD18:G PD19:R PD20:B */
> > +     gpio_request(SUNXI_GPD(18), "led:green");
> > +     gpio_direction_output(SUNXI_GPD(18), 1);
> > +#endif
> > +
> >  #ifdef CONFIG_SY8106A_POWER
> >       power_failed = sy8106a_set_vout1(CONFIG_SY8106A_VOUT1_VOLT);
> >  #endif
> > diff --git a/configs/pinephone_defconfig b/configs/pinephone_defconfig
> > index ff5da42ce0..9de6ab2316 100644
> > --- a/configs/pinephone_defconfig
> > +++ b/configs/pinephone_defconfig
> > @@ -1,6 +21,7 @@
> >  CONFIG_ARM=y
> >  CONFIG_ARCH_SUNXI=y
> >  CONFIG_SPL=y
> > +CONFIG_PINEPHONE_LEDS=y
> >  CONFIG_MACH_SUN50I=y
> >  CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
> >  CONFIG_DRAM_CLK=552
> >
>


More information about the U-Boot mailing list