linux/drivers/pinctrl/freescale
Uwe Kleine-König 9911a2d5e9 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 in b4a87c9b96 ("pinctrl:
pinctrl-imx: add imx25 pinctrl driver") we had:

	info->pins[i].number = i + 1
	conf_reg(info->pins[i]) = 4 * i

. Commit 34027ca2bb ("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>
2015-10-02 04:06:02 -07:00
..
Kconfig pinctrl: imx: add i.mx6ul subdriver 2015-07-16 09:39:02 +02:00
Makefile pinctrl: imx: add i.mx6ul subdriver 2015-07-16 09:39:02 +02:00
pinctrl-imx1-core.c Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback 2015-07-20 11:01:53 +02:00
pinctrl-imx1.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx1.h
pinctrl-imx6dl.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6q.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6sl.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6sx.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6ul.c pinctrl: imx6ul: Remove .owner field 2015-08-25 16:29:06 +02:00
pinctrl-imx7d.c pinctrl: Remove .owner field 2015-06-04 10:12:42 +02:00
pinctrl-imx21.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx23.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx25.c pinctrl: imx25: ensure that a pin with id i is at position i in the info array 2015-10-02 04:06:02 -07:00
pinctrl-imx27.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx28.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx35.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx50.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx51.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx53.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-imx.h
pinctrl-mxs.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-mxs.h
pinctrl-vf610.c pinctrl: freescale: make of_device_id array const 2015-03-09 18:10:56 +01:00