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-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html