From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suniel Mahesh Date: Thu, 26 Mar 2020 22:32:37 +0530 Subject: [PATCH v2 2/5] roc-rk3399-pc: Set low power leds, power key only if POR In-Reply-To: <20200319101251.7354-2-jagan@amarulasolutions.com> References: <20200319101251.7354-1-jagan@amarulasolutions.com> <20200319101251.7354-2-jagan@amarulasolutions.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, Mar 19, 2020 at 3:43 PM Jagan Teki wrote: > > 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 low power led > on/off, and waiting for user to press power key and then > glow full power led. > > 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 the low power leds, power key only. Note > that the glowing red led is common across any reset. > > Reported-by: Markus Reichl > Signed-off-by: Jagan Teki > --- > Changes for v2: > - glow red led to common across reboots > > board/firefly/roc-pc-rk3399/roc-pc-rk3399.c | 24 ++++++++++++--------- > 1 file changed, 14 insertions(+), 10 deletions(-) > > diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > index de9185a7ce..6cc81952d8 100644 > --- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > +++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > @@ -33,6 +33,7 @@ out: > #endif > > #if defined(CONFIG_TPL_BUILD) > +#include > > #define PMUGRF_BASE 0xff320000 > #define GPIO0_BASE 0xff720000 > @@ -42,18 +43,21 @@ int board_early_init_f(void) > struct rockchip_gpio_regs * const gpio0 = (void *)GPIO0_BASE; > struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; > > - /** > - * 1. Glow yellow LED, termed as low power > - * 2. Poll for on board power key press > - * 3. Once 2 done, off yellow and glow red LED, termed as full power > - * 4. Continue booting... > - */ > - spl_gpio_output(gpio0, GPIO(BANK_A, 2), 1); > + /* Set the low power leds, power key only during POR */ > + if (!strcmp(get_reset_cause(), "POR")) { > + /* 1. Glow yellow LED, termed as low power */ > + spl_gpio_output(gpio0, GPIO(BANK_A, 2), 1); > > - spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_A, 5), GPIO_PULL_NORMAL); > - while (readl(&gpio0->ext_port) & 0x20); > + /* 2. Poll for on board power key press */ > + spl_gpio_set_pull(&pmugrf->gpio0_p, > + GPIO(BANK_A, 5), GPIO_PULL_NORMAL); > + while (readl(&gpio0->ext_port) & 0x20); > > - spl_gpio_output(gpio0, GPIO(BANK_A, 2), 0); > + /* 3. Once 2 done, turn off yellow */ > + spl_gpio_output(gpio0, GPIO(BANK_A, 2), 0); > + } > + > + /* 4. Turn on red LED, termed as full power */ > spl_gpio_output(gpio0, GPIO(BANK_B, 5), 1); > > return 0; > -- > 2.17.1 > Tested-by: Suniel Mahesh