diff options
author | Ravindra Lokhande <rlokhande@nvidia.com> | 2011-07-18 16:28:17 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-07-19 16:31:27 -0700 |
commit | eab72ed2f0ef189784e24209009c261022712460 (patch) | |
tree | ac8d31df40200591b8942ac5df47fd68112e3b4d /arch/arm/mach-tegra/board-cardhu.c | |
parent | 0d7cb9bfff778ac9af6bea32b0ea3a3e7b83c90c (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.c | 73 |
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) |