diff options
author | Tom Cherry <tcherry@nvidia.com> | 2012-05-08 15:41:16 -0700 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-08-02 17:23:21 -0700 |
commit | 65688c4123a896291b5d08e511a609aaedd1b319 (patch) | |
tree | e9f220dd6d099a1c6a1b8c172341d41a58c08a99 | |
parent | 93fa2d495c82c5b63572e62e8bba6a6acf3269f9 (diff) |
arm: tegra: enterprise: change BB to DAP5 from DAP3 for A04
Due to a hardware issue, Audio Baseband lines are changed
for A04 board from DAP3 to DAP5. All other boards retain
the same older line
Bug 980383
Change-Id: If9ecfaa7328a9a7148f95d604926975172c0886a
Signed-off-by: Tom Cherry <tcherry@nvidia.com>
Reviewed-On: http://git-master/r/#change,109067
(cherry picked from commit c3de03de4d97937e6a989ae6c79c8c430afd300e)
Reviewed-on: http://git-master/r/105168
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise-pinmux.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise.c | 31 |
2 files changed, 30 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise-pinmux.c b/arch/arm/mach-tegra/board-enterprise-pinmux.c index c946d2ee5f40..4fcd7360833c 100644 --- a/arch/arm/mach-tegra/board-enterprise-pinmux.c +++ b/arch/arm/mach-tegra/board-enterprise-pinmux.c @@ -1,7 +1,7 @@ /* * arch/arm/mach-tegra/board-enterprise-pinmux.c * - * Copyright (C) 2011 NVIDIA Corporation + * Copyright (C) 2011-2012, NVIDIA CORPORATION. All rights reserved. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -276,8 +276,8 @@ static __initdata struct tegra_pingroup_config enterprise_pinmux_common[] = { DEFAULT_PINMUX(GMI_A18, UARTD, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(GMI_A19, UARTD, NORMAL, NORMAL, OUTPUT), DEFAULT_PINMUX(CAM_MCLK, VI_ALT2, NORMAL, NORMAL, INPUT), - DEFAULT_PINMUX(GPIO_PCC1, RSVD1, NORMAL, NORMAL, INPUT), - DEFAULT_PINMUX(GPIO_PBB0, RSVD1, NORMAL, NORMAL, INPUT), + DEFAULT_PINMUX(GPIO_PCC1, I2S4, NORMAL, NORMAL, INPUT), + DEFAULT_PINMUX(GPIO_PBB0, I2S4, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(GPIO_PBB3, VGP3, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(GPIO_PBB7, I2S4, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(GPIO_PCC2, I2S4, NORMAL, NORMAL, INPUT), diff --git a/arch/arm/mach-tegra/board-enterprise.c b/arch/arm/mach-tegra/board-enterprise.c index 1803e74abe2f..ebad27b5d963 100644 --- a/arch/arm/mach-tegra/board-enterprise.c +++ b/arch/arm/mach-tegra/board-enterprise.c @@ -1,7 +1,7 @@ /* * arch/arm/mach-tegra/board-enterprise.c * - * Copyright (c) 2011-2012, NVIDIA Corporation. + * Copyright (c) 2011-2012, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -182,7 +182,6 @@ static __initdata struct tegra_clk_init_table enterprise_clk_init_table[] = { { "blink", "clk_32k", 32768, true}, { "i2s0", "pll_a_out0", 0, false}, { "i2s1", "pll_a_out0", 0, false}, - { "i2s2", "pll_a_out0", 0, false}, { "i2s3", "pll_a_out0", 0, false}, { "spdif_out", "pll_a_out0", 0, false}, { "d_audio", "clk_m", 12000000, false}, @@ -199,6 +198,18 @@ static __initdata struct tegra_clk_init_table enterprise_clk_init_table[] = { { NULL, NULL, 0, 0}, }; +static __initdata struct tegra_clk_init_table enterprise_clk_i2s2_table[] = { + /* name parent rate enabled */ + { "i2s2", "pll_a_out0", 0, false}, + { NULL, NULL, 0, 0}, +}; + +static __initdata struct tegra_clk_init_table enterprise_clk_i2s4_table[] = { + /* name parent rate enabled */ + { "i2s4", "pll_a_out0", 0, false}, + { NULL, NULL, 0, 0}, +}; + static struct tegra_i2c_platform_data enterprise_i2c1_platform_data = { .adapter_nr = 0, .bus_count = 1, @@ -508,7 +519,6 @@ static struct tegra_asoc_platform_data enterprise_audio_pdata = { .sample_size = 16, }, .i2s_param[BASEBAND] = { - .audio_port_id = 2, .is_i2s_master = 1, .i2s_mode = TEGRA_DAIFMT_DSP_A, .sample_size = 16, @@ -851,7 +861,6 @@ static struct platform_device *enterprise_audio_devices[] __initdata = { &tegra_dam_device2, &tegra_i2s_device0, &tegra_i2s_device1, - &tegra_i2s_device2, &tegra_i2s_device3, &tegra_spdif_device, &spdif_dit_device, @@ -870,6 +879,13 @@ static void enterprise_audio_init(void) if (board_info.board_id == BOARD_E1197) enterprise_audio_pdata.i2s_param[HIFI_CODEC].audio_port_id = 1; + else if (board_info.fab == BOARD_FAB_A04) { + enterprise_audio_pdata.i2s_param[BASEBAND].audio_port_id = 4; + platform_device_register(&tegra_i2s_device4); + } else { + enterprise_audio_pdata.i2s_param[BASEBAND].audio_port_id = 2; + platform_device_register(&tegra_i2s_device2); + } platform_add_devices(enterprise_audio_devices, ARRAY_SIZE(enterprise_audio_devices)); @@ -980,6 +996,13 @@ static void enterprise_nfc_init(void) static void __init tegra_enterprise_init(void) { + struct board_info board_info; + tegra_get_board_info(&board_info); + if (board_info.fab == BOARD_FAB_A04) + tegra_clk_init_from_table(enterprise_clk_i2s4_table); + else + tegra_clk_init_from_table(enterprise_clk_i2s2_table); + tegra_thermal_init(&thermal_data, throttle_list, ARRAY_SIZE(throttle_list)); |