mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-30 13:38:40 +00:00
pinctrl: imx25: ensure that a pin with id i is at position i in the info array
The code in pinctrl-imx.c only works correctly if in the imx_pinctrl_soc_info passed to imx_pinctrl_probe we have: info->pins[i].number = i conf_reg(info->pins[i]) = 4 * i (which conf_reg(pin) being the offset of the pin's configuration register). When the imx25 specific part was introduced inb4a87c9b96
("pinctrl: pinctrl-imx: add imx25 pinctrl driver") we had: info->pins[i].number = i + 1 conf_reg(info->pins[i]) = 4 * i . Commit34027ca2bb
("pinctrl: imx25: fix numbering for pins") tried to fix that but made the situation: info->pins[i-1].number = i conf_reg(info->pins[i-1]) = 4 * i which is hardly better but fixed the error seen back then. So insert another reserved entry in the array to finally yield: info->pins[i].number = i conf_reg(info->pins[i]) = 4 * i Fixes:34027ca2bb
("pinctrl: imx25: fix numbering for pins") Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
d50a9e1b6d
commit
9911a2d5e9
@ -26,7 +26,8 @@
|
||||
#include "pinctrl-imx.h"
|
||||
|
||||
enum imx25_pads {
|
||||
MX25_PAD_RESERVE0 = 1,
|
||||
MX25_PAD_RESERVE0 = 0,
|
||||
MX25_PAD_RESERVE1 = 1,
|
||||
MX25_PAD_A10 = 2,
|
||||
MX25_PAD_A13 = 3,
|
||||
MX25_PAD_A14 = 4,
|
||||
@ -169,6 +170,7 @@ enum imx25_pads {
|
||||
/* Pad names for the pinmux subsystem */
|
||||
static const struct pinctrl_pin_desc imx25_pinctrl_pads[] = {
|
||||
IMX_PINCTRL_PIN(MX25_PAD_RESERVE0),
|
||||
IMX_PINCTRL_PIN(MX25_PAD_RESERVE1),
|
||||
IMX_PINCTRL_PIN(MX25_PAD_A10),
|
||||
IMX_PINCTRL_PIN(MX25_PAD_A13),
|
||||
IMX_PINCTRL_PIN(MX25_PAD_A14),
|
||||
|
Loading…
Reference in New Issue
Block a user