summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu.c
diff options
context:
space:
mode:
authorRavindra Lokhande <rlokhande@nvidia.com>2011-07-18 16:28:17 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-07-19 16:31:27 -0700
commiteab72ed2f0ef189784e24209009c261022712460 (patch)
treeac8d31df40200591b8942ac5df47fd68112e3b4d /arch/arm/mach-tegra/board-cardhu.c
parent0d7cb9bfff778ac9af6bea32b0ea3a3e7b83c90c (diff)
arm: tegra: add voicecall support
add voicecall support in audio driver. DAM is used to upsample and down sample data received from and sent to baseband. Change-Id: Ib92919681b25bd89c1578d983ef3849d4d044065 Reviewed-on: http://git-master/r/41543 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c
index 541d3c3774fe..68b7c4384819 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -47,6 +47,7 @@
#include <mach/i2s.h>
#include <mach/spdif.h>
#include <mach/audio.h>
+#include <mach/tegra_das.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/usb_phy.h>
@@ -392,6 +393,78 @@ struct wired_jack_conf audio_wr_jack_conf = {
.spkr_amp_reg = "vdd_3v3_spk_amp"
};
+struct tegra_das_platform_data tegra_das_pdata = {
+ .tegra_dap_port_info_table = {
+ /* I2S0 <--> NULL */
+ [0] = {
+ .dac_port = tegra_das_port_none,
+ .codec_type = tegra_audio_codec_type_none,
+ .device_property = {
+ .num_channels = 0,
+ .bits_per_sample = 0,
+ .rate = 0,
+ .master = 0,
+ .lrck_high_left = false,
+ .dac_dap_data_comm_format = 0,
+ },
+ },
+ /* I2S1 <--> Hifi Codec */
+ [1] = {
+ .dac_port = tegra_das_port_i2s1,
+ .codec_type = tegra_audio_codec_type_hifi,
+ .device_property = {
+ .num_channels = 2,
+ .bits_per_sample = 16,
+ .rate = 48000,
+ .master = 0,
+ .lrck_high_left = false,
+ .dac_dap_data_comm_format =
+ dac_dap_data_format_i2s,
+ },
+ },
+ /* I2s2 <--> BB */
+ [2] = {
+ .dac_port = tegra_das_port_i2s2,
+ .codec_type = tegra_audio_codec_type_baseband,
+ .device_property = {
+ .num_channels = 1,
+ .bits_per_sample = 16,
+ .rate = 16000,
+ .master = 0,
+ .lrck_high_left = true,
+ .dac_dap_data_comm_format =
+ dac_dap_data_format_dsp,
+ },
+ },
+ /* I2s3 <--> BT */
+ [3] = {
+ .dac_port = tegra_das_port_i2s3,
+ .codec_type = tegra_audio_codec_type_bluetooth,
+ .device_property = {
+ .num_channels = 1,
+ .bits_per_sample = 16,
+ .rate = 8000,
+ .master = 0,
+ .lrck_high_left = false,
+ .dac_dap_data_comm_format =
+ dac_dap_data_format_dsp,
+ },
+ },
+ [4] = {
+ .dac_port = tegra_das_port_none,
+ .codec_type = tegra_audio_codec_type_none,
+ .device_property = {
+ .num_channels = 0,
+ .bits_per_sample = 0,
+ .rate = 0,
+ .master = 0,
+ .lrck_high_left = false,
+ .dac_dap_data_comm_format = 0,
+ },
+ },
+ },
+};
+
static void cardhu_audio_init(void)
{
#if defined(CONFIG_SND_HDA_TEGRA)