[PATCH v1 1/1] power: pmic: enable sysreset function with device tree property

Svyatoslav Ryhel clamor95 at gmail.com
Mon Feb 9 19:39:48 CET 2026


Add a condition to enable the PMIC sysreset function via the
system-power-controller device tree property in addition to the existing
Kconfig dependency, provided the PMIC supports it.

Signed-off-by: Svyatoslav Ryhel <clamor95 at gmail.com>
---
 drivers/power/pmic/max77663.c         | 4 +++-
 drivers/power/pmic/max8907.c          | 3 ++-
 drivers/power/pmic/palmas.c           | 4 +++-
 drivers/power/pmic/pmic_tps65910_dm.c | 4 +++-
 drivers/power/pmic/rk8xx.c            | 4 +++-
 drivers/power/pmic/tps80031.c         | 4 +++-
 6 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/drivers/power/pmic/max77663.c b/drivers/power/pmic/max77663.c
index c2a7cbf7e40..a06042e2918 100644
--- a/drivers/power/pmic/max77663.c
+++ b/drivers/power/pmic/max77663.c
@@ -46,7 +46,9 @@ static int max77663_bind(struct udevice *dev)
 	ofnode regulators_node;
 	int children, ret;
 
-	if (IS_ENABLED(CONFIG_SYSRESET_MAX77663)) {
+	if (IS_ENABLED(CONFIG_SYSRESET_MAX77663) &&
+	    (dev_read_bool(dev, "maxim,system-power-controller") ||
+	     dev_read_bool(dev, "system-power-controller"))) {
 		ret = device_bind_driver_to_node(dev, MAX77663_RST_DRIVER,
 						 "sysreset", dev_ofnode(dev),
 						 NULL);
diff --git a/drivers/power/pmic/max8907.c b/drivers/power/pmic/max8907.c
index a7ef70177de..34bef0c8cd6 100644
--- a/drivers/power/pmic/max8907.c
+++ b/drivers/power/pmic/max8907.c
@@ -48,7 +48,8 @@ static int max8907_bind(struct udevice *dev)
 	int children, ret;
 
 	if (IS_ENABLED(CONFIG_SYSRESET_MAX8907) &&
-	    dev_read_bool(dev, "maxim,system-power-controller")) {
+	    (dev_read_bool(dev, "maxim,system-power-controller") ||
+	     dev_read_bool(dev, "system-power-controller"))) {
 		ret = device_bind_driver_to_node(dev, MAX8907_RST_DRIVER,
 						 "sysreset", dev_ofnode(dev),
 						 NULL);
diff --git a/drivers/power/pmic/palmas.c b/drivers/power/pmic/palmas.c
index 37d4190fabe..e5b497dfc39 100644
--- a/drivers/power/pmic/palmas.c
+++ b/drivers/power/pmic/palmas.c
@@ -48,7 +48,9 @@ static int palmas_bind(struct udevice *dev)
 	ofnode subnode, gpio_node;
 	int children, ret;
 
-	if (IS_ENABLED(CONFIG_SYSRESET_PALMAS)) {
+	if (IS_ENABLED(CONFIG_SYSRESET_PALMAS) &&
+	    (dev_read_bool(dev, "ti,system-power-controller") ||
+	     dev_read_bool(dev, "system-power-controller"))) {
 		ret = device_bind_driver_to_node(dev, PALMAS_RST_DRIVER,
 						 "sysreset", dev_ofnode(dev),
 						 NULL);
diff --git a/drivers/power/pmic/pmic_tps65910_dm.c b/drivers/power/pmic/pmic_tps65910_dm.c
index de8d805566a..bce35603275 100644
--- a/drivers/power/pmic/pmic_tps65910_dm.c
+++ b/drivers/power/pmic/pmic_tps65910_dm.c
@@ -61,7 +61,9 @@ static int pmic_tps65910_bind(struct udevice *dev)
 	ofnode regulators_node;
 	int children, ret;
 
-	if (IS_ENABLED(CONFIG_SYSRESET_TPS65910)) {
+	if (IS_ENABLED(CONFIG_SYSRESET_TPS65910) &&
+	    (dev_read_bool(dev, "ti,system-power-controller") ||
+	     dev_read_bool(dev, "system-power-controller"))) {
 		ret = device_bind_driver(dev, TPS65910_RST_DRIVER,
 					 "sysreset", NULL);
 		if (ret) {
diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c
index d11f7a7886e..95b71d2fe49 100644
--- a/drivers/power/pmic/rk8xx.c
+++ b/drivers/power/pmic/rk8xx.c
@@ -220,7 +220,9 @@ static int rk8xx_bind(struct udevice *dev)
 
 	debug("%s: '%s' - found regulators subnode\n", __func__, dev->name);
 
-	if (CONFIG_IS_ENABLED(SYSRESET)) {
+	if (CONFIG_IS_ENABLED(SYSRESET) &&
+	    (dev_read_bool(dev, "rockchip,system-power-controller") ||
+	     dev_read_bool(dev, "system-power-controller"))) {
 		ret = device_bind_driver_to_node(dev, "rk8xx_sysreset",
 						 "rk8xx_sysreset",
 						 dev_ofnode(dev), NULL);
diff --git a/drivers/power/pmic/tps80031.c b/drivers/power/pmic/tps80031.c
index a2f935b0c6d..6004a14cd6c 100644
--- a/drivers/power/pmic/tps80031.c
+++ b/drivers/power/pmic/tps80031.c
@@ -46,7 +46,9 @@ static int tps80031_bind(struct udevice *dev)
 	ofnode regulators_node;
 	int children, ret;
 
-	if (IS_ENABLED(CONFIG_SYSRESET_TPS80031)) {
+	if (IS_ENABLED(CONFIG_SYSRESET_TPS80031) &&
+	    (dev_read_bool(dev, "ti,system-power-controller") ||
+	     dev_read_bool(dev, "system-power-controller"))) {
 		ret = device_bind_driver(dev, TPS80031_RST_DRIVER,
 					 "sysreset", NULL);
 		if (ret) {
-- 
2.51.0



More information about the U-Boot mailing list