diff options
| author | Simon Glass <sjg@chromium.org> | 2012-04-02 13:19:01 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-05-15 08:31:39 +0200 | 
| commit | e31c1e50ac8d85ede3f62c438034397ba54734d7 (patch) | |
| tree | a79cb7e9ffb14902c2b8a017949598384da807bc | |
| parent | 1f47efa87a00dd98d61937c7040c8d2590d8b16f (diff) | |
| download | olio-uboot-2014.01-e31c1e50ac8d85ede3f62c438034397ba54734d7.tar.xz olio-uboot-2014.01-e31c1e50ac8d85ede3f62c438034397ba54734d7.zip | |
tegra: i2c: Add function to find DVC bus
Add tegra_i2c_get_dvc_bus_num() to obtain the I2C bus number of DVC bus.
This allows us to talk to the PMU.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
| -rw-r--r-- | arch/arm/include/asm/arch-tegra2/tegra_i2c.h | 7 | ||||
| -rw-r--r-- | drivers/i2c/tegra_i2c.c | 14 | 
2 files changed, 21 insertions, 0 deletions
| diff --git a/arch/arm/include/asm/arch-tegra2/tegra_i2c.h b/arch/arm/include/asm/arch-tegra2/tegra_i2c.h index 0a7d99c58..cfb136c46 100644 --- a/arch/arm/include/asm/arch-tegra2/tegra_i2c.h +++ b/arch/arm/include/asm/arch-tegra2/tegra_i2c.h @@ -154,4 +154,11 @@ struct i2c_ctlr {  #define I2C_INT_ARBITRATION_LOST_SHIFT	2  #define I2C_INT_ARBITRATION_LOST_MASK	(1 << I2C_INT_ARBITRATION_LOST_SHIFT) +/** + * Returns the bus number of the DVC controller + * + * @return number of bus, or -1 if there is no DVC active + */ +int tegra_i2c_get_dvc_bus_num(void); +  #endif diff --git a/drivers/i2c/tegra_i2c.c b/drivers/i2c/tegra_i2c.c index 21f689726..5b6ea0e75 100644 --- a/drivers/i2c/tegra_i2c.c +++ b/drivers/i2c/tegra_i2c.c @@ -567,3 +567,17 @@ int i2c_set_bus_num(unsigned int bus)  	return 0;  }  #endif + +int tegra_i2c_get_dvc_bus_num(void) +{ +	int i; + +	for (i = 0; i < CONFIG_SYS_MAX_I2C_BUS; i++) { +		struct i2c_bus *bus = &i2c_controllers[i]; + +		if (bus->inited && bus->is_dvc) +			return i; +	} + +	return -1; +} |