aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Agner <stefan@agner.ch>2018-01-06 09:25:49 -0500
committerLinus Walleij <linus.walleij@linaro.org>2018-01-11 04:29:18 -0500
commitf5843492ecefcf766963518f14bcf8d77b88338c (patch)
treee30b090188570ea4f1a0df45c28f2f3abda788c6
parent32e21f084faacc69014b4bb082db04890fad5f1b (diff)
pinctrl: imx: use struct imx_pinctrl_soc_info as a const
For some SoCs the struct imx_pinctrl_soc_info is passed through of_device_id.data which is const. Most variables are already const or otherwise not written. However, some fields are modified at runtime. Move those fields to the dynamically allocated struct imx_pinctrl. Fixes: b3060044e495 ("pinctrl: freescale: imx7d: make of_device_ids const") Cc: Shawn Guo <shawnguo@kernel.org> Cc: Arvind Yadav <arvind.yadav.cs@gmail.com> Cc: Gary Bisson <gary.bisson@boundarydevices.com> Signed-off-by: Stefan Agner <stefan@agner.ch> Acked-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx.c79
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx.h11
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx7ulp.c3
-rw-r--r--drivers/pinctrl/freescale/pinctrl-vf610.c3
4 files changed, 44 insertions, 52 deletions
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index 6e472691d8ee..86256d25c4a3 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -62,7 +62,6 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
62 struct pinctrl_map **map, unsigned *num_maps) 62 struct pinctrl_map **map, unsigned *num_maps)
63{ 63{
64 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 64 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
65 struct imx_pinctrl_soc_info *info = ipctl->info;
66 const struct group_desc *grp; 65 const struct group_desc *grp;
67 struct pinctrl_map *new_map; 66 struct pinctrl_map *new_map;
68 struct device_node *parent; 67 struct device_node *parent;
@@ -75,7 +74,7 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
75 */ 74 */
76 grp = imx_pinctrl_find_group_by_name(pctldev, np->name); 75 grp = imx_pinctrl_find_group_by_name(pctldev, np->name);
77 if (!grp) { 76 if (!grp) {
78 dev_err(info->dev, "unable to find group for node %s\n", 77 dev_err(ipctl->dev, "unable to find group for node %s\n",
79 np->name); 78 np->name);
80 return -EINVAL; 79 return -EINVAL;
81 } 80 }
@@ -146,7 +145,7 @@ static int imx_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,
146 unsigned group) 145 unsigned group)
147{ 146{
148 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 147 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
149 struct imx_pinctrl_soc_info *info = ipctl->info; 148 const struct imx_pinctrl_soc_info *info = ipctl->info;
150 const struct imx_pin_reg *pin_reg; 149 const struct imx_pin_reg *pin_reg;
151 unsigned int npins, pin_id; 150 unsigned int npins, pin_id;
152 int i; 151 int i;
@@ -174,7 +173,7 @@ static int imx_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,
174 struct imx_pin *pin = &((struct imx_pin *)(grp->data))[i]; 173 struct imx_pin *pin = &((struct imx_pin *)(grp->data))[i];
175 174
176 pin_id = pin->pin; 175 pin_id = pin->pin;
177 pin_reg = &info->pin_regs[pin_id]; 176 pin_reg = &ipctl->pin_regs[pin_id];
178 177
179 if (pin_reg->mux_reg == -1) { 178 if (pin_reg->mux_reg == -1) {
180 dev_dbg(ipctl->dev, "Pin(%s) does not support mux function\n", 179 dev_dbg(ipctl->dev, "Pin(%s) does not support mux function\n",
@@ -255,7 +254,7 @@ static u32 imx_pinconf_decode_generic_config(struct imx_pinctrl *ipctl,
255 unsigned long *configs, 254 unsigned long *configs,
256 unsigned int num_configs) 255 unsigned int num_configs)
257{ 256{
258 struct imx_pinctrl_soc_info *info = ipctl->info; 257 const struct imx_pinctrl_soc_info *info = ipctl->info;
259 struct imx_cfg_params_decode *decode; 258 struct imx_cfg_params_decode *decode;
260 enum pin_config_param param; 259 enum pin_config_param param;
261 u32 raw_config = 0; 260 u32 raw_config = 0;
@@ -289,7 +288,7 @@ static u32 imx_pinconf_decode_generic_config(struct imx_pinctrl *ipctl,
289static u32 imx_pinconf_parse_generic_config(struct device_node *np, 288static u32 imx_pinconf_parse_generic_config(struct device_node *np,
290 struct imx_pinctrl *ipctl) 289 struct imx_pinctrl *ipctl)
291{ 290{
292 struct imx_pinctrl_soc_info *info = ipctl->info; 291 const struct imx_pinctrl_soc_info *info = ipctl->info;
293 struct pinctrl_dev *pctl = ipctl->pctl; 292 struct pinctrl_dev *pctl = ipctl->pctl;
294 unsigned int num_configs; 293 unsigned int num_configs;
295 unsigned long *configs; 294 unsigned long *configs;
@@ -310,11 +309,11 @@ static int imx_pinconf_get(struct pinctrl_dev *pctldev,
310 unsigned pin_id, unsigned long *config) 309 unsigned pin_id, unsigned long *config)
311{ 310{
312 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 311 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
313 struct imx_pinctrl_soc_info *info = ipctl->info; 312 const struct imx_pinctrl_soc_info *info = ipctl->info;
314 const struct imx_pin_reg *pin_reg = &info->pin_regs[pin_id]; 313 const struct imx_pin_reg *pin_reg = &ipctl->pin_regs[pin_id];
315 314
316 if (pin_reg->conf_reg == -1) { 315 if (pin_reg->conf_reg == -1) {
317 dev_err(info->dev, "Pin(%s) does not support config function\n", 316 dev_err(ipctl->dev, "Pin(%s) does not support config function\n",
318 info->pins[pin_id].name); 317 info->pins[pin_id].name);
319 return -EINVAL; 318 return -EINVAL;
320 } 319 }
@@ -332,12 +331,12 @@ static int imx_pinconf_set(struct pinctrl_dev *pctldev,
332 unsigned num_configs) 331 unsigned num_configs)
333{ 332{
334 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 333 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
335 struct imx_pinctrl_soc_info *info = ipctl->info; 334 const struct imx_pinctrl_soc_info *info = ipctl->info;
336 const struct imx_pin_reg *pin_reg = &info->pin_regs[pin_id]; 335 const struct imx_pin_reg *pin_reg = &ipctl->pin_regs[pin_id];
337 int i; 336 int i;
338 337
339 if (pin_reg->conf_reg == -1) { 338 if (pin_reg->conf_reg == -1) {
340 dev_err(info->dev, "Pin(%s) does not support config function\n", 339 dev_err(ipctl->dev, "Pin(%s) does not support config function\n",
341 info->pins[pin_id].name); 340 info->pins[pin_id].name);
342 return -EINVAL; 341 return -EINVAL;
343 } 342 }
@@ -368,8 +367,7 @@ static void imx_pinconf_dbg_show(struct pinctrl_dev *pctldev,
368 struct seq_file *s, unsigned pin_id) 367 struct seq_file *s, unsigned pin_id)
369{ 368{
370 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 369 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
371 struct imx_pinctrl_soc_info *info = ipctl->info; 370 const struct imx_pin_reg *pin_reg = &ipctl->pin_regs[pin_id];
372 const struct imx_pin_reg *pin_reg = &info->pin_regs[pin_id];
373 unsigned long config; 371 unsigned long config;
374 372
375 if (!pin_reg || pin_reg->conf_reg == -1) { 373 if (!pin_reg || pin_reg->conf_reg == -1) {
@@ -427,13 +425,13 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
427 struct imx_pinctrl *ipctl, 425 struct imx_pinctrl *ipctl,
428 u32 index) 426 u32 index)
429{ 427{
430 struct imx_pinctrl_soc_info *info = ipctl->info; 428 const struct imx_pinctrl_soc_info *info = ipctl->info;
431 int size, pin_size; 429 int size, pin_size;
432 const __be32 *list; 430 const __be32 *list;
433 int i; 431 int i;
434 u32 config; 432 u32 config;
435 433
436 dev_dbg(info->dev, "group(%d): %s\n", index, np->name); 434 dev_dbg(ipctl->dev, "group(%d): %s\n", index, np->name);
437 435
438 if (info->flags & SHARE_MUX_CONF_REG) 436 if (info->flags & SHARE_MUX_CONF_REG)
439 pin_size = SHARE_FSL_PIN_SIZE; 437 pin_size = SHARE_FSL_PIN_SIZE;
@@ -460,7 +458,7 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
460 if (!list) { 458 if (!list) {
461 list = of_get_property(np, "pinmux", &size); 459 list = of_get_property(np, "pinmux", &size);
462 if (!list) { 460 if (!list) {
463 dev_err(info->dev, 461 dev_err(ipctl->dev,
464 "no fsl,pins and pins property in node %pOF\n", np); 462 "no fsl,pins and pins property in node %pOF\n", np);
465 return -EINVAL; 463 return -EINVAL;
466 } 464 }
@@ -468,7 +466,7 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
468 466
469 /* we do not check return since it's safe node passed down */ 467 /* we do not check return since it's safe node passed down */
470 if (!size || size % pin_size) { 468 if (!size || size % pin_size) {
471 dev_err(info->dev, "Invalid fsl,pins or pins property in node %pOF\n", np); 469 dev_err(ipctl->dev, "Invalid fsl,pins or pins property in node %pOF\n", np);
472 return -EINVAL; 470 return -EINVAL;
473 } 471 }
474 472
@@ -476,9 +474,9 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
476 config = imx_pinconf_parse_generic_config(np, ipctl); 474 config = imx_pinconf_parse_generic_config(np, ipctl);
477 475
478 grp->num_pins = size / pin_size; 476 grp->num_pins = size / pin_size;
479 grp->data = devm_kzalloc(info->dev, grp->num_pins * 477 grp->data = devm_kzalloc(ipctl->dev, grp->num_pins *
480 sizeof(struct imx_pin), GFP_KERNEL); 478 sizeof(struct imx_pin), GFP_KERNEL);
481 grp->pins = devm_kzalloc(info->dev, grp->num_pins * 479 grp->pins = devm_kzalloc(ipctl->dev, grp->num_pins *
482 sizeof(unsigned int), GFP_KERNEL); 480 sizeof(unsigned int), GFP_KERNEL);
483 if (!grp->pins || !grp->data) 481 if (!grp->pins || !grp->data)
484 return -ENOMEM; 482 return -ENOMEM;
@@ -502,7 +500,7 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
502 } 500 }
503 501
504 pin_id = (mux_reg != -1) ? mux_reg / 4 : conf_reg / 4; 502 pin_id = (mux_reg != -1) ? mux_reg / 4 : conf_reg / 4;
505 pin_reg = &info->pin_regs[pin_id]; 503 pin_reg = &ipctl->pin_regs[pin_id];
506 pin->pin = pin_id; 504 pin->pin = pin_id;
507 grp->pins[i] = pin_id; 505 grp->pins[i] = pin_id;
508 pin_reg->mux_reg = mux_reg; 506 pin_reg->mux_reg = mux_reg;
@@ -524,7 +522,7 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
524 pin->config = config & ~IMX_PAD_SION; 522 pin->config = config & ~IMX_PAD_SION;
525 } 523 }
526 524
527 dev_dbg(info->dev, "%s: 0x%x 0x%08lx", info->pins[pin_id].name, 525 dev_dbg(ipctl->dev, "%s: 0x%x 0x%08lx", info->pins[pin_id].name,
528 pin->mux_mode, pin->config); 526 pin->mux_mode, pin->config);
529 } 527 }
530 528
@@ -536,13 +534,12 @@ static int imx_pinctrl_parse_functions(struct device_node *np,
536 u32 index) 534 u32 index)
537{ 535{
538 struct pinctrl_dev *pctl = ipctl->pctl; 536 struct pinctrl_dev *pctl = ipctl->pctl;
539 struct imx_pinctrl_soc_info *info = ipctl->info;
540 struct device_node *child; 537 struct device_node *child;
541 struct function_desc *func; 538 struct function_desc *func;
542 struct group_desc *grp; 539 struct group_desc *grp;
543 u32 i = 0; 540 u32 i = 0;
544 541
545 dev_dbg(info->dev, "parse function(%d): %s\n", index, np->name); 542 dev_dbg(pctl->dev, "parse function(%d): %s\n", index, np->name);
546 543
547 func = pinmux_generic_get_function(pctl, index); 544 func = pinmux_generic_get_function(pctl, index);
548 if (!func) 545 if (!func)
@@ -552,10 +549,10 @@ static int imx_pinctrl_parse_functions(struct device_node *np,
552 func->name = np->name; 549 func->name = np->name;
553 func->num_group_names = of_get_child_count(np); 550 func->num_group_names = of_get_child_count(np);
554 if (func->num_group_names == 0) { 551 if (func->num_group_names == 0) {
555 dev_err(info->dev, "no groups defined in %pOF\n", np); 552 dev_err(ipctl->dev, "no groups defined in %pOF\n", np);
556 return -EINVAL; 553 return -EINVAL;
557 } 554 }
558 func->group_names = devm_kcalloc(info->dev, func->num_group_names, 555 func->group_names = devm_kcalloc(ipctl->dev, func->num_group_names,
559 sizeof(char *), GFP_KERNEL); 556 sizeof(char *), GFP_KERNEL);
560 if (!func->group_names) 557 if (!func->group_names)
561 return -ENOMEM; 558 return -ENOMEM;
@@ -563,15 +560,15 @@ static int imx_pinctrl_parse_functions(struct device_node *np,
563 for_each_child_of_node(np, child) { 560 for_each_child_of_node(np, child) {
564 func->group_names[i] = child->name; 561 func->group_names[i] = child->name;
565 562
566 grp = devm_kzalloc(info->dev, sizeof(struct group_desc), 563 grp = devm_kzalloc(ipctl->dev, sizeof(struct group_desc),
567 GFP_KERNEL); 564 GFP_KERNEL);
568 if (!grp) 565 if (!grp)
569 return -ENOMEM; 566 return -ENOMEM;
570 567
571 mutex_lock(&info->mutex); 568 mutex_lock(&ipctl->mutex);
572 radix_tree_insert(&pctl->pin_group_tree, 569 radix_tree_insert(&pctl->pin_group_tree,
573 info->group_index++, grp); 570 ipctl->group_index++, grp);
574 mutex_unlock(&info->mutex); 571 mutex_unlock(&ipctl->mutex);
575 572
576 imx_pinctrl_parse_groups(child, grp, ipctl, i++); 573 imx_pinctrl_parse_groups(child, grp, ipctl, i++);
577 } 574 }
@@ -608,7 +605,6 @@ static int imx_pinctrl_probe_dt(struct platform_device *pdev,
608 struct device_node *np = pdev->dev.of_node; 605 struct device_node *np = pdev->dev.of_node;
609 struct device_node *child; 606 struct device_node *child;
610 struct pinctrl_dev *pctl = ipctl->pctl; 607 struct pinctrl_dev *pctl = ipctl->pctl;
611 struct imx_pinctrl_soc_info *info = ipctl->info;
612 u32 nfuncs = 0; 608 u32 nfuncs = 0;
613 u32 i = 0; 609 u32 i = 0;
614 bool flat_funcs; 610 bool flat_funcs;
@@ -635,13 +631,13 @@ static int imx_pinctrl_probe_dt(struct platform_device *pdev,
635 if (!function) 631 if (!function)
636 return -ENOMEM; 632 return -ENOMEM;
637 633
638 mutex_lock(&info->mutex); 634 mutex_lock(&ipctl->mutex);
639 radix_tree_insert(&pctl->pin_function_tree, i, function); 635 radix_tree_insert(&pctl->pin_function_tree, i, function);
640 mutex_unlock(&info->mutex); 636 mutex_unlock(&ipctl->mutex);
641 } 637 }
642 pctl->num_functions = nfuncs; 638 pctl->num_functions = nfuncs;
643 639
644 info->group_index = 0; 640 ipctl->group_index = 0;
645 if (flat_funcs) { 641 if (flat_funcs) {
646 pctl->num_groups = of_get_child_count(np); 642 pctl->num_groups = of_get_child_count(np);
647 } else { 643 } else {
@@ -672,7 +668,7 @@ static void imx_free_resources(struct imx_pinctrl *ipctl)
672} 668}
673 669
674int imx_pinctrl_probe(struct platform_device *pdev, 670int imx_pinctrl_probe(struct platform_device *pdev,
675 struct imx_pinctrl_soc_info *info) 671 const struct imx_pinctrl_soc_info *info)
676{ 672{
677 struct regmap_config config = { .name = "gpr" }; 673 struct regmap_config config = { .name = "gpr" };
678 struct device_node *dev_np = pdev->dev.of_node; 674 struct device_node *dev_np = pdev->dev.of_node;
@@ -687,7 +683,6 @@ int imx_pinctrl_probe(struct platform_device *pdev,
687 dev_err(&pdev->dev, "wrong pinctrl info\n"); 683 dev_err(&pdev->dev, "wrong pinctrl info\n");
688 return -EINVAL; 684 return -EINVAL;
689 } 685 }
690 info->dev = &pdev->dev;
691 686
692 if (info->gpr_compatible) { 687 if (info->gpr_compatible) {
693 gpr = syscon_regmap_lookup_by_compatible(info->gpr_compatible); 688 gpr = syscon_regmap_lookup_by_compatible(info->gpr_compatible);
@@ -700,14 +695,14 @@ int imx_pinctrl_probe(struct platform_device *pdev,
700 if (!ipctl) 695 if (!ipctl)
701 return -ENOMEM; 696 return -ENOMEM;
702 697
703 info->pin_regs = devm_kmalloc(&pdev->dev, sizeof(*info->pin_regs) * 698 ipctl->pin_regs = devm_kmalloc(&pdev->dev, sizeof(*ipctl->pin_regs) *
704 info->npins, GFP_KERNEL); 699 info->npins, GFP_KERNEL);
705 if (!info->pin_regs) 700 if (!ipctl->pin_regs)
706 return -ENOMEM; 701 return -ENOMEM;
707 702
708 for (i = 0; i < info->npins; i++) { 703 for (i = 0; i < info->npins; i++) {
709 info->pin_regs[i].mux_reg = -1; 704 ipctl->pin_regs[i].mux_reg = -1;
710 info->pin_regs[i].conf_reg = -1; 705 ipctl->pin_regs[i].conf_reg = -1;
711 } 706 }
712 707
713 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 708 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -751,10 +746,10 @@ int imx_pinctrl_probe(struct platform_device *pdev,
751 /* platform specific callback */ 746 /* platform specific callback */
752 imx_pmx_ops.gpio_set_direction = info->gpio_set_direction; 747 imx_pmx_ops.gpio_set_direction = info->gpio_set_direction;
753 748
754 mutex_init(&info->mutex); 749 mutex_init(&ipctl->mutex);
755 750
756 ipctl->info = info; 751 ipctl->info = info;
757 ipctl->dev = info->dev; 752 ipctl->dev = &pdev->dev;
758 platform_set_drvdata(pdev, ipctl); 753 platform_set_drvdata(pdev, ipctl);
759 ret = devm_pinctrl_register_and_init(&pdev->dev, 754 ret = devm_pinctrl_register_and_init(&pdev->dev,
760 imx_pinctrl_desc, ipctl, 755 imx_pinctrl_desc, ipctl,
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.h b/drivers/pinctrl/freescale/pinctrl-imx.h
index 5aa22b52c1d4..41ee75537da4 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.h
+++ b/drivers/pinctrl/freescale/pinctrl-imx.h
@@ -58,14 +58,10 @@ struct imx_cfg_params_decode {
58}; 58};
59 59
60struct imx_pinctrl_soc_info { 60struct imx_pinctrl_soc_info {
61 struct device *dev;
62 const struct pinctrl_pin_desc *pins; 61 const struct pinctrl_pin_desc *pins;
63 unsigned int npins; 62 unsigned int npins;
64 struct imx_pin_reg *pin_regs;
65 unsigned int group_index;
66 unsigned int flags; 63 unsigned int flags;
67 const char *gpr_compatible; 64 const char *gpr_compatible;
68 struct mutex mutex;
69 65
70 /* MUX_MODE shift and mask in case SHARE_MUX_CONF_REG */ 66 /* MUX_MODE shift and mask in case SHARE_MUX_CONF_REG */
71 unsigned int mux_mask; 67 unsigned int mux_mask;
@@ -95,7 +91,10 @@ struct imx_pinctrl {
95 struct pinctrl_dev *pctl; 91 struct pinctrl_dev *pctl;
96 void __iomem *base; 92 void __iomem *base;
97 void __iomem *input_sel_base; 93 void __iomem *input_sel_base;
98 struct imx_pinctrl_soc_info *info; 94 const struct imx_pinctrl_soc_info *info;
95 struct imx_pin_reg *pin_regs;
96 unsigned int group_index;
97 struct mutex mutex;
99}; 98};
100 99
101#define IMX_CFG_PARAMS_DECODE(p, m, o) \ 100#define IMX_CFG_PARAMS_DECODE(p, m, o) \
@@ -117,5 +116,5 @@ struct imx_pinctrl {
117#define IOMUXC_CONFIG_SION (0x1 << 4) 116#define IOMUXC_CONFIG_SION (0x1 << 4)
118 117
119int imx_pinctrl_probe(struct platform_device *pdev, 118int imx_pinctrl_probe(struct platform_device *pdev,
120 struct imx_pinctrl_soc_info *info); 119 const struct imx_pinctrl_soc_info *info);
121#endif /* __DRIVERS_PINCTRL_IMX_H */ 120#endif /* __DRIVERS_PINCTRL_IMX_H */
diff --git a/drivers/pinctrl/freescale/pinctrl-imx7ulp.c b/drivers/pinctrl/freescale/pinctrl-imx7ulp.c
index b7bebb292f37..9161c984f57b 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx7ulp.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx7ulp.c
@@ -307,11 +307,10 @@ static int imx7ulp_pmx_gpio_set_direction(struct pinctrl_dev *pctldev,
307 unsigned offset, bool input) 307 unsigned offset, bool input)
308{ 308{
309 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 309 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
310 struct imx_pinctrl_soc_info *info = ipctl->info;
311 const struct imx_pin_reg *pin_reg; 310 const struct imx_pin_reg *pin_reg;
312 u32 reg; 311 u32 reg;
313 312
314 pin_reg = &info->pin_regs[offset]; 313 pin_reg = &ipctl->pin_regs[offset];
315 if (pin_reg->mux_reg == -1) 314 if (pin_reg->mux_reg == -1)
316 return -EINVAL; 315 return -EINVAL;
317 316
diff --git a/drivers/pinctrl/freescale/pinctrl-vf610.c b/drivers/pinctrl/freescale/pinctrl-vf610.c
index ac18bb6d6d5e..42745c690be3 100644
--- a/drivers/pinctrl/freescale/pinctrl-vf610.c
+++ b/drivers/pinctrl/freescale/pinctrl-vf610.c
@@ -300,11 +300,10 @@ static int vf610_pmx_gpio_set_direction(struct pinctrl_dev *pctldev,
300 unsigned offset, bool input) 300 unsigned offset, bool input)
301{ 301{
302 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); 302 struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
303 struct imx_pinctrl_soc_info *info = ipctl->info;
304 const struct imx_pin_reg *pin_reg; 303 const struct imx_pin_reg *pin_reg;
305 u32 reg; 304 u32 reg;
306 305
307 pin_reg = &info->pin_regs[offset]; 306 pin_reg = &ipctl->pin_regs[offset];
308 if (pin_reg->mux_reg == -1) 307 if (pin_reg->mux_reg == -1)
309 return -EINVAL; 308 return -EINVAL;
310 309