diff --git a/arch/arm/dts/ipq9574-al02-c1.dts b/arch/arm/dts/ipq9574-al02-c1.dts index 0d1a088b9e..215a554b2d 100644 --- a/arch/arm/dts/ipq9574-al02-c1.dts +++ b/arch/arm/dts/ipq9574-al02-c1.dts @@ -155,4 +155,33 @@ }; }; }; + sc_led { + LED_R { + gpio = <6>; + func = <0>; + pull = ; + oe = ; + od_en = ; + drvstr = ; + out = <1>; + }; + LED_G { + gpio = <16>; + func = <0>; + pull = ; + oe = ; + od_en = ; + drvstr = ; + out = <0>; + }; + LED_B { + gpio = <17>; + func = <0>; + pull = ; + oe = ; + od_en = ; + drvstr = ; + out = <0>; + }; + }; }; diff --git a/board/qca/arm/ipq9574/ipq9574.c b/board/qca/arm/ipq9574/ipq9574.c index 7fdc3bd11f..e7ae137311 100644 --- a/board/qca/arm/ipq9574/ipq9574.c +++ b/board/qca/arm/ipq9574/ipq9574.c @@ -439,6 +439,21 @@ void board_pci_init(int id) return; } +void board_sc_led_init(void) +{ + int node; + + node = fdt_path_offset(gd->fdt_blob, "/sc_led"); + if (node < 0) { + printf("Could not find sc_led in device tree\n"); + return; + } + + qca_gpio_init(node); + + return; +} + static void pci_gpio_low(int offset) { struct qca_gpio_config gpio_config; diff --git a/board/qca/arm/ipq9574/ipq9574.h b/board/qca/arm/ipq9574/ipq9574.h index 51c7ae3c4f..47628aeb38 100644 --- a/board/qca/arm/ipq9574/ipq9574.h +++ b/board/qca/arm/ipq9574/ipq9574.h @@ -253,6 +253,8 @@ void board_pci_init(int id); __weak void board_pcie_clock_init(int id) {} #endif +void board_sc_led_init(void); + unsigned int __invoke_psci_fn_smc(unsigned int, unsigned int, unsigned int, unsigned int); diff --git a/common/board_r.c b/common/board_r.c index 44ac8ed6be..a58aea7b5a 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -71,6 +71,8 @@ DECLARE_GLOBAL_DATA_PTR; extern int prom_init(void); #endif +extern void board_sc_led_init(void); + ulong monitor_flash_len; __weak int board_flash_wp_on(void) @@ -521,6 +523,13 @@ static int initr_malloc_bootparams(void) } #endif + +static int initr_sc_led(void) +{ + board_sc_led_init(); + return 0; +} + static int initr_jumptable(void) { jumptable_init(); @@ -865,6 +874,7 @@ init_fnc_t init_sequence_r[] = { initr_pci, #endif stdio_add_devices, + initr_sc_led, initr_jumptable, #ifdef CONFIG_API initr_api,