arm: tegra: la: la and ptsa updates for t14x.
[linux-3.10.git] / arch / arm / mach-tegra / include / mach / tegra_asoc_vcm_pdata.h
1 /*
2  * arch/arm/mach-tegra/include/mach/tegra_asoc_vcm_pdata.h
3  *
4  * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #ifndef __MACH_TEGRA_P1852_PDATA_H
18 #define __MACH_TEGRA_P1852_PDATA_H
19
20 #ifdef CONFIG_ARCH_TEGRA_2x_SOC
21 #define NUM_AUDIO_CONTROLLERS 2
22 #else
23 #define NUM_AUDIO_CONTROLLERS 4
24 #endif
25
26 /* data format supported */
27 enum i2s_data_format {
28         format_i2s = 0x1,
29         format_dsp = 0x2,
30         format_rjm = 0x4,
31         format_ljm = 0x8,
32         format_tdm = 0x10
33 };
34
35 struct codec_info_s {
36         /* Name of the Codec Dai on the system */
37         char *codec_dai_name;
38         /* Name of the I2S controller dai its connected to */
39         char *cpu_dai_name;
40         char *codec_name;       /* Name of the Codec Driver */
41         char *name;                     /* Name of the Codec-Dai-Link */
42         char *pcm_driver;       /* Name of the PCM driver */
43         enum i2s_data_format i2s_format;
44         int master;                     /* Codec is Master or Slave */
45         /* TDM format setttings */
46         int num_slots;          /* Number of TDM slots */
47         int slot_width;         /* Width of each slot */
48         int rx_mask;            /* Number of Rx Enabled slots */
49         int tx_mask;            /* Number of Tx Enabled slots */
50
51 };
52
53 /* used for T20, to select the DAC/DAPs */
54 struct dac_info_s {
55         int dac_id;
56         int dap_id;
57 };
58
59 struct tegra_asoc_vcm_platform_data {
60         struct codec_info_s codec_info[NUM_AUDIO_CONTROLLERS];
61         /* Valid for Tegra2 */
62         struct dac_info_s dac_info[NUM_AUDIO_CONTROLLERS];
63 };
64 #endif