summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Cherry <tcherry@nvidia.com>2012-05-08 15:41:16 -0700
committerSimone Willett <swillett@nvidia.com>2012-08-02 17:23:21 -0700
commit65688c4123a896291b5d08e511a609aaedd1b319 (patch)
treee9f220dd6d099a1c6a1b8c172341d41a58c08a99
parent93fa2d495c82c5b63572e62e8bba6a6acf3269f9 (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.c6
-rw-r--r--arch/arm/mach-tegra/board-enterprise.c31
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));