[PATCH v1 5/6] gpio: sgpio: modify persist check condition

Jim Liu jim.t90615 at gmail.com
Tue Dec 16 03:47:28 CET 2025


Modify the persist check condition to fix init error.

Signed-off-by: Jim Liu <JJLIU0 at nuvoton.com>
---
 drivers/gpio/npcm_sgpio.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/npcm_sgpio.c b/drivers/gpio/npcm_sgpio.c
index fcc42087d57..d0fad08be07 100644
--- a/drivers/gpio/npcm_sgpio.c
+++ b/drivers/gpio/npcm_sgpio.c
@@ -301,7 +301,7 @@ static bool is_gpio_persist(struct udevice *dev)
 	status = npcm_get_reset_status();
 
 	if (status & PORST)
-		return false;
+		return true;
 	if (status & CORST)
 		regmap_read(priv->rst_regmap, CORSTC, &val);
 	else if (status & WD0RST)
@@ -320,9 +320,9 @@ static bool is_gpio_persist(struct udevice *dev)
 		regmap_read(priv->rst_regmap, TIPRSTC, &val);
 
 	if (priv->siox_num == 1)
-		return (val && BIT(NPCM_SIOX2));
+		return !!(val & BIT(NPCM_SIOX2));
 	else
-		return (val && BIT(NPCM_SIOX1));
+		return !!(val & BIT(NPCM_SIOX1));
 }
 
 static const struct dm_gpio_ops npcm_sgpio_ops = {
@@ -363,7 +363,7 @@ static int npcm_sgpio_probe(struct udevice *dev)
 	uc_priv->gpio_count = priv->nin_sgpio + priv->nout_sgpio;
 	uc_priv->bank_name = dev->name;
 
-	if (is_gpio_persist(dev)) {
+	if (!is_gpio_persist(dev)) {
 		ofnode_for_each_subnode(node, dev_ofnode(dev)) {
 			if (ofnode_read_bool(node, "persist-enable")) {
 				rc = ofnode_read_u32_array(node, "gpios", val, 2);
-- 
2.34.1



More information about the U-Boot mailing list