[PATCH v3] Cubieboard2:SUN7I:Add LED BOOT support

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@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
participants (1)
-
Javad Rahimi