]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
power: axp: Avoid do_poweroff conflict with sysreset
authorSamuel Holland <samuel@sholland.org>
Sun, 22 Aug 2021 23:18:05 +0000 (18:18 -0500)
committerAndre Przywara <andre.przywara@arm.com>
Mon, 25 Oct 2021 13:50:54 +0000 (14:50 +0100)
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 <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
drivers/power/axp152.c
drivers/power/axp209.c
drivers/power/axp221.c
drivers/power/axp305.c
drivers/power/axp809.c
drivers/power/axp818.c

index d6e36125c12cfb6f7862a1747fe6db1109f0c090..a93987c15382bdaf83c552b0f0602fc0238de99c 100644 (file)
@@ -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
index ade531940b930020df5927abddcd1df83a9650bf..3447b9f0113a12a5980de0ce61ed1d1f72d692da 100644 (file)
@@ -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
index 3446fe7365d2f16321a5c103f3835b87fdc22c79..d251c314b9876ba8511bac5346e461ce543e7c34 100644 (file)
@@ -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
index 0191e4d427e8e30f64dd01607a582dc0c149e87e..049ef07f7467f878ecb7c5e021e46dc5d6f844eb 100644 (file)
@@ -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);
index 0396502cdb55f3be2174d68ebd6c6faebd1a417b..d327a584ded0373a11660c57847ab2d984907db3 100644 (file)
@@ -219,6 +219,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);
@@ -229,3 +230,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        /* not reached */
        return 0;
 }
+#endif
index 2dc736467bb5fb2929c2d61e65edc973fd5e7a86..08286ea3b55077e710dd6527c89d80714990a46a 100644 (file)
@@ -255,6 +255,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);
@@ -265,3 +266,4 @@ int do_poweroff(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        /* not reached */
        return 0;
 }
+#endif