mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 07:04:28 +00:00
board: sam9x60-curiosity: Let LED subsystem init leds if enabled
If CONFIG_LED and CONFIG_LED_GPIO are enabled, it is not necessary to initialize the RGB LED on the board by manually setting hardcoded GPIOs anymore. Everything is well defined in dts and can be used like on boards of other vendors. Keep the old behaviour as fallback, though. With all this in place enabling CONFIG_CMD_LED gives us a working 'led' command on the U-Boot shell. Signed-off-by: Alexander Dahl <ada@thorsis.com>
This commit is contained in:
parent
72d5e3c140
commit
1818b44b7b
2 changed files with 36 additions and 0 deletions
|
@ -20,6 +20,24 @@
|
|||
chosen {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
config {
|
||||
u-boot,boot-led = "blue";
|
||||
};
|
||||
|
||||
leds {
|
||||
led-red {
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led-green {
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led-blue {
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&clk32 {
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <debug_uart.h>
|
||||
#include <fdtdec.h>
|
||||
#include <init.h>
|
||||
#include <led.h>
|
||||
#include <asm/arch/at91_common.h>
|
||||
#include <asm/arch/at91_rstc.h>
|
||||
#include <asm/arch/at91_sfr.h>
|
||||
|
@ -18,6 +19,7 @@
|
|||
#include <asm/global_data.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <dm/ofnode.h>
|
||||
|
||||
extern void at91_pda_detect(void);
|
||||
|
||||
|
@ -27,9 +29,25 @@ void at91_prepare_cpu_var(void);
|
|||
|
||||
static void board_leds_init(void)
|
||||
{
|
||||
#if CONFIG_IS_ENABLED(LED)
|
||||
const char *led_name;
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
led_name = ofnode_conf_read_str("u-boot,boot-led");
|
||||
if (!led_name)
|
||||
return;
|
||||
|
||||
ret = led_get_by_label(led_name, &dev);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
led_set_state(dev, LEDST_ON);
|
||||
#else
|
||||
at91_set_pio_output(AT91_PIO_PORTD, 17, 0); /* LED RED */
|
||||
at91_set_pio_output(AT91_PIO_PORTD, 19, 0); /* LED GREEN */
|
||||
at91_set_pio_output(AT91_PIO_PORTD, 21, 1); /* LED BLUE */
|
||||
#endif
|
||||
}
|
||||
|
||||
int board_late_init(void)
|
||||
|
|
Loading…
Reference in a new issue