diff --git a/drivers/power/axp221.c b/drivers/power/axp221.c
index 1fda19ac01d020c8b5e6c34134d3c665754b5ab1..728727b48eb6a72dc9635ba52fb0e1b08d9e93ac 100644
--- a/drivers/power/axp221.c
+++ b/drivers/power/axp221.c
@@ -304,9 +304,14 @@ int axp221_set_aldo3(unsigned int mvolt)
 
 int axp221_init(void)
 {
+	/* This cannot be 0 because it is used in SPL before BSS is ready */
+	static int needs_init = 1;
 	u8 axp_chip_id;
 	int ret;
 
+	if (!needs_init)
+		return 0;
+
 	ret = pmic_bus_init();
 	if (ret)
 		return ret;
@@ -318,6 +323,7 @@ int axp221_init(void)
 	if (!(axp_chip_id == 0x6 || axp_chip_id == 0x7 || axp_chip_id == 0x17))
 		return -ENODEV;
 
+	needs_init = 0;
 	return 0;
 }