|
@@ -0,0 +1,37 @@
|
|
|
+From: Shiji Yang <[email protected]>
|
|
|
+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 <[email protected]>
|
|
|
+---
|
|
|
+ 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;
|