From: Shiji Yang <yangshiji66@outlook.com>
Date: Wed, 13 Mar 2024 22:36:31 +0800
Subject: [PATCH] mfd: syscon: support skip reset control for syscon devices

Some platform device drivers(e.g. ag71xx) expect exclusive reset
control. Fetching reset controller for syscon[1] will break these
drivers. This patch introduces a new property 'syscon-no-reset'
to skip it.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?id=7d1e3bd94828ad9fc86f55253cd6fec8edd65394

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
 drivers/mfd/syscon.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/mfd/syscon.c
+++ b/drivers/mfd/syscon.c
@@ -52,7 +52,7 @@ static struct syscon *of_syscon_register
 	int ret;
 	struct regmap_config syscon_config = syscon_regmap_config;
 	struct resource res;
-	struct reset_control *reset;
+	struct reset_control *reset = NULL;
 
 	syscon = kzalloc(sizeof(*syscon), GFP_KERNEL);
 	if (!syscon)
@@ -134,7 +134,8 @@ static struct syscon *of_syscon_register
 				goto err_attach_clk;
 		}
 
-		reset = of_reset_control_get_optional_exclusive(np, NULL);
+		if (!of_property_read_bool(np, "syscon-no-reset"))
+			reset = of_reset_control_get_optional_exclusive(np, NULL);
 		if (IS_ERR(reset)) {
 			ret = PTR_ERR(reset);
 			goto err_attach_clk;