i2c-tegra: add support for virtual busses with dynamic pinmuxing
authorGary King <gking@nvidia.com>
Wed, 14 Jul 2010 01:56:40 +0000 (18:56 -0700)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:26:46 +0000 (16:26 -0700)
commit67b5a6542fd3733c1b305512acd6407b6ab23d79
treef016e2cffae13e8da220cd5f5b4ac028d41a2f47
parent1908b3377de876b3c6725173877fab33e09e0739
i2c-tegra: add support for virtual busses with dynamic pinmuxing

this adds support for dynamically reprogramming the I2C controller's
pin mux on transaction boundaries to enable one controller to be
registered as multiple I2C bus adapters with the kernel. this allows
platform designers an additional tool to resolve clock rate, I/O
voltage and electrical loading restrictions between the platform's
peripherals.

the i2c-tegra platform data is extended to support this; platforms
which use this feature should pass in the number of busses which
should be created for each controller, the starting adapter number
to use and the clock rate and pin mux for each virtual bus.

Change-Id: I57a96deb7b7b793222ec3f8cc3a941917a023609
Signed-off-by: Gary King <gking@nvidia.com>
drivers/i2c/busses/i2c-tegra.c
include/linux/i2c-tegra.h