diff options
| -rw-r--r-- | drivers/pinctrl/freescale/pinctrl-imx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c index 2ee0d9228e63..e261f1cf85c6 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.c +++ b/drivers/pinctrl/freescale/pinctrl-imx.c | |||
| @@ -542,10 +542,13 @@ static int imx_pinctrl_parse_groups(struct device_node *np, | |||
| 542 | struct imx_pin_reg *pin_reg; | 542 | struct imx_pin_reg *pin_reg; |
| 543 | struct imx_pin *pin = &grp->pins[i]; | 543 | struct imx_pin *pin = &grp->pins[i]; |
| 544 | 544 | ||
| 545 | if (info->flags & SHARE_MUX_CONF_REG) | 545 | if (info->flags & SHARE_MUX_CONF_REG) { |
| 546 | conf_reg = mux_reg; | 546 | conf_reg = mux_reg; |
| 547 | else | 547 | } else { |
| 548 | conf_reg = be32_to_cpu(*list++); | 548 | conf_reg = be32_to_cpu(*list++); |
| 549 | if (!conf_reg) | ||
| 550 | conf_reg = -1; | ||
| 551 | } | ||
| 549 | 552 | ||
| 550 | pin_id = mux_reg ? mux_reg / 4 : conf_reg / 4; | 553 | pin_id = mux_reg ? mux_reg / 4 : conf_reg / 4; |
| 551 | pin_reg = &info->pin_regs[pin_id]; | 554 | pin_reg = &info->pin_regs[pin_id]; |
