ROC-RK3399-PC has specific set of configurations for
on-board led setup.

Due to easiness for user to know the state of the board
roc-rk339-pc board code will setup the led on/off, and
waiting for user to press power key.

All this needs to happen only during power-on-reset not
for soft reset or WDT. So add reset cause check to POR
and configure leds.

Reported-by: Markus Reichl <m.rei...@fivetechno.de>
Signed-off-by: Jagan Teki <ja...@amarulasolutions.com>
---
 board/firefly/roc-pc-rk3399/roc-pc-rk3399.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c 
b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
index de9185a7ce..0a7d72a2a0 100644
--- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
+++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
@@ -33,11 +33,12 @@ out:
 #endif
 
 #if defined(CONFIG_TPL_BUILD)
+#include <asm/arch-rockchip/cru.h>
 
 #define PMUGRF_BASE     0xff320000
 #define GPIO0_BASE      0xff720000
 
-int board_early_init_f(void)
+void board_early_led_setup(void)
 {
        struct rockchip_gpio_regs * const gpio0 = (void *)GPIO0_BASE;
        struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE;
@@ -55,7 +56,15 @@ int board_early_init_f(void)
 
        spl_gpio_output(gpio0, GPIO(BANK_A, 2), 0);
        spl_gpio_output(gpio0, GPIO(BANK_B, 5), 1);
+}
+
+int board_early_init_f(void)
+{
+       /* Set the leds only during POR */
+       if (!strcmp(get_reset_cause(), "POR"))
+               board_early_led_setup();
 
        return 0;
 }
+
 #endif
-- 
2.17.1

Reply via email to