diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-06-20 10:44:11 -0600 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:45:58 -0800 |
commit | 43fe9a2b83d6e16e669bc35c8f7c398963ce0ff3 (patch) | |
tree | cd3c7f7e102f058b9819a36fa7f7919ed6c39fc9 /arch | |
parent | 256534830b50e25cadd4f60778889ed83d08b42d (diff) |
ARM: Tegra: Harmony: Add correct I2C platform data
board-harmony.c's I2C platform data was structured for the upstream driver,
but this branch contains the downstream driver. Fix the platform data to
match; pull it in from the chromeos-2.6.38 branch.
Also, modify any affected calls to i2c_register_board_info for the bus
numbering changes.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Change-Id: Ie1586455a2f5d46e497dcf594f7a83c4b70eda60
Rebase-Id: R6ebe439ccf53a5a0a0f0a3d826bade8bfa75a2bb
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-harmony-power.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-harmony.c | 42 |
2 files changed, 43 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-harmony-power.c b/arch/arm/mach-tegra/board-harmony-power.c index 5ad8b2f94f8d..0b4912b8bc50 100644 --- a/arch/arm/mach-tegra/board-harmony-power.c +++ b/arch/arm/mach-tegra/board-harmony-power.c @@ -113,7 +113,7 @@ static struct i2c_board_info __initdata harmony_regulators[] = { int __init harmony_regulator_init(void) { - i2c_register_board_info(3, harmony_regulators, 1); + i2c_register_board_info(4, harmony_regulators, 1); return 0; } diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index 19f9f75dd64c..dd2f818d850d 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c @@ -175,6 +175,43 @@ static struct platform_device harmony_audio_device = { }, }; +static struct tegra_i2c_platform_data harmony_i2c1_platform_data = { + .adapter_nr = 0, + .bus_count = 1, + .bus_clk_rate = { 400000, 0 }, +}; + +static const struct tegra_pingroup_config i2c2_ddc = { + .pingroup = TEGRA_PINGROUP_DDC, + .func = TEGRA_MUX_I2C2, +}; + +static const struct tegra_pingroup_config i2c2_gen2 = { + .pingroup = TEGRA_PINGROUP_PTA, + .func = TEGRA_MUX_I2C2, +}; + +static struct tegra_i2c_platform_data harmony_i2c2_platform_data = { + .adapter_nr = 1, + .bus_count = 2, + .bus_clk_rate = { 100000, 100000 }, + .bus_mux = { &i2c2_ddc, &i2c2_gen2 }, + .bus_mux_len = { 1, 1 }, +}; + +static struct tegra_i2c_platform_data harmony_i2c3_platform_data = { + .adapter_nr = 3, + .bus_count = 1, + .bus_clk_rate = { 400000, 0 }, +}; + +static struct tegra_i2c_platform_data harmony_dvc_platform_data = { + .adapter_nr = 4, + .bus_count = 1, + .bus_clk_rate = { 400000, 0 }, + .is_dvc = true, +}; + static struct wm8903_platform_data harmony_wm8903_pdata = { .irq_active_low = 0, .micdet_cfg = 0, @@ -197,6 +234,11 @@ static struct i2c_board_info __initdata wm8903_board_info = { static void __init harmony_i2c_init(void) { + tegra_i2c_device1.dev.platform_data = &harmony_i2c1_platform_data; + tegra_i2c_device2.dev.platform_data = &harmony_i2c2_platform_data; + tegra_i2c_device3.dev.platform_data = &harmony_i2c3_platform_data; + tegra_i2c_device4.dev.platform_data = &harmony_dvc_platform_data; + platform_device_register(&tegra_i2c_device1); platform_device_register(&tegra_i2c_device2); platform_device_register(&tegra_i2c_device3); |