1
0
Fork 0
alistair23-linux/drivers/pinctrl
Shawn Guo e16415313c pinctrl: imx: move hard-coding data into device tree
Currently, all imx pinctrl drivers maintain a big array of struct
imx_pin_reg which hard-codes data like register offset and mux mode
setting for each pin function.  Every time a new imx SoC support is
added, we need to add such a big mount of data.  With moving to single
kernel build, it's only matter of time to be blamed on memory consuming.

With DTC pre-processor support in place, the patch moves all these data
into device tree by redefining the PIN_FUNC_ID in imxXX-pinfunc.h and
changing the PIN_FUNC_ID parsing code a little bit.

The pin id gets re-numbered based on mux register offset, or config
register offset if the pin has no mux register, so that kernel can
identify the pin id from register offsets provided by device tree.

As a bonus point of the change, those arbitrary magic numbers standing
for particular PIN_FUNC_ID in device tree sources are now replaced by
macros to improve the readability of dts files.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-04-09 22:52:50 +08:00
..
mvebu pinctrl: mvebu: fix checking for SoC specific controls 2013-03-21 18:50:54 +01:00
sh-pfc sh-pfc: sh_pfc_probe() sizeof() fix 2013-02-16 10:58:50 +09:00
spear pinctrl: Convert to devm_ioremap_resource() 2013-01-22 11:41:57 -08:00
Kconfig arm-soc: pin muxing for sh-mobile 2013-02-21 15:00:16 -08:00
Makefile arm-soc: pin muxing for sh-mobile 2013-02-21 15:00:16 -08:00
core.c pinctrl/pinconfig: add debug interface 2013-02-10 21:11:54 +01:00
core.h pinctrl/pinconfig: add debug interface 2013-02-10 21:11:54 +01:00
devicetree.c pinctrl: do not defer device tree hogs 2013-01-11 21:49:21 +01:00
devicetree.h pinctrl: core device tree mapping table parsing support 2012-04-18 13:53:10 +02:00
pinconf-generic.c pinctrl: generic: rename input schmitt disable 2013-02-15 09:52:29 +01:00
pinconf.c pinctrl: Print the correct information in debugfs pinconf-state file 2013-03-13 19:12:07 +01:00
pinconf.h pinctrl: generic: Fix compilation error 2013-03-13 19:39:59 +01:00
pinctrl-ab8500.c pinctrl/abx500: use direct IRQ defines 2013-02-10 15:48:43 +01:00
pinctrl-ab8505.c pinctrl/abx500: use direct IRQ defines 2013-02-10 15:48:43 +01:00
pinctrl-ab8540.c pinctrl/abx500: use direct IRQ defines 2013-02-10 15:48:43 +01:00
pinctrl-ab9540.c pinctrl/abx500: use direct IRQ defines 2013-02-10 15:48:43 +01:00
pinctrl-abx500.c pinctrl: abx500: Fix checking if pin use AlternateFunction register 2013-03-13 19:11:56 +01:00
pinctrl-abx500.h pinctrl/abx500: replace IRQ offsets with table read-in values 2013-02-10 15:44:33 +01:00
pinctrl-at91.c ARM: at91: add gpio suspend/resume support when using pinctrl 2013-03-14 09:37:42 +01:00
pinctrl-bcm2835.c pinctrl: Convert to devm_ioremap_resource() 2013-01-22 11:41:57 -08:00
pinctrl-coh901.c pinctrl: Convert to devm_ioremap_resource() 2013-01-22 11:41:57 -08:00
pinctrl-coh901.h pinctrl: support pinconfig on the U300 2012-03-12 22:49:03 +01:00
pinctrl-exynos.c ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
pinctrl-exynos.h pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts 2012-10-15 09:10:12 +02:00
pinctrl-exynos5440.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
pinctrl-falcon.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
pinctrl-imx.c pinctrl: imx: move hard-coding data into device tree 2013-04-09 22:52:50 +08:00
pinctrl-imx.h pinctrl: imx: move hard-coding data into device tree 2013-04-09 22:52:50 +08:00
pinctrl-imx6q.c pinctrl: imx: move hard-coding data into device tree 2013-04-09 22:52:50 +08:00
pinctrl-imx23.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-imx28.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-imx35.c pinctrl: imx: move hard-coding data into device tree 2013-04-09 22:52:50 +08:00
pinctrl-imx51.c pinctrl: imx: move hard-coding data into device tree 2013-04-09 22:52:50 +08:00
pinctrl-imx53.c pinctrl: imx: move hard-coding data into device tree 2013-04-09 22:52:50 +08:00
pinctrl-lantiq.c pinctrl/lantiq: fix pin number in ltq_pmx_gpio_request_enable 2013-02-05 16:17:26 +01:00
pinctrl-lantiq.h pinctrl/lantiq: add output pinconf parameter 2013-02-05 16:17:22 +01:00
pinctrl-mmp2.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-mxs.c pinctrl: pinctrl-mxs: Fix variables' definition type 2013-01-18 20:28:07 +01:00
pinctrl-mxs.h pinctrl: add pinctrl-mxs support 2012-05-02 01:18:27 +02:00
pinctrl-nomadik-db8500.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-nomadik-db8540.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-nomadik-stn8815.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-nomadik.c arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
pinctrl-nomadik.h pinctrl/nomadik: move the platform data header 2012-11-05 09:55:27 +01:00
pinctrl-pxa3xx.c pinctrl: Convert to devm_ioremap_resource() 2013-01-22 11:41:57 -08:00
pinctrl-pxa3xx.h pinctrl: pxa3xx: Remove phy_base and phy_size from struct pxa3xx_pinmux_info 2012-11-15 11:21:46 +01:00
pinctrl-pxa168.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-pxa910.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-samsung.c arm-soc: non-critical bug fixes 2013-02-21 14:54:55 -08:00
pinctrl-samsung.h pinctrl: samsung: Fix a typo in pinctrl-samsung.h 2012-12-18 19:00:25 -08:00
pinctrl-single.c Revert "pinctrl: single: support gpio request and free" 2013-01-22 13:48:07 +01:00
pinctrl-sirf.c pinctrl: sirf: replace of_gpio_simple_xlate by sirf specific of_xlate 2013-02-05 15:27:39 +01:00
pinctrl-sunxi.c pinctrl: sunxi: add of_xlate function 2013-02-05 17:32:29 +01:00
pinctrl-sunxi.h ARM: pinctrl: sunxi: Add the pinctrl pin set for Allwinner A10 2013-02-01 10:45:34 +01:00
pinctrl-tegra.c pinctrl: tegra: add support for rcv-sel and drive type 2013-01-18 16:13:52 +01:00
pinctrl-tegra.h pinctrl: tegra: add support for rcv-sel and drive type 2013-01-18 16:13:52 +01:00
pinctrl-tegra20.c pinctrl: tegra: add support for rcv-sel and drive type 2013-01-18 16:13:52 +01:00
pinctrl-tegra30.c pinctrl: tegra: add support for rcv-sel and drive type 2013-01-18 16:13:52 +01:00
pinctrl-tegra114.c pinctrl: tegra: add clfvs function to Tegra114 support 2013-02-15 20:22:39 +01:00
pinctrl-u300.c pinctrl: Convert to devm_ioremap_resource() 2013-01-22 11:41:57 -08:00
pinctrl-xway.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
pinmux.c pinmux: forbid mux_usecount to be set at UINT_MAX 2013-03-21 19:26:18 +01:00
pinmux.h pinctrl: ifdef CONFIG_DEBUG_FS cleanup 2012-04-18 13:53:12 +02:00