The Firefly ROC-RK3399-PC board configures power LEDs depending on the global reset state register value in xPL phase. get_reset_cause() is used to determine the reset cause.
Reset cause handling is being moved into the sysreset_rockchip driver get_status() ops, with plans to not include such ops in xPL builds. Read the global reset state register directly to determine reset cause to ease the migration of get_reset_cause() to use the get_status() ops. Signed-off-by: Jonas Karlman <[email protected]> --- board/firefly/roc-pc-rk3399/roc-pc-rk3399.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c index 6937a27176f9..c7a2e9a80857 100644 --- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c +++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c @@ -9,7 +9,7 @@ #include <spl_gpio.h> #include <asm/io.h> -#include <asm/arch-rockchip/cru.h> +#include <asm/arch-rockchip/cru_rk3399.h> #include <asm/arch-rockchip/gpio.h> #include <asm/arch-rockchip/grf_rk3399.h> @@ -18,6 +18,8 @@ #define PMUGRF_BASE 0xff320000 #define GPIO0_BASE 0xff720000 +#define GLB_POR_RST 0x0 + /** * LED setup for roc-rk3399-pc * @@ -29,6 +31,7 @@ */ void led_setup(void) { + struct rockchip_cru * const cru = (void *)RK3399_CRU_BASE; struct rockchip_gpio_regs * const gpio0 = (void *)GPIO0_BASE; struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; bool press_pwr_key = false; @@ -40,7 +43,7 @@ void led_setup(void) press_pwr_key = true; } - if (press_pwr_key && !strcmp(get_reset_cause(), "POR")) { + if (press_pwr_key && readl(&cru->glb_rst_st) == GLB_POR_RST) { spl_gpio_output(gpio0, GPIO(BANK_A, 2), 1); spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_A, 5), -- 2.54.0
