diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
index 60f74144a4f88e49b9264a42fac2a469364c0172..4d536a097e8cbde43c1b5f8be150a0ac31a0395a 100644
--- a/drivers/mfd/syscon.c
+++ b/drivers/mfd/syscon.c
@@ -224,7 +224,9 @@ struct regmap *syscon_regmap_lookup_by_phandle(struct device_node *np,
 		return ERR_PTR(-ENODEV);
 
 	regmap = syscon_node_to_regmap(syscon_np);
-	of_node_put(syscon_np);
+
+	if (property)
+		of_node_put(syscon_np);
 
 	return regmap;
 }