[PATCH v3] Cubieboard2:SUN7I:Add LED BOOT support
Javad Rahimi
javad321javad at gmail.com
Wed Dec 8 15:36:01 CET 2021
This feature makes it possible to assign one of
LED1(PH20) and LED2(PH21) to BOOT process LED.
User should activates the "Enable status LED API" in
"Device Drivers -> LED Support"
Signed-off-by: Javad Rahimi <javad321javad at gmail.com>
---
This is my first contributation in open source world.
I'm sorry if I have mistakes in my commits and versioning.
I do my best to learn fast.
Changes in v3:
- Maintainers email added
Changes in v2:
- Missed braces added
- Unnecessary debug removed
- Some typo fixed
board/sunxi/board.c | 49 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 4f5747c34a..5e2f6ae902 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -1002,3 +1002,52 @@ int board_fit_config_name_match(const char *name)
return ret;
}
#endif
+
+#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT) && defined(CONFIG_LED_STATUS_BOARD_SPECIFIC)
+
+#define CUBIE2_LED_BOOT_GPIO "PH20"
+static int gpio_boot_led;
+
+void __led_init(led_id_t mask, int state)
+{
+ int ret;
+
+ if (mask != CONFIG_LED_STATUS_BOOT)
+ return;
+
+ ret = gpio_lookup_name(CUBIE2_LED_BOOT_GPIO, NULL, NULL, &gpio_boot_led);
+
+ if (ret)
+ return;
+
+ ret = gpio_request(gpio_boot_led, "boot_led");
+ if (ret == -1) {
+ debug("[gpio_request] Error:%d\n", ret);
+ return;
+ }
+
+ ret = gpio_direction_output(gpio_boot_led, 1);
+ if (ret == -1) {
+ debug("[gpio_direction_output] Error:%d\n", ret);
+ return;
+ }
+ __led_set(mask, state);
+}
+
+void __led_set(led_id_t mask, int state)
+{
+ if (mask != CONFIG_LED_STATUS_BOOT)
+ return;
+
+ gpio_set_value(gpio_boot_led, state);
+}
+
+void __led_toggle(led_id_t mask)
+{
+ if (mask != CONFIG_LED_STATUS_BOOT)
+ return;
+
+ gpio_set_value(gpio_boot_led, !gpio_get_value(gpio_boot_led));
+}
+
+#endif
--
2.25.1
More information about the U-Boot
mailing list