[ARM] tegra: pinmux: add safe values, move tegra2, add suspend
commitc5f04b8d10a73f2a016d6815d64dd5eebc734097
authorColin Cross <ccross@android.com>
Fri, 9 Jul 2010 22:13:52 +0000 (9 15:13 -0700)
committerColin Cross <ccross@android.com>
Fri, 22 Oct 2010 01:11:41 +0000 (21 18:11 -0700)
tree54b6fd1ed295d7e9c5c85fce7c9767f1eced6569
parent460907bc26f5565aced3cf35a10e3579c671ef50
[ARM] tegra: pinmux: add safe values, move tegra2, add suspend

- the reset values for some pin groups in the tegra pin mux can result in
functional errors due to conflicting with actively-configured pin groups
muxing from the same controller. this change adds a known safe, non-
conflicting mux for every pin group, which can be used on platforms
where the pin group is not routed to any peripheral

- also add each pin group's I/O voltage rail, to enable platform code to
map from the pin groups used by each interface to the regulators used
for dynamic voltage control

- add routines to individually configure the tristate, pin mux and pull-
ups for a pingroup_config array, so that it is possible to program
individual values at run-time without modifying other values.
this allows driver power-management code to reprogram individual
interfaces into lower power states during idle / suspend, or to
reprogram the pin mux to support multiple physical busses per
internal controller (e.g., sharing a single I2C or SPI controller
across multiple pin groups)

- move chip-specific data like pingroups and drive-pingroups
out of the common code and into chip-specific code

- fix debug output for group with no pullups

- add a TEGRA_MUX_SAFE function.  Setting a pingroup to TEGRA_MUX_SAFE
will automatically select a mux setting that is guaranteed not to
conflict with any of the hardware blocks.

Signed-off-by: Gary King <gking@nvidia.com>
arch/arm/mach-tegra/Makefile
arch/arm/mach-tegra/include/mach/pinmux-t2.h [copied from arch/arm/mach-tegra/include/mach/pinmux.h with 52% similarity]
arch/arm/mach-tegra/include/mach/pinmux.h
arch/arm/mach-tegra/pinmux-t2-tables.c [new file with mode: 0644]
arch/arm/mach-tegra/pinmux.c