summaryrefslogtreecommitdiff
path: root/drivers/gpio/gpio-syscon.c
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2018-05-18 06:52:04 +0300
committerLinus Walleij <linus.walleij@linaro.org>2018-05-23 11:07:26 +0300
commitaa1fdda8f7ebf83f678e8d3c2ab4f1638c94195f (patch)
tree54cc822d6ffe2409563c4e62fd5adc343399e880 /drivers/gpio/gpio-syscon.c
parentc65ef0ced1da5a323c3d6d251aef911943a53479 (diff)
downloadlinux-aa1fdda8f7ebf83f678e8d3c2ab4f1638c94195f.tar.xz
gpio: syscon: allow fetching syscon from parent node
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>
Diffstat (limited to 'drivers/gpio/gpio-syscon.c')
-rw-r--r--drivers/gpio/gpio-syscon.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-syscon.c b/drivers/gpio/gpio-syscon.c
index 2512acd99027..8b0a69c5ba88 100644
--- a/drivers/gpio/gpio-syscon.c
+++ b/drivers/gpio/gpio-syscon.c
@@ -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);