summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Schulz <[email protected]>2025-11-19 18:01:14 +0100
committerTom Rini <[email protected]>2025-12-05 13:38:09 -0600
commitb06e52f2ea937077b3ff8296e4a67648138ac897 (patch)
tree8436a1e25a0d1ac78d49b16e31fcba175a2b4319
parent16415e9563ec04241c58f0a85cd2fc1d89f3033e (diff)
corvus: migrate red LED to the modern API
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 <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
-rw-r--r--arch/arm/dts/at91sam9g45-corvus.dts11
-rw-r--r--board/siemens/corvus/board.c11
-rw-r--r--configs/corvus_defconfig2
3 files changed, 13 insertions, 11 deletions
diff --git a/arch/arm/dts/at91sam9g45-corvus.dts b/arch/arm/dts/at91sam9g45-corvus.dts
index 67be80bb2b3..acc05994650 100644
--- a/arch/arm/dts/at91sam9g45-corvus.dts
+++ b/arch/arm/dts/at91sam9g45-corvus.dts
@@ -10,6 +10,7 @@
* 2011 Nicolas Ferre <[email protected]>
*/
/dts-v1/;
+#include <dt-bindings/leds/common.h>
#include "at91sam9g45.dtsi"
/ {
@@ -106,4 +107,14 @@
status = "okay";
};
};
+
+ leds {
+ compatible = "gpio-leds";
+
+ red_led: led-0 {
+ gpios = <&pioD 31 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ default-state = "on";
+ };
+ };
};
diff --git a/board/siemens/corvus/board.c b/board/siemens/corvus/board.c
index 670bcab484c..4c83774fceb 100644
--- a/board/siemens/corvus/board.c
+++ b/board/siemens/corvus/board.c
@@ -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)
diff --git a/configs/corvus_defconfig b/configs/corvus_defconfig
index fe7d53bcdd8..3d16b9e3abe 100644
--- a/configs/corvus_defconfig
+++ b/configs/corvus_defconfig
@@ -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