From: Thomas Abraham <thomas...@samsung.com>

The property 'samsung,exynos5440-pins' is optional in configuration nodes
which are included in the Exynos5440 pin-controller device node. Fix the
incorrect failure in driver probe if 'samsung,exynos5440-pins' property
is not found in the configuration nodes.

Signed-off-by: Thomas Abraham <thomas...@samsung.com>
Cc: Linus Walleij <linus.wall...@linaro.org>
Signed-off-by: Kukjin Kim <kgene....@samsung.com>
---
 drivers/pinctrl/pinctrl-exynos5440.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-exynos5440.c 
b/drivers/pinctrl/pinctrl-exynos5440.c
index 1376eb7..96cb1e9 100644
--- a/drivers/pinctrl/pinctrl-exynos5440.c
+++ b/drivers/pinctrl/pinctrl-exynos5440.c
@@ -670,8 +670,10 @@ static int exynos5440_pinctrl_parse_dt(struct 
platform_device *pdev,
 
                ret = exynos5440_pinctrl_parse_dt_pins(pdev, cfg_np,
                                        &pin_list, &npins);
-               if (ret)
-                       return ret;
+               if (ret) {
+                       gname = NULL;
+                       goto skip_to_pin_function;
+               }
 
                /* derive pin group name from the node name */
                gname = devm_kzalloc(dev, strlen(cfg_np->name) + GSUFFIX_LEN,
@@ -687,6 +689,7 @@ static int exynos5440_pinctrl_parse_dt(struct 
platform_device *pdev,
                grp->num_pins = npins;
                grp++;
 
+skip_to_pin_function:
                ret = of_property_read_u32(cfg_np, 
"samsung,exynos5440-pin-function",
                                                &function);
                if (ret)
@@ -709,7 +712,7 @@ static int exynos5440_pinctrl_parse_dt(struct 
platform_device *pdev,
                        return -ENOMEM;
                }
                func->groups[0] = gname;
-               func->num_groups = 1;
+               func->num_groups = gname ? 1 : 0;
                func->function = function;
                func++;
                func_idx++;
-- 
1.7.4.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to