gpio: syscon: allow fetching syscon from parent node
authorHeiko Stuebner <heiko@sntech.de>
Fri, 18 May 2018 03:52:04 +0000 (11:52 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 23 May 2018 08:07:26 +0000 (10:07 +0200)
Syscon nodes can be a simple-mfd and the syscon-users then be declared
as children of this node. That way the parent-child structure can be
better represented for devices that are fully embedded in the syscon.

Therefore allow getting the syscon from the parent if neither
a special compatible nor a gpio,syscon-dev property is defined.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Levin Du <djw@t-chip.com.cn>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-syscon.c

index 2512acd..8b0a69c 100644 (file)
@@ -200,6 +200,8 @@ static int syscon_gpio_probe(struct platform_device *pdev)
        } else {
                priv->syscon =
                        syscon_regmap_lookup_by_phandle(np, "gpio,syscon-dev");
+               if (IS_ERR(priv->syscon) && np->parent)
+                       priv->syscon = syscon_node_to_regmap(np->parent);
                if (IS_ERR(priv->syscon))
                        return PTR_ERR(priv->syscon);