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)
committerDan Willemsen <dwillemsen@nvidia.com>
Thu, 1 Dec 2011 05:34:34 +0000 (21:34 -0800)
commitde786eb5be611f8ba2fc8c784fa5f98f89b5a428
treebd0698c16a6523cb27221f4344979e1468bea7f3
parent9defc28533e93bd9b6298bdcba46c1c33e56d8d5
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