Hi Urja, > > It seems that SYSRESET_POWER_OFF was added recently, and all previous > code used SYSRESET_POWER for poweroff. SYSRESET_POWER is supposed > to be a PMIC-level power cycle, not a poweroff. > > Signed-off-by: Urja Rannikko <urja...@gmail.com> > --- > Note: I didnt touch the test/dm/sysreset.c code yet, mostly because I wanted > to > get feedback on this first and that i'd need to understand the tests properly > to do > that (and i havent used them before at all). > --- > arch/arm/mach-stm32mp/cmd_poweroff.c | 2 +- > arch/sandbox/cpu/state.c | 2 +- > drivers/power/pmic/stpmic1.c | 2 +- > drivers/sysreset/sysreset_psci.c | 2 +- > drivers/sysreset/sysreset_sandbox.c | 4 ++-- > 5 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/arm/mach-stm32mp/cmd_poweroff.c b/arch/arm/mach- > stm32mp/cmd_poweroff.c > index f54dd1daf2..62347425a0 100644 > --- a/arch/arm/mach-stm32mp/cmd_poweroff.c > +++ b/arch/arm/mach-stm32mp/cmd_poweroff.c > @@ -14,7 +14,7 @@ int do_poweroff(cmd_tbl_t *cmdtp, int flag, int argc, char * > const argv[]) > puts("poweroff ...\n"); > mdelay(100); > > - ret = sysreset_walk(SYSRESET_POWER); > + ret = sysreset_walk(SYSRESET_POWER_OFF); > > if (ret == -EINPROGRESS) > mdelay(1000); > diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c index > d3b9c05985..dee5fde4f7 100644 > --- a/arch/sandbox/cpu/state.c > +++ b/arch/sandbox/cpu/state.c > @@ -355,7 +355,7 @@ void state_reset_for_test(struct sandbox_state *state) { > /* No reset yet, so mark it as such. Always allow power reset */ > state->last_sysreset = SYSRESET_COUNT; > - state->sysreset_allowed[SYSRESET_POWER] = true; > + state->sysreset_allowed[SYSRESET_POWER_OFF] = true; > > memset(&state->wdt, '\0', sizeof(state->wdt)); > memset(state->spi, '\0', sizeof(state->spi)); diff --git > a/drivers/power/pmic/stpmic1.c b/drivers/power/pmic/stpmic1.c index > 65296c5fc3..eb735f4fe3 100644 > --- a/drivers/power/pmic/stpmic1.c > +++ b/drivers/power/pmic/stpmic1.c > @@ -221,7 +221,7 @@ static int stpmic1_sysreset_request(struct udevice *dev, > enum sysreset_t type) > struct udevice *pmic_dev; > int ret; > > - if (type != SYSRESET_POWER) > + if (type != SYSRESET_POWER_OFF) > return -EPROTONOSUPPORT;
In fact in the next part of the code, we are supporting only SYSRESET_POWER (reset with PMIC1 switch OFF and restart) and not SYSRESET_POWER_OFF.... because Power Cycle if RREQ_EN=1 I think you need to remove the update on this file for your patch and I will modified this function is to support both mode.... > ret = uclass_get_device_by_driver(UCLASS_PMIC, > diff --git a/drivers/sysreset/sysreset_psci.c > b/drivers/sysreset/sysreset_psci.c > index de2ec8aeb1..c7907b3226 100644 > --- a/drivers/sysreset/sysreset_psci.c > +++ b/drivers/sysreset/sysreset_psci.c > @@ -18,7 +18,7 @@ static int psci_sysreset_request(struct udevice *dev, enum > sysreset_t type) > case SYSRESET_COLD: > function_id = PSCI_0_2_FN_SYSTEM_RESET; > break; > - case SYSRESET_POWER: > + case SYSRESET_POWER_OFF: > function_id = PSCI_0_2_FN_SYSTEM_OFF; > break; > default: > diff --git a/drivers/sysreset/sysreset_sandbox.c > b/drivers/sysreset/sysreset_sandbox.c > index 38e2a7e241..8bc9f4b4cc 100644 > --- a/drivers/sysreset/sysreset_sandbox.c > +++ b/drivers/sysreset/sysreset_sandbox.c > @@ -57,13 +57,13 @@ static int sandbox_sysreset_request(struct udevice *dev, > enum sysreset_t type) > case SYSRESET_COLD: > state->last_sysreset = type; > break; > - case SYSRESET_POWER: > + case SYSRESET_POWER_OFF: > state->last_sysreset = type; > if (!state->sysreset_allowed[type]) > return -EACCES; > sandbox_exit(); > break; > - case SYSRESET_POWER_OFF: > + case SYSRESET_POWER: > if (!state->sysreset_allowed[type]) > return -EACCES; > default: > -- > 2.21.0 Regards. Patrick _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot