power: reset: syscon-reboot: Add parental syscon support
authorSerge Semin <Sergey.Semin@baikalelectronics.ru>
Tue, 26 May 2020 13:51:01 +0000 (16:51 +0300)
committerSebastian Reichel <sre@kernel.org>
Thu, 28 May 2020 07:00:30 +0000 (09:00 +0200)
Since normally syscon-reboot block is supposed to be a part of a system
controller, lets look for the syscon regmap in a parental DT node if
regmap property isn't specified. DT binding from now considers the regmap
property as deprecated.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/reset/syscon-reboot.c

index 62fbba0df9710de0dc4763509e35e899e5e6778f..510e363381ca2359b721dbc2a88d586384e7362d 100644 (file)
@@ -51,8 +51,11 @@ static int syscon_reboot_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        ctx->map = syscon_regmap_lookup_by_phandle(dev->of_node, "regmap");
-       if (IS_ERR(ctx->map))
-               return PTR_ERR(ctx->map);
+       if (IS_ERR(ctx->map)) {
+               ctx->map = syscon_node_to_regmap(dev->parent->of_node);
+               if (IS_ERR(ctx->map))
+                       return PTR_ERR(ctx->map);
+       }
 
        if (of_property_read_u32(pdev->dev.of_node, "offset", &ctx->offset))
                return -EINVAL;