
On Thu, Feb 25, 2021 at 3:17 PM André Przywara andre.przywara@arm.com wrote:
On 20/02/2021 12:14, Nicolas Boulenguez wrote:
From: Marius Gripsgard marius@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