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 <javad321ja...@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