linux/drivers/pinctrl/freescale
Uwe Kleine-König e44ddb6776 pinctrl: imx25: ensure that a pin with id i is at position i in the info array
commit 9911a2d5e9 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-10-27 09:51:59 +09:00
..
Kconfig pinctrl: imx/mxs: move freescale drivers to subdir 2014-09-04 10:05:28 +02:00
Makefile pinctrl: imx/mxs: move freescale drivers to subdir 2014-09-04 10:05:28 +02:00
pinctrl-imx.c pinctrl: fsl: imx: Check for 0 config register 2015-04-07 15:11:00 +02:00
pinctrl-imx.h pinctrl: imx: detect uninitialized pins 2014-09-23 11:45:47 +02:00
pinctrl-imx1-core.c Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback 2015-08-10 12:21:54 -07:00
pinctrl-imx1.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx1.h pinctrl: imx/mxs: move freescale drivers to subdir 2014-09-04 10:05:28 +02:00
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-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-27 09:51:59 +09: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-mxs.c pinctrl: mxs: warn if functions are not grouped by name 2014-10-30 15:52:39 +01:00
pinctrl-mxs.h pinctrl: imx/mxs: move freescale drivers to subdir 2014-09-04 10:05:28 +02:00
pinctrl-vf610.c pinctrl: freescale: make of_device_id array const 2015-03-09 18:10:56 +01:00