From: Shiji Yang 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 --- 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;