* [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration
2026-04-07 22:34 [PATCH 0/3] sunxi: Fix and extend SPL power LED support Andre Przywara
@ 2026-04-07 22:34 ` Andre Przywara
2026-04-08 8:27 ` Quentin Schulz
2026-04-09 15:56 ` Paul Kocialkowski
2026-04-07 22:34 ` [PATCH 2/3] sunxi: configs: enable power LEDs on 32-bit boards Andre Przywara
2026-04-07 22:34 ` [PATCH 3/3] sunxi: configs: enable power LEDs on 64-bit boards Andre Przywara
2 siblings, 2 replies; 6+ messages in thread
From: Andre Przywara @ 2026-04-07 22:34 UTC (permalink / raw)
To: u-boot
Cc: Tom Rini, Quentin Schulz, Jernej Skrabec, Paul Kocialkowski,
linux-sunxi
The newly introduced Allwinner SPL LED "framework" defined a
SPL_SUNXI_LED_STATUS_STATE Kconfig symbol, that was supposed to denote
the active-low vs. active-high polarity of the LED. However this is
a bool symbol, so it will simply vanish if not defined, and we cannot use
it directly inside a C statement.
Filter the symbol through the IS_ENABLED() macro, which will return 0 if
the symbol is not defined, which is the intended value here.
This fixes configuring LEDs with active-low polarity.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
board/sunxi/board.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index d7722d1858a..80dcae9c1a4 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -563,7 +563,7 @@ static void sunxi_spl_store_dram_size(phys_addr_t dram_size)
static void status_led_init(void)
{
#if CONFIG_IS_ENABLED(SUNXI_LED_STATUS)
- unsigned int state = CONFIG_SPL_SUNXI_LED_STATUS_STATE;
+ unsigned int state = IS_ENABLED(CONFIG_SPL_SUNXI_LED_STATUS_STATE);
unsigned int gpio = CONFIG_SPL_SUNXI_LED_STATUS_BIT;
gpio_request(gpio, "gpio_led");
--
2.46.4
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration
2026-04-07 22:34 ` [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration Andre Przywara
@ 2026-04-08 8:27 ` Quentin Schulz
2026-04-09 15:56 ` Paul Kocialkowski
1 sibling, 0 replies; 6+ messages in thread
From: Quentin Schulz @ 2026-04-08 8:27 UTC (permalink / raw)
To: Andre Przywara, u-boot
Cc: Tom Rini, Jernej Skrabec, Paul Kocialkowski, linux-sunxi
Hi Andre,
On 4/8/26 12:34 AM, Andre Przywara wrote:
> The newly introduced Allwinner SPL LED "framework" defined a
> SPL_SUNXI_LED_STATUS_STATE Kconfig symbol, that was supposed to denote
> the active-low vs. active-high polarity of the LED. However this is
> a bool symbol, so it will simply vanish if not defined, and we cannot use
> it directly inside a C statement.
>
Ugh, thanks for catching that!
> Filter the symbol through the IS_ENABLED() macro, which will return 0 if
> the symbol is not defined, which is the intended value here.
>
> This fixes configuring LEDs with active-low polarity.
>
Fixes: 256557dd9aae ("sunxi: remove usage of legacy LED API")
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration
2026-04-07 22:34 ` [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration Andre Przywara
2026-04-08 8:27 ` Quentin Schulz
@ 2026-04-09 15:56 ` Paul Kocialkowski
1 sibling, 0 replies; 6+ messages in thread
From: Paul Kocialkowski @ 2026-04-09 15:56 UTC (permalink / raw)
To: Andre Przywara
Cc: u-boot, Tom Rini, Quentin Schulz, Jernej Skrabec, linux-sunxi
[-- Attachment #1: Type: text/plain, Size: 2430 bytes --]
Hi,
On Wed 08 Apr 26, 00:34, Andre Przywara wrote:
> The newly introduced Allwinner SPL LED "framework" defined a
> SPL_SUNXI_LED_STATUS_STATE Kconfig symbol, that was supposed to denote
> the active-low vs. active-high polarity of the LED. However this is
> a bool symbol, so it will simply vanish if not defined, and we cannot use
> it directly inside a C statement.
>
> Filter the symbol through the IS_ENABLED() macro, which will return 0 if
> the symbol is not defined, which is the intended value here.
>
> This fixes configuring LEDs with active-low polarity.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
> board/sunxi/board.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index d7722d1858a..80dcae9c1a4 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -563,7 +563,7 @@ static void sunxi_spl_store_dram_size(phys_addr_t dram_size)
> static void status_led_init(void)
> {
> #if CONFIG_IS_ENABLED(SUNXI_LED_STATUS)
> - unsigned int state = CONFIG_SPL_SUNXI_LED_STATUS_STATE;
> + unsigned int state = IS_ENABLED(CONFIG_SPL_SUNXI_LED_STATUS_STATE);
Sorry I didn't react to the initial submission, but it feels like the
CONFIG_SPL_SUNXI_LED_STATUS_STATE symbol really means active-high if enabled
and active-low if disabled. The name would suggest that it's an int with a value
of either 0 or 1 instead.
I think it would be less confusing to call the symbol
CONFIG_SPL_SUNXI_LED_STATUS_ACTIVE_LOW and reverse its meaning, so that we can
spare defining it in most configs (that will be active-high).
Also the description currently mentions "initial state" which may be confusing
as it could refer to the state inherited after reset (e.g. due to some pull
resistor) or the state we do set in the SPL.
> unsigned int gpio = CONFIG_SPL_SUNXI_LED_STATUS_BIT;
And while at it I would rename this to something like:
CONFIG_SPL_SUNXI_LED_STATUS_GPIO since it indicates the GPIO number, not a
specific bit in a sunxi-specific kind of register.
What do you think?
All the best,
Paul
>
> gpio_request(gpio, "gpio_led");
> --
> 2.46.4
>
--
Paul Kocialkowski,
Free software developer - https://www.paulk.fr/
Independent contractor - sys-base - https://www.sys-base.io/
Contributor to fully free software support for selected hardware.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/3] sunxi: configs: enable power LEDs on 32-bit boards
2026-04-07 22:34 [PATCH 0/3] sunxi: Fix and extend SPL power LED support Andre Przywara
2026-04-07 22:34 ` [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration Andre Przywara
@ 2026-04-07 22:34 ` Andre Przywara
2026-04-07 22:34 ` [PATCH 3/3] sunxi: configs: enable power LEDs on 64-bit boards Andre Przywara
2 siblings, 0 replies; 6+ messages in thread
From: Andre Przywara @ 2026-04-07 22:34 UTC (permalink / raw)
To: u-boot
Cc: Tom Rini, Quentin Schulz, Jernej Skrabec, Paul Kocialkowski,
linux-sunxi
We recently gained a simple way to enable a power LED very early in the
SPL boot, through simple Kconfig variables.
Add those symbols to those boards' defconfigs where the DT indicates a
default-on power LED. The number used is <port bank> * 32 + <pin no>,
an active low setup means CONFIG_SPL_SUNXI_LED_STATUS_STATE must be
undefined.
This will light up the power LED very early in the (SPL) boot phase on
those 32-bit boards.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
configs/A13-OLinuXinoM_defconfig | 3 +++
configs/Bananapi_M2_Ultra_defconfig | 3 +++
configs/Bananapi_m2m_defconfig | 3 +++
configs/Mele_A1000G_quad_defconfig | 3 +++
configs/Mele_A1000_defconfig | 3 +++
configs/Mele_M9_defconfig | 3 +++
configs/bananapi_m1_plus_defconfig | 3 +++
configs/bananapi_m2_berry_defconfig | 3 +++
configs/bananapi_m2_zero_defconfig | 3 +++
configs/beelink_x2_defconfig | 3 +++
configs/icnova-a20-adb4006_defconfig | 3 +++
configs/nanopi_duo2_defconfig | 3 +++
configs/nanopi_neo_air_defconfig | 3 +++
configs/orangepi_2_defconfig | 3 +++
configs/orangepi_lite_defconfig | 3 +++
configs/orangepi_one_defconfig | 3 +++
configs/orangepi_pc_defconfig | 3 +++
configs/orangepi_zero_defconfig | 3 +++
configs/orangepi_zero_plus2_h3_defconfig | 3 +++
19 files changed, 57 insertions(+)
diff --git a/configs/A13-OLinuXinoM_defconfig b/configs/A13-OLinuXinoM_defconfig
index f547635302f..7fbce4b6dd2 100644
--- a/configs/A13-OLinuXinoM_defconfig
+++ b/configs/A13-OLinuXinoM_defconfig
@@ -10,6 +10,9 @@ CONFIG_VIDEO_VGA_VIA_LCD=y
CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
CONFIG_VIDEO_LCD_POWER="PB10"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=201
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SYS_I2C_MVTWSI=y
CONFIG_SYS_I2C_SLAVE=0x7f
diff --git a/configs/Bananapi_M2_Ultra_defconfig b/configs/Bananapi_M2_Ultra_defconfig
index 375b0063c1a..6e1b5b8c921 100644
--- a/configs/Bananapi_M2_Ultra_defconfig
+++ b/configs/Bananapi_M2_Ultra_defconfig
@@ -5,6 +5,9 @@ CONFIG_DRAM_CLK=576
CONFIG_SPL=y
CONFIG_MACH_SUN8I_R40=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=244
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_HAS_ARMV7_SECURE_BASE is not set
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
diff --git a/configs/Bananapi_m2m_defconfig b/configs/Bananapi_m2m_defconfig
index 0c20cce49ea..d8f99d0c70e 100644
--- a/configs/Bananapi_m2m_defconfig
+++ b/configs/Bananapi_m2m_defconfig
@@ -7,6 +7,9 @@ CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_ZQ=15291
CONFIG_DRAM_ODT_EN=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=355
+# CONFIG_SPL_SUNXI_LED_STATUS_STATE is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/Mele_A1000G_quad_defconfig b/configs/Mele_A1000G_quad_defconfig
index 1f4739e0005..320856bda4e 100644
--- a/configs/Mele_A1000G_quad_defconfig
+++ b/configs/Mele_A1000G_quad_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-mele-a1000g-quad"
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=120
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=237
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_PHY_REALTEK=y
CONFIG_ETH_DESIGNWARE=y
diff --git a/configs/Mele_A1000_defconfig b/configs/Mele_A1000_defconfig
index 93e73ebe3f1..7bfe9afb35c 100644
--- a/configs/Mele_A1000_defconfig
+++ b/configs/Mele_A1000_defconfig
@@ -5,6 +5,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_VIDEO_VGA=y
CONFIG_VIDEO_COMPOSITE=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=244
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
diff --git a/configs/Mele_M9_defconfig b/configs/Mele_M9_defconfig
index 9b1bb97eedd..a3dcbd21f8f 100644
--- a/configs/Mele_M9_defconfig
+++ b/configs/Mele_M9_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-m9"
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=120
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=237
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_PHY_REALTEK=y
CONFIG_ETH_DESIGNWARE=y
diff --git a/configs/bananapi_m1_plus_defconfig b/configs/bananapi_m1_plus_defconfig
index 22b69aa88cb..49dcd679789 100644
--- a/configs/bananapi_m1_plus_defconfig
+++ b/configs/bananapi_m1_plus_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_VIDEO_COMPOSITE=y
CONFIG_GMAC_TX_DELAY=3
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=249
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
diff --git a/configs/bananapi_m2_berry_defconfig b/configs/bananapi_m2_berry_defconfig
index b406d519684..3d03b5fc596 100644
--- a/configs/bananapi_m2_berry_defconfig
+++ b/configs/bananapi_m2_berry_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-v40-bananapi-m2-berry"
CONFIG_DRAM_CLK=576
CONFIG_SPL=y
CONFIG_MACH_SUN8I_R40=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=244
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_HAS_ARMV7_SECURE_BASE is not set
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig
index 337bafecd47..fcde63441b5 100644
--- a/configs/bananapi_m2_zero_defconfig
+++ b/configs/bananapi_m2_zero_defconfig
@@ -4,4 +4,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-m2-zero"
CONFIG_DRAM_CLK=408
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+# CONFIG_SPL_SUNXI_LED_STATUS_STATE is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
diff --git a/configs/beelink_x2_defconfig b/configs/beelink_x2_defconfig
index 3b0be26f063..1435ebc667d 100644
--- a/configs/beelink_x2_defconfig
+++ b/configs/beelink_x2_defconfig
@@ -5,6 +5,9 @@ CONFIG_DRAM_CLK=567
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/icnova-a20-adb4006_defconfig b/configs/icnova-a20-adb4006_defconfig
index 507e330612e..9aed628d294 100644
--- a/configs/icnova-a20-adb4006_defconfig
+++ b/configs/icnova-a20-adb4006_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-icnova-a20-adb4006"
CONFIG_DRAM_CLK=384
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=245
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
diff --git a/configs/nanopi_duo2_defconfig b/configs/nanopi_duo2_defconfig
index 41b5502d24e..3f59b2f0071 100644
--- a/configs/nanopi_duo2_defconfig
+++ b/configs/nanopi_duo2_defconfig
@@ -5,6 +5,9 @@ CONFIG_DRAM_CLK=408
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
# CONFIG_VIDEO_DE2 is not set
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_CONSOLE_MUX=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/nanopi_neo_air_defconfig b/configs/nanopi_neo_air_defconfig
index 3b8cbbfcdba..c91a7f79b5e 100644
--- a/configs/nanopi_neo_air_defconfig
+++ b/configs/nanopi_neo_air_defconfig
@@ -5,6 +5,9 @@ CONFIG_DRAM_CLK=408
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
# CONFIG_VIDEO_DE2 is not set
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_CONSOLE_MUX=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/orangepi_2_defconfig b/configs/orangepi_2_defconfig
index 88433808538..e12b98161fd 100644
--- a/configs/orangepi_2_defconfig
+++ b/configs/orangepi_2_defconfig
@@ -5,6 +5,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-2"
CONFIG_DRAM_CLK=672
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/orangepi_lite_defconfig b/configs/orangepi_lite_defconfig
index ea1548f0fcd..08a7c516f89 100644
--- a/configs/orangepi_lite_defconfig
+++ b/configs/orangepi_lite_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-lite"
CONFIG_DRAM_CLK=672
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
diff --git a/configs/orangepi_one_defconfig b/configs/orangepi_one_defconfig
index e4de13de26b..7ee16c2dcb7 100644
--- a/configs/orangepi_one_defconfig
+++ b/configs/orangepi_one_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-one"
CONFIG_DRAM_CLK=672
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/orangepi_pc_defconfig b/configs/orangepi_pc_defconfig
index f857d7fa203..12903541a84 100644
--- a/configs/orangepi_pc_defconfig
+++ b/configs/orangepi_pc_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-pc"
CONFIG_DRAM_CLK=624
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig
index e128f5fcdb3..9a11154c9f9 100644
--- a/configs/orangepi_zero_defconfig
+++ b/configs/orangepi_zero_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
# CONFIG_VIDEO_DE2 is not set
CONFIG_SPL_SPI_SUNXI=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_CONSOLE_MUX=y
CONFIG_MTD=y
diff --git a/configs/orangepi_zero_plus2_h3_defconfig b/configs/orangepi_zero_plus2_h3_defconfig
index caf515c7026..dd37b1a3fff 100644
--- a/configs/orangepi_zero_plus2_h3_defconfig
+++ b/configs/orangepi_zero_plus2_h3_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
# CONFIG_DRAM_ODT_EN is not set
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
--
2.46.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] sunxi: configs: enable power LEDs on 64-bit boards
2026-04-07 22:34 [PATCH 0/3] sunxi: Fix and extend SPL power LED support Andre Przywara
2026-04-07 22:34 ` [PATCH 1/3] sunxi: spl: fix SPL_SUNXI_LED active low configuration Andre Przywara
2026-04-07 22:34 ` [PATCH 2/3] sunxi: configs: enable power LEDs on 32-bit boards Andre Przywara
@ 2026-04-07 22:34 ` Andre Przywara
2 siblings, 0 replies; 6+ messages in thread
From: Andre Przywara @ 2026-04-07 22:34 UTC (permalink / raw)
To: u-boot
Cc: Tom Rini, Quentin Schulz, Jernej Skrabec, Paul Kocialkowski,
linux-sunxi
We recently gained a simple way to enable a power LED very early in the
SPL boot, through simple Kconfig variables.
Add those symbols to those boards' defconfigs where the DT indicates a
default-on power LED. The number used is <port bank> * 32 + <pin no>,
an active low setup means CONFIG_SPL_SUNXI_LED_STATUS_STATE must be
undefined.
This will light up the power LED very early in the (SPL) boot phase on
those 64-bit boards.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
configs/anbernic_rg35xx_h700_defconfig | 3 +++
configs/bananapi_m64_defconfig | 3 +++
configs/beelink_gs1_defconfig | 3 +++
configs/liontron-h-a133l_defconfig | 3 +++
configs/nanopi_neo2_defconfig | 3 +++
configs/nanopi_neo_plus2_defconfig | 3 +++
configs/orangepi_3_defconfig | 3 +++
configs/orangepi_lite2_defconfig | 3 +++
configs/orangepi_pc2_defconfig | 3 +++
configs/orangepi_prime_defconfig | 3 +++
configs/orangepi_zero2_defconfig | 3 +++
configs/orangepi_zero_plus2_defconfig | 3 +++
configs/orangepi_zero_plus_defconfig | 3 +++
configs/radxa-cubie-a5e_defconfig | 3 +++
configs/tanix_tx1_defconfig | 3 +++
15 files changed, 45 insertions(+)
diff --git a/configs/anbernic_rg35xx_h700_defconfig b/configs/anbernic_rg35xx_h700_defconfig
index 2fa57cbecce..fb3df175521 100644
--- a/configs/anbernic_rg35xx_h700_defconfig
+++ b/configs/anbernic_rg35xx_h700_defconfig
@@ -16,6 +16,9 @@ CONFIG_DRAM_SUNXI_PHY_ADDR_MAP_1=y
CONFIG_MACH_SUN50I_H616=y
CONFIG_SUNXI_DRAM_H616_LPDDR4=y
CONFIG_R_I2C_ENABLE=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=268
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/bananapi_m64_defconfig b/configs/bananapi_m64_defconfig
index d957071cb13..413de4919d5 100644
--- a/configs/bananapi_m64_defconfig
+++ b/configs/bananapi_m64_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-bananapi-m64"
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=120
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_SUN8I_EMAC=y
diff --git a/configs/beelink_gs1_defconfig b/configs/beelink_gs1_defconfig
index de46d205453..6a1af7f9b3a 100644
--- a/configs/beelink_gs1_defconfig
+++ b/configs/beelink_gs1_defconfig
@@ -5,6 +5,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=356
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_PSCI_RESET is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_LED=y
diff --git a/configs/liontron-h-a133l_defconfig b/configs/liontron-h-a133l_defconfig
index 831d5b56e3a..f7bb994509f 100644
--- a/configs/liontron-h-a133l_defconfig
+++ b/configs/liontron-h-a133l_defconfig
@@ -23,6 +23,9 @@ CONFIG_MACH_SUN50I_A133=y
CONFIG_SUNXI_DRAM_A133_LPDDR4=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_R_I2C_ENABLE=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=240
+# CONFIG_SPL_SUNXI_LED_STATUS_STATE is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/nanopi_neo2_defconfig b/configs/nanopi_neo2_defconfig
index 6704a24a880..83bf0326bd4 100644
--- a/configs/nanopi_neo2_defconfig
+++ b/configs/nanopi_neo2_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/nanopi_neo_plus2_defconfig b/configs/nanopi_neo_plus2_defconfig
index e80e32a63d4..024301f990c 100644
--- a/configs/nanopi_neo_plus2_defconfig
+++ b/configs/nanopi_neo_plus2_defconfig
@@ -7,6 +7,9 @@ CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/orangepi_3_defconfig b/configs/orangepi_3_defconfig
index 125137bc321..1fa1676e091 100644
--- a/configs/orangepi_3_defconfig
+++ b/configs/orangepi_3_defconfig
@@ -6,6 +6,9 @@ CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_BLUETOOTH_DT_DEVICE_FIXUP="brcm,bcm4345c5"
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=356
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_PHY_SUN50I_USB3=y
CONFIG_USB_XHCI_HCD=y
diff --git a/configs/orangepi_lite2_defconfig b/configs/orangepi_lite2_defconfig
index 577f7436c15..10864827adf 100644
--- a/configs/orangepi_lite2_defconfig
+++ b/configs/orangepi_lite2_defconfig
@@ -4,6 +4,9 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-lite2"
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=356
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_PSCI_RESET is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/orangepi_pc2_defconfig b/configs/orangepi_pc2_defconfig
index d856a25814b..1e9a7cdaf7a 100644
--- a/configs/orangepi_pc2_defconfig
+++ b/configs/orangepi_pc2_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_ZQ=3881977
CONFIG_SPL_SPI_SUNXI=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/orangepi_prime_defconfig b/configs/orangepi_prime_defconfig
index e93154cc0e9..7f622fe70f1 100644
--- a/configs/orangepi_prime_defconfig
+++ b/configs/orangepi_prime_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/orangepi_zero2_defconfig b/configs/orangepi_zero2_defconfig
index 831bfe66e25..942b751e181 100644
--- a/configs/orangepi_zero2_defconfig
+++ b/configs/orangepi_zero2_defconfig
@@ -10,6 +10,9 @@ CONFIG_MACH_SUN50I_H616=y
CONFIG_SUNXI_DRAM_H616_DDR3_1333=y
CONFIG_R_I2C_ENABLE=y
CONFIG_SPL_SPI_SUNXI=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=76
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/orangepi_zero_plus2_defconfig b/configs/orangepi_zero_plus2_defconfig
index c4d9800975c..945379533ab 100644
--- a/configs/orangepi_zero_plus2_defconfig
+++ b/configs/orangepi_zero_plus2_defconfig
@@ -7,6 +7,9 @@ CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/orangepi_zero_plus_defconfig b/configs/orangepi_zero_plus_defconfig
index 4b6491dc846..2979c9f7f7b 100644
--- a/configs/orangepi_zero_plus_defconfig
+++ b/configs/orangepi_zero_plus_defconfig
@@ -6,6 +6,9 @@ CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=362
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/radxa-cubie-a5e_defconfig b/configs/radxa-cubie-a5e_defconfig
index 9d204ef5548..88e9a0879f7 100644
--- a/configs/radxa-cubie-a5e_defconfig
+++ b/configs/radxa-cubie-a5e_defconfig
@@ -15,6 +15,9 @@ CONFIG_DRAM_SUNXI_TPR12=0x3533302f
CONFIG_MACH_SUN55I_A523=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_R_I2C_ENABLE=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=356
+# CONFIG_SPL_SUNXI_LED_STATUS_STATE is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/tanix_tx1_defconfig b/configs/tanix_tx1_defconfig
index 1bd167ce0f6..0b5c57b93b9 100644
--- a/configs/tanix_tx1_defconfig
+++ b/configs/tanix_tx1_defconfig
@@ -14,6 +14,9 @@ CONFIG_MACH_SUN50I_H616=y
CONFIG_SUNXI_DRAM_H616_LPDDR3=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_R_I2C_ENABLE=y
+CONFIG_SPL_SUNXI_LED_STATUS=y
+CONFIG_SPL_SUNXI_LED_STATUS_BIT=231
+CONFIG_SPL_SUNXI_LED_STATUS_STATE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
--
2.46.4
^ permalink raw reply related [flat|nested] 6+ messages in thread