diff options
-rw-r--r-- | drivers/pinctrl/pinctrl-mxs.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-mxs.c b/drivers/pinctrl/pinctrl-mxs.c index 787ae7bb7dc3..ab63d3851f27 100644 --- a/drivers/pinctrl/pinctrl-mxs.c +++ b/drivers/pinctrl/pinctrl-mxs.c | |||
@@ -393,6 +393,7 @@ static int __devinit mxs_pinctrl_probe_dt(struct platform_device *pdev, | |||
393 | struct device_node *np = pdev->dev.of_node; | 393 | struct device_node *np = pdev->dev.of_node; |
394 | struct device_node *child; | 394 | struct device_node *child; |
395 | struct mxs_function *f; | 395 | struct mxs_function *f; |
396 | const char *gpio_compat = "fsl,mxs-gpio"; | ||
396 | const char *fn, *fnull = ""; | 397 | const char *fn, *fnull = ""; |
397 | int i = 0, idxf = 0, idxg = 0; | 398 | int i = 0, idxf = 0, idxg = 0; |
398 | int ret; | 399 | int ret; |
@@ -407,6 +408,8 @@ static int __devinit mxs_pinctrl_probe_dt(struct platform_device *pdev, | |||
407 | /* Count total functions and groups */ | 408 | /* Count total functions and groups */ |
408 | fn = fnull; | 409 | fn = fnull; |
409 | for_each_child_of_node(np, child) { | 410 | for_each_child_of_node(np, child) { |
411 | if (of_device_is_compatible(child, gpio_compat)) | ||
412 | continue; | ||
410 | soc->ngroups++; | 413 | soc->ngroups++; |
411 | /* Skip pure pinconf node */ | 414 | /* Skip pure pinconf node */ |
412 | if (of_property_read_u32(child, "reg", &val)) | 415 | if (of_property_read_u32(child, "reg", &val)) |
@@ -431,6 +434,8 @@ static int __devinit mxs_pinctrl_probe_dt(struct platform_device *pdev, | |||
431 | fn = fnull; | 434 | fn = fnull; |
432 | f = &soc->functions[idxf]; | 435 | f = &soc->functions[idxf]; |
433 | for_each_child_of_node(np, child) { | 436 | for_each_child_of_node(np, child) { |
437 | if (of_device_is_compatible(child, gpio_compat)) | ||
438 | continue; | ||
434 | if (of_property_read_u32(child, "reg", &val)) | 439 | if (of_property_read_u32(child, "reg", &val)) |
435 | continue; | 440 | continue; |
436 | if (strcmp(fn, child->name)) { | 441 | if (strcmp(fn, child->name)) { |
@@ -444,6 +449,8 @@ static int __devinit mxs_pinctrl_probe_dt(struct platform_device *pdev, | |||
444 | idxf = 0; | 449 | idxf = 0; |
445 | fn = fnull; | 450 | fn = fnull; |
446 | for_each_child_of_node(np, child) { | 451 | for_each_child_of_node(np, child) { |
452 | if (of_device_is_compatible(child, gpio_compat)) | ||
453 | continue; | ||
447 | if (of_property_read_u32(child, "reg", &val)) { | 454 | if (of_property_read_u32(child, "reg", &val)) { |
448 | ret = mxs_pinctrl_parse_group(pdev, child, | 455 | ret = mxs_pinctrl_parse_group(pdev, child, |
449 | idxg++, NULL); | 456 | idxg++, NULL); |