On Sun, 22 Aug 2021 18:18:05 -0500 Samuel Holland <sam...@sholland.org> wrote:
Hi Samuel, > The sysreset uclass has an option to provide the do_poweroff() function. > When that option is enabled, the AXP power drivers should not provide > their own definition. > > For the AXP305, which is paired with 64-bit systems where TF-A provides > PSCI, there is another possible conflict with the PSCI firmware driver. > This driver can be enabled even if CONFIG_PSCI_RESET is disabled, so > make sure to use the right symbol in the condition. > > Signed-off-by: Samuel Holland <sam...@sholland.org> Not a big fan of adding #ifdef's, but it looks like these implementations of do_poweroff() can eventually be removed, when SYSRESET works everywhere? Or is there a reason we cannot select SYSRESET later on, and would still need do_poweroff from those AXP drivers directly? Anyway: Reviewed-by: Andre Przywara <andre.przyw...@arm.com> Cheers, Andre > --- > > drivers/power/axp152.c | 2 ++ > drivers/power/axp209.c | 2 ++ > drivers/power/axp221.c | 2 ++ > drivers/power/axp305.c | 2 +- > drivers/power/axp809.c | 2 ++ > drivers/power/axp818.c | 2 ++ > 6 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/power/axp152.c b/drivers/power/axp152.c > index d6e36125c12..a93987c1538 100644 > --- a/drivers/power/axp152.c > +++ b/drivers/power/axp152.c > @@ -79,6 +79,7 @@ int axp_init(void) > return 0; > } > > +#if !IS_ENABLED(CONFIG_SYSRESET_CMD_POWEROFF) > int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const > argv[]) > { > pmic_bus_write(AXP152_SHUTDOWN, AXP152_POWEROFF); > @@ -89,3 +90,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, > char *const argv[]) > /* not reached */ > return 0; > } > +#endif > diff --git a/drivers/power/axp209.c b/drivers/power/axp209.c > index ade531940b9..3447b9f0113 100644 > --- a/drivers/power/axp209.c > +++ b/drivers/power/axp209.c > @@ -230,6 +230,7 @@ int axp_init(void) > return 0; > } > > +#if !IS_ENABLED(CONFIG_SYSRESET_CMD_POWEROFF) > int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const > argv[]) > { > pmic_bus_write(AXP209_SHUTDOWN, AXP209_POWEROFF); > @@ -240,3 +241,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int > argc, char *const argv[]) > /* not reached */ > return 0; > } > +#endif > diff --git a/drivers/power/axp221.c b/drivers/power/axp221.c > index 3446fe7365d..d251c314b98 100644 > --- a/drivers/power/axp221.c > +++ b/drivers/power/axp221.c > @@ -264,6 +264,7 @@ int axp_get_sid(unsigned int *sid) > return 0; > } > > +#if !IS_ENABLED(CONFIG_SYSRESET_CMD_POWEROFF) > int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const > argv[]) > { > pmic_bus_write(AXP221_SHUTDOWN, AXP221_SHUTDOWN_POWEROFF); > @@ -274,3 +275,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int > argc, char *const argv[]) > /* not reached */ > return 0; > } > +#endif > diff --git a/drivers/power/axp305.c b/drivers/power/axp305.c > index 0191e4d427e..049ef07f746 100644 > --- a/drivers/power/axp305.c > +++ b/drivers/power/axp305.c > @@ -69,7 +69,7 @@ int axp_init(void) > return ret; > } > > -#ifndef CONFIG_PSCI_RESET > +#if !CONFIG_IS_ENABLED(ARM_PSCI_FW) && > !IS_ENABLED(CONFIG_SYSRESET_CMD_POWEROFF) > int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const > argv[]) > { > pmic_bus_write(AXP305_SHUTDOWN, AXP305_POWEROFF); > diff --git a/drivers/power/axp809.c b/drivers/power/axp809.c > index 6323492b66d..49584e502fe 100644 > --- a/drivers/power/axp809.c > +++ b/drivers/power/axp809.c > @@ -220,6 +220,7 @@ int axp_init(void) > return pmic_bus_init(); > } > > +#if !IS_ENABLED(CONFIG_SYSRESET_CMD_POWEROFF) > int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const > argv[]) > { > pmic_bus_write(AXP809_SHUTDOWN, AXP809_SHUTDOWN_POWEROFF); > @@ -230,3 +231,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int > argc, char *const argv[]) > /* not reached */ > return 0; > } > +#endif > diff --git a/drivers/power/axp818.c b/drivers/power/axp818.c > index 0531707c8aa..0960786f4a7 100644 > --- a/drivers/power/axp818.c > +++ b/drivers/power/axp818.c > @@ -256,6 +256,7 @@ int axp_init(void) > return 0; > } > > +#if !IS_ENABLED(CONFIG_SYSRESET_CMD_POWEROFF) > int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const > argv[]) > { > pmic_bus_write(AXP818_SHUTDOWN, AXP818_SHUTDOWN_POWEROFF); > @@ -266,3 +267,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int > argc, char *const argv[]) > /* not reached */ > return 0; > } > +#endif