Some Allwinner SoCs have 2 pinctrls (PIO and R_PIO). Previous implementation used absolute pin numbering and it was incorrect for R_PIO pinctrl. It's necessary to take into account the base pin number.
Unified · Split
| @@ -544,6 +544,8 @@ static int sunxi_pconf_set(struct pinctrl_dev *pctldev, unsigned pin, · 543 unmodified lines | |||
| 544 | struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | 544 | struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); |
| 545 | int i; | 545 | int i; |
| 546 | 546 | ||
| 547 | pin -= pctl->desc->pin_base; | ||
| 548 | |||
| 547 | for (i = 0; i < num_configs; i++) { | 549 | for (i = 0; i < num_configs; i++) { |
| 548 | enum pin_config_param param; | 550 | enum pin_config_param param; |
| 549 | unsigned long flags; | 551 | unsigned long flags; |