htcleo: This adds an SMD channel on /dev/smd1 which can be used with pppd.
[htc-linux.git] / arch / arm / mach-msm / qdsp6 / q6audio_devices.h
blobd4d30b57c3554a515c820ebcee0d363154103e3e
1 /* arch/arm/mach-msm/qdsp6/q6audio_devices.h
3 * Copyright (C) 2009 Google, Inc.
4 * Author: Brian Swetland <swetland@google.com>
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.
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.
17 struct q6_device_info {
18 uint32_t id;
19 uint32_t cad_id;
20 uint32_t path;
21 uint32_t rate;
22 uint8_t dir;
23 uint8_t codec;
24 uint8_t hw;
27 #define Q6_ICODEC_RX 0
28 #define Q6_ICODEC_TX 1
29 #define Q6_ECODEC_RX 2
30 #define Q6_ECODEC_TX 3
31 #define Q6_SDAC_RX 6
32 #define Q6_SDAC_TX 7
33 #define Q6_CODEC_NONE 255
35 #define Q6_TX 1
36 #define Q6_RX 2
37 #define Q6_TX_RX 3
39 #define CAD_HW_DEVICE_ID_HANDSET_MIC 0x01
40 #define CAD_HW_DEVICE_ID_HANDSET_SPKR 0x02
41 #define CAD_HW_DEVICE_ID_HEADSET_MIC 0x03
42 #define CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO 0x04
43 #define CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO 0x05
44 #define CAD_HW_DEVICE_ID_SPKR_PHONE_MIC 0x06
45 #define CAD_HW_DEVICE_ID_SPKR_PHONE_MONO 0x07
46 #define CAD_HW_DEVICE_ID_SPKR_PHONE_STEREO 0x08
47 #define CAD_HW_DEVICE_ID_BT_SCO_MIC 0x09
48 #define CAD_HW_DEVICE_ID_BT_SCO_SPKR 0x0A
49 #define CAD_HW_DEVICE_ID_BT_A2DP_SPKR 0x0B
50 #define CAD_HW_DEVICE_ID_TTY_HEADSET_MIC 0x0C
51 #define CAD_HW_DEVICE_ID_TTY_HEADSET_SPKR 0x0D
53 #define CAD_HW_DEVICE_ID_DEFAULT_TX 0x0E
54 #define CAD_HW_DEVICE_ID_DEFAULT_RX 0x0F
56 /* Logical Device to indicate A2DP routing */
57 #define CAD_HW_DEVICE_ID_BT_A2DP_TX 0x10
58 #define CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_MONO_RX 0x11
59 #define CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_STEREO_RX 0x12
60 #define CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_MONO_RX 0x13
61 #define CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_STEREO_RX 0x14
63 #define CAD_HW_DEVICE_ID_VOICE 0x15
65 #define CAD_HW_DEVICE_ID_I2S_RX 0x20
66 #define CAD_HW_DEVICE_ID_I2S_TX 0x21
68 /* AUXPGA */
69 #define CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO_LB 0x22
70 #define CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO_LB 0x23
71 #define CAD_HW_DEVICE_ID_SPEAKER_SPKR_STEREO_LB 0x24
72 #define CAD_HW_DEVICE_ID_SPEAKER_SPKR_MONO_LB 0x25
74 #define CAD_HW_DEVICE_ID_NULL_RX 0x2A
76 #define CAD_HW_DEVICE_ID_MAX_NUM 0x2F
78 #define CAD_HW_DEVICE_ID_INVALID 0xFF
80 #define CAD_RX_DEVICE 0x00
81 #define CAD_TX_DEVICE 0x01
83 static struct q6_device_info q6_audio_devices[] = {
85 .id = ADSP_AUDIO_DEVICE_ID_HANDSET_SPKR,
86 .cad_id = CAD_HW_DEVICE_ID_HANDSET_SPKR,
87 .path = ADIE_PATH_HANDSET_RX,
88 .rate = 48000,
89 .dir = Q6_RX,
90 .codec = Q6_ICODEC_RX,
91 .hw = Q6_HW_HANDSET,
94 .id = ADSP_AUDIO_DEVICE_ID_HEADSET_SPKR_MONO,
95 .cad_id = CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO,
96 .path = ADIE_PATH_HEADSET_MONO_RX,
97 .rate = 48000,
98 .dir = Q6_RX,
99 .codec = Q6_ICODEC_RX,
100 .hw = Q6_HW_HEADSET,
103 .id = ADSP_AUDIO_DEVICE_ID_HEADSET_SPKR_STEREO,
104 .cad_id = CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO,
105 .path = ADIE_PATH_HEADSET_STEREO_RX,
106 .rate = 48000,
107 .dir = Q6_RX,
108 .codec = Q6_ICODEC_RX,
109 .hw = Q6_HW_HEADSET,
112 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MONO,
113 .cad_id = CAD_HW_DEVICE_ID_SPKR_PHONE_MONO,
114 .path = ADIE_PATH_SPEAKER_RX,
115 .rate = 48000,
116 .dir = Q6_RX,
117 .codec = Q6_ICODEC_RX,
118 .hw = Q6_HW_SPEAKER,
121 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_STEREO,
122 .cad_id = CAD_HW_DEVICE_ID_SPKR_PHONE_STEREO,
123 .path = ADIE_PATH_SPEAKER_STEREO_RX,
124 .rate = 48000,
125 .dir = Q6_RX,
126 .codec = Q6_ICODEC_RX,
127 .hw = Q6_HW_SPEAKER,
130 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MONO_W_MONO_HEADSET,
131 .cad_id = CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_MONO_RX,
132 .path = ADIE_PATH_SPKR_MONO_HDPH_MONO_RX,
133 .rate = 48000,
134 .dir = Q6_RX,
135 .codec = Q6_ICODEC_RX,
136 .hw = Q6_HW_SPEAKER,
139 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MONO_W_STEREO_HEADSET,
140 .cad_id = CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_MONO_RX,
141 .path = ADIE_PATH_SPKR_MONO_HDPH_STEREO_RX,
142 .rate = 48000,
143 .dir = Q6_RX,
144 .codec = Q6_ICODEC_RX,
145 .hw = Q6_HW_SPEAKER,
148 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_STEREO_W_MONO_HEADSET,
149 .cad_id = CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_STEREO_RX,
150 .path = ADIE_PATH_SPKR_STEREO_HDPH_MONO_RX,
151 .rate = 48000,
152 .dir = Q6_RX,
153 .codec = Q6_ICODEC_RX,
154 .hw = Q6_HW_SPEAKER,
157 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_STEREO_W_STEREO_HEADSET,
158 .cad_id = CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_STEREO_RX,
159 .path = ADIE_PATH_SPKR_STEREO_HDPH_STEREO_RX,
160 .rate = 48000,
161 .dir = Q6_RX,
162 .codec = Q6_ICODEC_RX,
163 .hw = Q6_HW_SPEAKER,
166 .id = ADSP_AUDIO_DEVICE_ID_TTY_HEADSET_SPKR,
167 .cad_id = CAD_HW_DEVICE_ID_TTY_HEADSET_SPKR,
168 .path = ADIE_PATH_TTY_HEADSET_RX,
169 .rate = 48000,
170 .dir = Q6_RX,
171 .codec = Q6_ICODEC_RX,
172 .hw = Q6_HW_TTY,
175 .id = ADSP_AUDIO_DEVICE_ID_HANDSET_MIC,
176 .cad_id = CAD_HW_DEVICE_ID_HANDSET_MIC,
177 .path = ADIE_PATH_HANDSET_TX,
178 .rate = 8000,
179 .dir = Q6_TX,
180 .codec = Q6_ICODEC_TX,
181 .hw = Q6_HW_HANDSET,
184 .id = ADSP_AUDIO_DEVICE_ID_HEADSET_MIC,
185 .cad_id = CAD_HW_DEVICE_ID_HEADSET_MIC,
186 .path = ADIE_PATH_HEADSET_MONO_TX,
187 .rate = 8000,
188 .dir = Q6_TX,
189 .codec = Q6_ICODEC_TX,
190 .hw = Q6_HW_HEADSET,
193 .id = ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MIC,
194 .cad_id = CAD_HW_DEVICE_ID_SPKR_PHONE_MIC,
195 .path = ADIE_PATH_SPEAKER_TX,
196 .rate = 8000,
197 .dir = Q6_TX,
198 .codec = Q6_ICODEC_TX,
199 .hw = Q6_HW_SPEAKER,
202 .id = ADSP_AUDIO_DEVICE_ID_TTY_HEADSET_MIC,
203 .cad_id = CAD_HW_DEVICE_ID_TTY_HEADSET_MIC,
204 .path = ADIE_PATH_TTY_HEADSET_TX,
205 .rate = 8000,
206 .dir = Q6_TX,
207 .codec = Q6_ICODEC_TX,
208 .hw = Q6_HW_HEADSET,
211 .id = ADSP_AUDIO_DEVICE_ID_BT_SCO_SPKR,
212 .cad_id = CAD_HW_DEVICE_ID_BT_SCO_SPKR,
213 .path = 0, /* XXX */
214 .rate = 48000,
215 .dir = Q6_RX,
216 .codec = Q6_ECODEC_RX,
217 .hw = Q6_HW_BT_SCO,
220 .id = ADSP_AUDIO_DEVICE_ID_BT_A2DP_SPKR,
221 .cad_id = CAD_HW_DEVICE_ID_BT_A2DP_SPKR,
222 .path = 0, /* XXX */
223 .rate = 48000,
224 .dir = Q6_RX,
225 .codec = Q6_ECODEC_RX,
226 .hw = Q6_HW_BT_A2DP,
229 .id = ADSP_AUDIO_DEVICE_ID_BT_SCO_MIC,
230 .cad_id = CAD_HW_DEVICE_ID_BT_SCO_MIC,
231 .path = 0, /* XXX */
232 .rate = 8000,
233 .dir = Q6_TX,
234 .codec = Q6_ECODEC_TX,
235 .hw = Q6_HW_BT_SCO,
238 .id = ADSP_AUDIO_DEVICE_ID_I2S_SPKR,
239 .cad_id = CAD_HW_DEVICE_ID_I2S_RX,
240 .path = 0, /* XXX */
241 .rate = 48000,
242 .dir = Q6_RX,
243 .codec = Q6_SDAC_RX,
244 .hw = Q6_HW_SPEAKER,
247 .id = ADSP_AUDIO_DEVICE_ID_I2S_MIC,
248 .cad_id = CAD_HW_DEVICE_ID_I2S_TX,
249 .path = 0, /* XXX */
250 .rate = 16000,
251 .dir = Q6_TX,
252 .codec = Q6_SDAC_TX,
253 .hw = Q6_HW_SPEAKER,
256 .id = 0,
257 .cad_id = 0,
258 .path = 0,
259 .rate = 8000,
260 .dir = 0,
261 .codec = Q6_CODEC_NONE,
262 .hw = 0,