summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2010-11-09 14:38:35 +0530
committerVarun Colbert <vcolbert@nvidia.com>2010-11-19 14:25:14 -0800
commit9afc8280f910645984ad5fb031e10e05799d046b (patch)
treea89380377f941b47895202064e7e49b8a0d24062
parent1ccbe6b140b87713d9dc107dc7c8a64d1e6cd391 (diff)
[arm/tegra/odm] ventana: Supporting pin multiplexing for i2c-1
Supporting the i2c1 to have mutiplexed option in pin configuration. Changing the bus device info accordingly. bug 756254 Change-Id: Ifa74220c9fe3dfc4eb6928159f962de53634bd6a Reviewed-on: http://git-master/r/10413 Reviewed-by: Chun Keung (Denis) Chau <dchau@nvidia.com> Tested-by: Chun Keung (Denis) Chau <dchau@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/board-generic.c8
-rwxr-xr-xarch/arm/mach-tegra/board-nvodm.c35
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/ventana/nvodm_query_pinmux.c2
3 files changed, 40 insertions, 5 deletions
diff --git a/arch/arm/mach-tegra/board-generic.c b/arch/arm/mach-tegra/board-generic.c
index d2de4a4ac4b1..98836e4abcb2 100644
--- a/arch/arm/mach-tegra/board-generic.c
+++ b/arch/arm/mach-tegra/board-generic.c
@@ -185,7 +185,7 @@ static struct i2c_board_info bus0_i2c_devices[] = {
#endif
};
-static struct i2c_board_info bus3_i2c_devices[] = {
+static struct i2c_board_info bus4_i2c_devices[] = {
#ifdef CONFIG_SENSORS_AK8975
{
I2C_BOARD_INFO("mm_ak8975", 0x0C),
@@ -205,9 +205,9 @@ void __init i2c_device_setup(void)
i2c_register_board_info(0, bus0_i2c_devices,
ARRAY_SIZE(bus0_i2c_devices));
- if (ARRAY_SIZE(bus3_i2c_devices))
- i2c_register_board_info(3, bus3_i2c_devices,
- ARRAY_SIZE(bus3_i2c_devices));
+ if (ARRAY_SIZE(bus4_i2c_devices))
+ i2c_register_board_info(4, bus4_i2c_devices,
+ ARRAY_SIZE(bus4_i2c_devices));
}
// enable 32Khz clock used by bcm4329 wifi, bluetooth and gps
diff --git a/arch/arm/mach-tegra/board-nvodm.c b/arch/arm/mach-tegra/board-nvodm.c
index d362bb538c6a..d601636c958f 100755
--- a/arch/arm/mach-tegra/board-nvodm.c
+++ b/arch/arm/mach-tegra/board-nvodm.c
@@ -1317,6 +1317,38 @@ static void tegra_setup_spi(void) { }
#endif
#ifdef CONFIG_I2C_TEGRA
+#ifdef CONFIG_TEGRA_ODM_VENTANA
+static struct tegra_i2c_plat_parms tegra_i2c_platform[] = {
+ [0] = {
+ .adapter_nr = 0,
+ .bus_count = 1,
+ .bus_mux = { 0, 0 },
+ .bus_clk = { 100000, 0 }, /* default to 100KHz */
+ .is_dvc = false,
+ },
+ [1] = {
+ .adapter_nr = 1,
+ .bus_count = 2,
+ .bus_mux = { NvOdmI2cPinMap_Config1, NvOdmI2cPinMap_Config2},
+ .bus_clk = { 100000, 100000 },
+ .is_dvc = false,
+ },
+ [2] = {
+ .adapter_nr = 3,
+ .bus_count = 1,
+ .bus_mux = { 0, 0 },
+ .bus_clk = { 100000, 0 },
+ .is_dvc = false,
+ },
+ [3] = {
+ .adapter_nr = 4,
+ .bus_count = 1,
+ .bus_mux = { 0, 0 },
+ .bus_clk = { 100000, 0 },
+ .is_dvc = true,
+ },
+};
+#else
static struct tegra_i2c_plat_parms tegra_i2c_platform[] = {
[0] = {
.adapter_nr = 0,
@@ -1347,6 +1379,7 @@ static struct tegra_i2c_plat_parms tegra_i2c_platform[] = {
.is_dvc = true,
},
};
+#endif
static struct platform_device tegra_i2c_devices[] = {
[0] = {
.name = "tegra_i2c",
@@ -1439,12 +1472,14 @@ static noinline void __init tegra_setup_i2c(void)
if (!mux)
continue;
+#ifndef CONFIG_TEGRA_ODM_VENTANA
if (mux == NVODM_QUERY_PINMAP_MULTIPLEXED) {
pr_err("%s: unable to register %s.%d (multiplexed)\n",
__func__, dev->name, dev->id);
WARN_ON(1);
continue;
}
+#endif
if (clk)
plat->bus_clk[0] = clk*1000;
diff --git a/arch/arm/mach-tegra/odm_kit/query/ventana/nvodm_query_pinmux.c b/arch/arm/mach-tegra/odm_kit/query/ventana/nvodm_query_pinmux.c
index 3465f3a8e58d..82e57e8e8bf5 100644
--- a/arch/arm/mach-tegra/odm_kit/query/ventana/nvodm_query_pinmux.c
+++ b/arch/arm/mach-tegra/odm_kit/query/ventana/nvodm_query_pinmux.c
@@ -63,7 +63,7 @@ static const NvU32 s_NvOdmPinMuxConfig_Twc[] = {
static const NvU32 s_NvOdmPinMuxConfig_I2c[] = {
NvOdmI2cPinMap_Config1,
- NvOdmI2cPinMap_Config1,
+ NvOdmI2cPinMap_Multiplexed,
NvOdmI2cPinMap_Config1
};