diff options
-rw-r--r-- | arch/arm/mach-tegra/board-whistler.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-whistler.c b/arch/arm/mach-tegra/board-whistler.c index f69c1bdcd84f..36ec4aed8eb0 100644 --- a/arch/arm/mach-tegra/board-whistler.c +++ b/arch/arm/mach-tegra/board-whistler.c @@ -47,6 +47,7 @@ #include <asm/mach-types.h> #include <asm/mach/arch.h> #include <mach/usb_phy.h> +#include <mach/tegra_das.h> #include "board.h" #include "clock.h" @@ -201,6 +202,73 @@ static struct tegra_i2c_platform_data whistler_dvc_platform_data = { .is_dvc = true, }; +static struct tegra_das_platform_data tegra_das_pdata = { + .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] = { + .dac_port = tegra_das_port_i2s1, + .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, + }, + }, + [2] = { + .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, + }, + }, + [3] = { + .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, + }, + }, + [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, + .dac_dap_data_comm_format = 0, + }, + }, + }, + + .tegra_das_con_table = { + [0] = { + .con_id = tegra_das_port_con_id_hifi, + .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}, + }, + }, + } +}; + static void whistler_i2c_init(void) { tegra_i2c_device1.dev.platform_data = &whistler_i2c1_platform_data; @@ -260,6 +328,7 @@ static struct platform_device *whistler_devices[] __initdata = { &tegra_avp_device, &whistler_scroll_device, &tegra_camera, + &tegra_das_device, }; static struct synaptics_i2c_rmi_platform_data synaptics_pdata= { @@ -390,6 +459,8 @@ static void __init tegra_whistler_init(void) andusb_plat.serial_number = kstrdup(serial, GFP_KERNEL); platform_add_devices(whistler_devices, ARRAY_SIZE(whistler_devices)); + tegra_das_device.dev.platform_data = &tegra_das_pdata; + whistler_sdhci_init(); whistler_i2c_init(); whistler_regulator_init(); |