From: Kever Yang <kever.yang@rock-chips.com> To: Jagan Teki <jagan@amarulasolutions.com>, Philipp Tomsich <philipp.tomsich@theobroma-systems.com>, Simon Glass <sjg@chromium.org> Cc: U-Boot-Denx <u-boot@lists.denx.de>, linux-rockchip@lists.infradead.org, linux-amarula <linux-amarula@amarulasolutions.com>, Suniel Mahesh <sunil@amarulasolutions.com> Subject: Re: [PATCH v6 5/5] rockchip: roc-rk3399-pc: Set LED only during POR and pwr_key=y Date: Wed, 22 Jul 2020 20:13:25 +0800 [thread overview] Message-ID: <ec37fa97-a623-e929-12e6-d542996d07cb@rock-chips.com> (raw) In-Reply-To: <20200721150604.35410-6-jagan@amarulasolutions.com> On 2020/7/21 下午11:06, 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. > > Also, it is not a proper usage to ask the user to press > the Power key if the board connected remotely, so add > the environment variable 'pwr_key' to check as well. > > So, user need to press Power key only > - during POR > - pwr_key=y > > Tested-by: Suniel Mahesh <sunil@amarulasolutions.com> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Kever Yang<kever.yang@rock-chips.com> Thanks, - Kever > --- > Changes for v6: > - increase SPL _R malloc > > board/firefly/roc-pc-rk3399/roc-pc-rk3399.c | 38 +++++++++++++++++++-- > configs/roc-pc-mezzanine-rk3399_defconfig | 4 ++- > configs/roc-pc-rk3399_defconfig | 4 ++- > 3 files changed, 42 insertions(+), 4 deletions(-) > > diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > index 2b447df8aa..93e7d776fb 100644 > --- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > +++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > @@ -5,11 +5,15 @@ > > #include <common.h> > #include <dm.h> > +#include <env.h> > #include <log.h> > -#include <power/regulator.h> > #include <spl_gpio.h> > #include <asm/io.h> > +#include <power/regulator.h> > + > +#include <asm/arch-rockchip/cru.h> > #include <asm/arch-rockchip/gpio.h> > +#include <asm/arch-rockchip/grf_rk3399.h> > > #ifndef CONFIG_SPL_BUILD > int board_early_init_f(void) > @@ -32,13 +36,43 @@ out: > > #else > > +#define PMUGRF_BASE 0xff320000 > #define GPIO0_BASE 0xff720000 > > +/** > + * LED setup for roc-rk3399-pc > + * > + * 1. Set the low power leds (only during POR, pwr_key env is 'y') > + * glow yellow LED, termed as low power > + * poll for on board power key press > + * once powe key pressed, turn off yellow > + * 2. Turn on red LED, indicating full power mode > + */ > void led_setup(void) > { > struct rockchip_gpio_regs * const gpio0 = (void *)GPIO0_BASE; > + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; > + bool press_pwr_key = false; > + > + if (IS_ENABLED(CONFIG_SPL_ENV_SUPPORT)) { > + env_init(); > + env_load(); > + if (env_get_yesno("pwr_key") == 1) > + press_pwr_key = true; > + } > + > + if (press_pwr_key && !strcmp(get_reset_cause(), "POR")) { > + 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) > + ; > + > + spl_gpio_output(gpio0, GPIO(BANK_A, 2), 0); > + } > > - /* Turn on red LED, indicating full power mode */ > spl_gpio_output(gpio0, GPIO(BANK_B, 5), 1); > } > + > #endif > diff --git a/configs/roc-pc-mezzanine-rk3399_defconfig b/configs/roc-pc-mezzanine-rk3399_defconfig > index 15d511741f..9a01de454f 100644 > --- a/configs/roc-pc-mezzanine-rk3399_defconfig > +++ b/configs/roc-pc-mezzanine-rk3399_defconfig > @@ -19,7 +19,8 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc-mezzanine.dtb" > CONFIG_DISPLAY_BOARDINFO_LATE=y > # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set > CONFIG_SPL_STACK_R=y > -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 > +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x20000 > +CONFIG_SPL_ENV_SUPPORT=y > CONFIG_SPL_SPI_LOAD=y > CONFIG_TPL=y > CONFIG_CMD_BOOTZ=y > @@ -34,6 +35,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3399-roc-pc-mezzanine" > CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" > CONFIG_ENV_IS_IN_SPI_FLASH=y > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > +CONFIG_SPL_DM_SEQ_ALIAS=y > CONFIG_ROCKCHIP_GPIO=y > CONFIG_SYS_I2C_ROCKCHIP=y > CONFIG_MISC=y > diff --git a/configs/roc-pc-rk3399_defconfig b/configs/roc-pc-rk3399_defconfig > index 2a6d0d22c8..6181da763d 100644 > --- a/configs/roc-pc-rk3399_defconfig > +++ b/configs/roc-pc-rk3399_defconfig > @@ -19,7 +19,8 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc.dtb" > CONFIG_DISPLAY_BOARDINFO_LATE=y > # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set > CONFIG_SPL_STACK_R=y > -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 > +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x20000 > +CONFIG_SPL_ENV_SUPPORT=y > CONFIG_SPL_SPI_LOAD=y > CONFIG_TPL=y > CONFIG_CMD_BOOTZ=y > @@ -33,6 +34,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3399-roc-pc" > CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" > CONFIG_ENV_IS_IN_SPI_FLASH=y > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > +CONFIG_SPL_DM_SEQ_ALIAS=y > CONFIG_ROCKCHIP_GPIO=y > CONFIG_SYS_I2C_ROCKCHIP=y > CONFIG_MISC=y
WARNING: multiple messages have this Message-ID (diff)
From: Kever Yang <kever.yang@rock-chips.com> To: u-boot@lists.denx.de Subject: [PATCH v6 5/5] rockchip: roc-rk3399-pc: Set LED only during POR and pwr_key=y Date: Wed, 22 Jul 2020 20:13:25 +0800 [thread overview] Message-ID: <ec37fa97-a623-e929-12e6-d542996d07cb@rock-chips.com> (raw) In-Reply-To: <20200721150604.35410-6-jagan@amarulasolutions.com> On 2020/7/21 ??11:06, 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. > > Also, it is not a proper usage to ask the user to press > the Power key if the board connected remotely, so add > the environment variable 'pwr_key' to check as well. > > So, user need to press Power key only > - during POR > - pwr_key=y > > Tested-by: Suniel Mahesh <sunil@amarulasolutions.com> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Kever Yang<kever.yang@rock-chips.com> Thanks, - Kever > --- > Changes for v6: > - increase SPL _R malloc > > board/firefly/roc-pc-rk3399/roc-pc-rk3399.c | 38 +++++++++++++++++++-- > configs/roc-pc-mezzanine-rk3399_defconfig | 4 ++- > configs/roc-pc-rk3399_defconfig | 4 ++- > 3 files changed, 42 insertions(+), 4 deletions(-) > > diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > index 2b447df8aa..93e7d776fb 100644 > --- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > +++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c > @@ -5,11 +5,15 @@ > > #include <common.h> > #include <dm.h> > +#include <env.h> > #include <log.h> > -#include <power/regulator.h> > #include <spl_gpio.h> > #include <asm/io.h> > +#include <power/regulator.h> > + > +#include <asm/arch-rockchip/cru.h> > #include <asm/arch-rockchip/gpio.h> > +#include <asm/arch-rockchip/grf_rk3399.h> > > #ifndef CONFIG_SPL_BUILD > int board_early_init_f(void) > @@ -32,13 +36,43 @@ out: > > #else > > +#define PMUGRF_BASE 0xff320000 > #define GPIO0_BASE 0xff720000 > > +/** > + * LED setup for roc-rk3399-pc > + * > + * 1. Set the low power leds (only during POR, pwr_key env is 'y') > + * glow yellow LED, termed as low power > + * poll for on board power key press > + * once powe key pressed, turn off yellow > + * 2. Turn on red LED, indicating full power mode > + */ > void led_setup(void) > { > struct rockchip_gpio_regs * const gpio0 = (void *)GPIO0_BASE; > + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; > + bool press_pwr_key = false; > + > + if (IS_ENABLED(CONFIG_SPL_ENV_SUPPORT)) { > + env_init(); > + env_load(); > + if (env_get_yesno("pwr_key") == 1) > + press_pwr_key = true; > + } > + > + if (press_pwr_key && !strcmp(get_reset_cause(), "POR")) { > + 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) > + ; > + > + spl_gpio_output(gpio0, GPIO(BANK_A, 2), 0); > + } > > - /* Turn on red LED, indicating full power mode */ > spl_gpio_output(gpio0, GPIO(BANK_B, 5), 1); > } > + > #endif > diff --git a/configs/roc-pc-mezzanine-rk3399_defconfig b/configs/roc-pc-mezzanine-rk3399_defconfig > index 15d511741f..9a01de454f 100644 > --- a/configs/roc-pc-mezzanine-rk3399_defconfig > +++ b/configs/roc-pc-mezzanine-rk3399_defconfig > @@ -19,7 +19,8 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc-mezzanine.dtb" > CONFIG_DISPLAY_BOARDINFO_LATE=y > # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set > CONFIG_SPL_STACK_R=y > -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 > +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x20000 > +CONFIG_SPL_ENV_SUPPORT=y > CONFIG_SPL_SPI_LOAD=y > CONFIG_TPL=y > CONFIG_CMD_BOOTZ=y > @@ -34,6 +35,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3399-roc-pc-mezzanine" > CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" > CONFIG_ENV_IS_IN_SPI_FLASH=y > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > +CONFIG_SPL_DM_SEQ_ALIAS=y > CONFIG_ROCKCHIP_GPIO=y > CONFIG_SYS_I2C_ROCKCHIP=y > CONFIG_MISC=y > diff --git a/configs/roc-pc-rk3399_defconfig b/configs/roc-pc-rk3399_defconfig > index 2a6d0d22c8..6181da763d 100644 > --- a/configs/roc-pc-rk3399_defconfig > +++ b/configs/roc-pc-rk3399_defconfig > @@ -19,7 +19,8 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc.dtb" > CONFIG_DISPLAY_BOARDINFO_LATE=y > # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set > CONFIG_SPL_STACK_R=y > -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 > +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x20000 > +CONFIG_SPL_ENV_SUPPORT=y > CONFIG_SPL_SPI_LOAD=y > CONFIG_TPL=y > CONFIG_CMD_BOOTZ=y > @@ -33,6 +34,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3399-roc-pc" > CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" > CONFIG_ENV_IS_IN_SPI_FLASH=y > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > +CONFIG_SPL_DM_SEQ_ALIAS=y > CONFIG_ROCKCHIP_GPIO=y > CONFIG_SYS_I2C_ROCKCHIP=y > CONFIG_MISC=y
next prev parent reply other threads:[~2020-07-22 12:13 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-21 15:05 [PATCH v6 0/5] rockchip: roc-rk3399-pc: Custom SPL Jagan Teki 2020-07-21 15:05 ` Jagan Teki 2020-07-21 15:06 ` [PATCH v6 1/5] rockchip: rk3399: Add weak led_setup() Jagan Teki 2020-07-21 15:06 ` Jagan Teki 2020-07-22 12:12 ` Kever Yang 2020-07-22 12:12 ` Kever Yang 2020-07-21 15:06 ` [PATCH v6 2/5] rockchip: roc-rk3399-pc: Add custom led_setup() Jagan Teki 2020-07-21 15:06 ` Jagan Teki 2020-07-22 12:12 ` Kever Yang 2020-07-22 12:12 ` Kever Yang 2020-07-21 15:06 ` [PATCH v6 3/5] rockchip: Don't clear the reset status reg Jagan Teki 2020-07-21 15:06 ` Jagan Teki 2020-07-21 15:06 ` [PATCH v6 4/5] rockchip: Separate the reset cause from display cpuinfo Jagan Teki 2020-07-21 15:06 ` Jagan Teki 2020-07-21 15:06 ` [PATCH v6 5/5] rockchip: roc-rk3399-pc: Set LED only during POR and pwr_key=y Jagan Teki 2020-07-21 15:06 ` Jagan Teki 2020-07-22 12:13 ` Kever Yang [this message] 2020-07-22 12:13 ` Kever Yang 2020-07-22 13:09 ` [PATCH v6 0/5] rockchip: roc-rk3399-pc: Custom SPL Kever Yang 2020-07-22 13:09 ` Kever Yang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=ec37fa97-a623-e929-12e6-d542996d07cb@rock-chips.com \ --to=kever.yang@rock-chips.com \ --cc=jagan@amarulasolutions.com \ --cc=linux-amarula@amarulasolutions.com \ --cc=linux-rockchip@lists.infradead.org \ --cc=philipp.tomsich@theobroma-systems.com \ --cc=sjg@chromium.org \ --cc=sunil@amarulasolutions.com \ --cc=u-boot@lists.denx.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.