diff options
Diffstat (limited to 'arch/arm/mach-tegra/board-whistler.c')
-rw-r--r-- | arch/arm/mach-tegra/board-whistler.c | 97 |
1 files changed, 64 insertions, 33 deletions
diff --git a/arch/arm/mach-tegra/board-whistler.c b/arch/arm/mach-tegra/board-whistler.c index 5329b76ccfe1..348e5a6c4a6d 100644 --- a/arch/arm/mach-tegra/board-whistler.c +++ b/arch/arm/mach-tegra/board-whistler.c @@ -143,12 +143,12 @@ static __initdata struct tegra_clk_init_table whistler_clk_init_table[] = { { "uartc", "pll_m", 600000000, false}, { "pwm", "clk_32k", 32768, false}, { "kbc", "clk_32k", 32768, true}, - { "pll_a", NULL, 56448000, true}, - { "pll_a_out0", NULL, 11289600, true}, - { "i2s1", "pll_a_out0", 11289600, true}, - { "i2s2", "pll_a_out0", 11289600, true}, - { "audio", "pll_a_out0", 11289600, true}, - { "audio_2x", "audio", 22579200, true}, + { "pll_a", NULL, 56448000, false}, + { "pll_a_out0", NULL, 11289600, false}, + { "i2s1", "pll_a_out0", 11289600, false}, + { "i2s2", "pll_a_out0", 11289600, false}, + { "audio", "pll_a_out0", 11289600, false}, + { "audio_2x", "audio", 22579200, false}, { "spdif_out", "pll_a_out0", 5644800, false}, { "sdmmc2", "pll_p", 25000000, false}, { NULL, NULL, 0, 0}, @@ -229,50 +229,63 @@ static struct tegra_i2c_platform_data whistler_dvc_platform_data = { }; static struct tegra_das_platform_data tegra_das_pdata = { + .dap_clk = "clk_dev1", .tegra_dap_port_info_table = { - [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, - .dac_dap_data_comm_format = 0, - }, - }, /* I2S1 <--> DAC1 <--> DAP1 <--> Hifi Codec */ - [1] = { + [0] = { .dac_port = tegra_das_port_i2s1, + .dap_port = tegra_das_port_dap1, .codec_type = tegra_audio_codec_type_hifi, .device_property = { .num_channels = 2, .bits_per_sample = 16, .rate = 44100, - .dac_dap_data_comm_format = dac_dap_data_format_i2s, + .dac_dap_data_comm_format = + dac_dap_data_format_all, + }, + }, + /* I2S2 <--> DAC2 <--> DAP2 <--> Voice Codec */ + [1] = { + .dac_port = tegra_das_port_i2s2, + .dap_port = tegra_das_port_dap2, + .codec_type = tegra_audio_codec_type_voice, + .device_property = { + .num_channels = 1, + .bits_per_sample = 16, + .rate = 8000, + .dac_dap_data_comm_format = + dac_dap_data_format_all, }, }, + /* I2S2 <--> DAC2 <--> DAP3 <--> Baseband Codec */ [2] = { - .dac_port = tegra_das_port_none, - .codec_type = tegra_audio_codec_type_none, + .dac_port = tegra_das_port_i2s2, + .dap_port = tegra_das_port_dap3, + .codec_type = tegra_audio_codec_type_baseband, .device_property = { - .num_channels = 0, - .bits_per_sample = 0, - .rate = 0, - .dac_dap_data_comm_format = 0, + .num_channels = 1, + .bits_per_sample = 16, + .rate = 8000, + .dac_dap_data_comm_format = + dac_dap_data_format_dsp, }, }, + /* I2S2 <--> DAC2 <--> DAP4 <--> BT SCO Codec */ [3] = { - .dac_port = tegra_das_port_none, - .codec_type = tegra_audio_codec_type_none, + .dac_port = tegra_das_port_i2s2, + .dap_port = tegra_das_port_dap4, + .codec_type = tegra_audio_codec_type_bluetooth, .device_property = { - .num_channels = 0, - .bits_per_sample = 0, - .rate = 0, - .dac_dap_data_comm_format = 0, + .num_channels = 1, + .bits_per_sample = 16, + .rate = 8000, + .dac_dap_data_comm_format = + dac_dap_data_format_dsp, }, }, [4] = { .dac_port = tegra_das_port_none, + .dap_port = tegra_das_port_none, .codec_type = tegra_audio_codec_type_none, .device_property = { .num_channels = 0, @@ -286,12 +299,30 @@ static struct tegra_das_platform_data tegra_das_pdata = { .tegra_das_con_table = { [0] = { .con_id = tegra_das_port_con_id_hifi, - .num_entries = 4, + .num_entries = 2, .con_line = { [0] = {tegra_das_port_i2s1, tegra_das_port_dap1, true}, [1] = {tegra_das_port_dap1, tegra_das_port_i2s1, false}, - [2] = {tegra_das_port_i2s2, tegra_das_port_dap4, true}, - [3] = {tegra_das_port_dap4, tegra_das_port_i2s2, false}, + }, + }, + [1] = { + .con_id = tegra_das_port_con_id_bt_codec, + .num_entries = 4, + .con_line = { + [0] = {tegra_das_port_i2s2, tegra_das_port_dap4, true}, + [1] = {tegra_das_port_dap4, tegra_das_port_i2s2, false}, + [2] = {tegra_das_port_i2s1, tegra_das_port_dap1, true}, + [3] = {tegra_das_port_dap1, tegra_das_port_i2s1, false}, + }, + }, + [2] = { + .con_id = tegra_das_port_con_id_voicecall_no_bt, + .num_entries = 4, + .con_line = { + [0] = {tegra_das_port_dap2, tegra_das_port_dap3, true}, + [1] = {tegra_das_port_dap3, tegra_das_port_dap2, false}, + [2] = {tegra_das_port_i2s1, tegra_das_port_dap1, true}, + [3] = {tegra_das_port_dap1, tegra_das_port_i2s1, false}, }, }, } |