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 <[email protected]>
Cc: Alexey Malahov <[email protected]>
Cc: Thomas Bogendoerfer <[email protected]>
Cc: Paul Burton <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: [email protected]
Cc: [email protected]

---

Changelog v2:
- This is a new patch created as a result of the discussion:
  
https://lore.kernel.org/linux-pm/[email protected]/
---
 drivers/power/reset/syscon-reboot.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/power/reset/syscon-reboot.c 
b/drivers/power/reset/syscon-reboot.c
index 62fbba0df971..510e363381ca 100644
--- a/drivers/power/reset/syscon-reboot.c
+++ b/drivers/power/reset/syscon-reboot.c
@@ -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;
-- 
2.25.1

Reply via email to