linux/drivers/pinctrl
Linus Walleij dbfe8ca259 pinctrl/nomadik: implement pin multiplexing
Implements basic pinmux for the Nomadik pin controller.

The plan is to split the existing singular pin config interface
nmk_config_pin(), nmk_config_pins(), that will configure muxing
and other settings at the same time, into two interfaces
by splitting the code in pinmux and pinctrl and eventually
deleting the old interface and its helper functions when all
users are gone.

nmk_gpio_set_mode() and nmk_gpio_get_mode() are two older
interfaces for just configuring muxing/altfunctions that
will also be replaced in the end.

We take some extra care to handle the glitch-avoidance here,
but it is simpler now since there is only one altsetting per
pingroup so we know immediately if we need to avoid altfunc
C glitches for a certain group.

As part of the makeover implement the .request() and .free()
calls on the GPIO chips and have them call back into the
pinctrl layer to reserve GPIOs.

ChangeLog v1->v2:
- Rebased on pinctrl-mergebase-20120418 so we get the latest
  driver infrastructure where function count is done by a fixed
  value and we can drop a few range checks since this is now
  handled by the core.
- Include a GPIO muxing hunk erroneously part of the pin config
  patch.

Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-05-11 11:14:16 +02:00
..
Kconfig pinctrl/nomadik: implement pin multiplexing 2012-05-11 11:14:16 +02:00
Makefile pinctrl/nomadik: basic Nomadik pinctrl interface 2012-05-11 11:14:14 +02:00
core.c pinctrl: show pin name for pingroups in sysfs 2012-04-18 13:53:13 +02:00
core.h pinctrl: show pin name for pingroups in sysfs 2012-04-18 13:53:13 +02:00
devicetree.c pinctrl: implement pinctrl deferred probing 2012-04-18 13:53:11 +02:00
devicetree.h pinctrl: core device tree mapping table parsing support 2012-04-18 13:53:10 +02:00
pinconf-generic.c pinctrl: introduce generic pin config 2012-03-12 22:49:02 +01:00
pinconf.c pinctrl: a minor fix of pin config debug information 2012-04-18 13:53:13 +02:00
pinconf.h pinctrl: pinconf: fix compilation error if PINCONF is not selected 2012-04-18 13:53:12 +02:00
pinctrl-coh901.c pinctrl: mark const init data with __initconst instead of __initdata 2012-04-18 13:53:10 +02:00
pinctrl-coh901.h pinctrl: support pinconfig on the U300 2012-03-12 22:49:03 +01:00
pinctrl-mmp2.c pinctrl: enable pinmux for mmp series 2012-02-01 19:42:35 +01:00
pinctrl-nomadik-db8500.c pinctrl/nomadik: implement pin multiplexing 2012-05-11 11:14:16 +02:00
pinctrl-nomadik.c pinctrl/nomadik: implement pin multiplexing 2012-05-11 11:14:16 +02:00
pinctrl-nomadik.h pinctrl/nomadik: implement pin multiplexing 2012-05-11 11:14:16 +02:00
pinctrl-pxa3xx.c pinctrl: replace list_*() with get_*_count() 2012-04-18 13:53:10 +02:00
pinctrl-pxa3xx.h pinctrl: enable pinmux for mmp series 2012-02-01 19:42:35 +01:00
pinctrl-pxa168.c pinctrl: enable pinmux for mmp series 2012-02-01 19:42:35 +01:00
pinctrl-pxa910.c pinctrl: enable pinmux for mmp series 2012-02-01 19:42:35 +01:00
pinctrl-sirf.c pinctrl: replace list_*() with get_*_count() 2012-04-18 13:53:10 +02:00
pinctrl-tegra.c pinctrl: tegra: Add complete device tree support 2012-04-18 13:53:12 +02:00
pinctrl-tegra.h pinctrl: add a driver for NVIDIA Tegra 2012-03-06 10:51:46 +01:00
pinctrl-tegra20.c pinctrl: add a driver for NVIDIA Tegra 2012-03-06 10:51:46 +01:00
pinctrl-tegra30.c pinctrl: add a driver for NVIDIA Tegra 2012-03-06 10:51:46 +01:00
pinctrl-u300.c pinctrl: replace list_*() with get_*_count() 2012-04-18 13:53:10 +02:00
pinmux.c pinctrl: show pin name when request pins 2012-04-18 13:53:13 +02:00
pinmux.h pinctrl: ifdef CONFIG_DEBUG_FS cleanup 2012-04-18 13:53:12 +02:00