pinctrl: starfive: jh7100: ignore disabled device tree nodes
authorNam Cao <namcao@linutronix.de>
Fri, 1 Dec 2023 09:23:29 +0000 (10:23 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 4 Dec 2023 10:13:01 +0000 (11:13 +0100)
The driver always registers pin configurations in device tree. This can
cause some inconvenience to users, as pin configurations in the base
device tree cannot be disabled in the device tree overlay, even when the
relevant devices are not used.

Ignore disabled pin configuration nodes in device tree.

Fixes: ec648f6b7686 ("pinctrl: starfive: Add pinctrl driver for StarFive SoCs")
Cc: <stable@vger.kernel.org>
Signed-off-by: Nam Cao <namcao@linutronix.de>
Link: https://lore.kernel.org/r/fe4c15dcc3074412326b8dc296b0cbccf79c49bf.1701422582.git.namcao@linutronix.de
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c

index ea70b8c61679f0134e99350a3e3d7f812ac33e3c..b29b0ab9892b8eda0c5325d8afd868853d1652ee 100644 (file)
@@ -492,7 +492,7 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev,
 
        nmaps = 0;
        ngroups = 0;
-       for_each_child_of_node(np, child) {
+       for_each_available_child_of_node(np, child) {
                int npinmux = of_property_count_u32_elems(child, "pinmux");
                int npins   = of_property_count_u32_elems(child, "pins");
 
@@ -527,7 +527,7 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev,
        nmaps = 0;
        ngroups = 0;
        mutex_lock(&sfp->mutex);
-       for_each_child_of_node(np, child) {
+       for_each_available_child_of_node(np, child) {
                int npins;
                int i;