diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2010-11-09 14:38:35 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2010-11-19 14:25:14 -0800 |
commit | 9afc8280f910645984ad5fb031e10e05799d046b (patch) | |
tree | a89380377f941b47895202064e7e49b8a0d24062 /arch/arm/mach-tegra | |
parent | 1ccbe6b140b87713d9dc107dc7c8a64d1e6cd391 (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>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r-- | arch/arm/mach-tegra/board-generic.c | 8 | ||||
-rwxr-xr-x | arch/arm/mach-tegra/board-nvodm.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-tegra/odm_kit/query/ventana/nvodm_query_pinmux.c | 2 |
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 }; |