]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
corvus: migrate red LED to the modern API
authorQuentin Schulz <quentin.schulz@cherry.de>
Wed, 19 Nov 2025 17:01:14 +0000 (18:01 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 5 Dec 2025 19:38:09 +0000 (13:38 -0600)
red_led_on is either called from the legacy LED shell command (which is
disabled for corvus) or from arm-specific assembly code right before
jumping into board_init_r() in U-Boot proper.

Let's migrate to use the more modern LED subsystem by migrating to DM.

The default-state is set to on to mimic red_led_on() from the
arm-specific assembly code as a missing default-state FDT property
currently means the LED is not probed except if explicitly done via the
led shell command. Note though that this is running much later in the
boot process, once DM is started.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
arch/arm/dts/at91sam9g45-corvus.dts
board/siemens/corvus/board.c
configs/corvus_defconfig

index 67be80bb2b3190cbd7196a5a7675cdafc16e5119..acc0599465075b5883bb38a291c3120712319fa7 100644 (file)
@@ -10,6 +10,7 @@
  *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>
  */
 /dts-v1/;
+#include <dt-bindings/leds/common.h>
 #include "at91sam9g45.dtsi"
 
 / {
                        status = "okay";
                };
        };
+
+       leds {
+               compatible = "gpio-leds";
+
+               red_led: led-0 {
+                       gpios = <&pioD 31 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "on";
+               };
+       };
 };
index 670bcab484cafef75478e495531bf787bc6d9eae..4c83774fcebe17604d7d3a8e5d65a8e65aeb9e4a 100644 (file)
@@ -52,17 +52,6 @@ static void corvus_request_gpio(void)
        gpio_request(AT91_PIN_PD3, "USB1");
        gpio_request(AT91_PIN_PB18, "SPICS1");
        gpio_request(AT91_PIN_PB3, "SPICS0");
-       gpio_request(AT91_PIN_PD31, "red led"); /* this is the user1 led */
-}
-
-void red_led_on(void)
-{
-       gpio_set_value(AT91_PIN_PD31, 1);
-}
-
-void red_led_off(void)
-{
-       gpio_set_value(AT91_PIN_PD31, 0);
 }
 
 static void corvus_nand_hw_init(void)
index fe7d53bcdd854d3ab5b66ac87b5ecd92de66c765..3d16b9e3abed5fb025ee81283628f9cbb6ee2a63 100644 (file)
@@ -75,6 +75,8 @@ CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
 CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_AT91_GPIO=y
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT=y