blob: 2639b8447a3379daa95ffd9f62451949b90b89d8 [file] [log] [blame]
Flemmardc19623342013-09-11 09:38:51 +02001/* linux/driver/spi/spi_aic3254_reg.h
2 *
3 * Copyright (C) 2010 HTC Corporation.
4 *
5 * This software is licensed under the terms of the GNU General Public
6 * License version 2, as published by the Free Software Foundation, and
7 * may be copied, distributed, and modified under those terms.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 */
15
16#ifndef __SPI_AIC3254_REG_H__
17#define __SPI_AIC3254_REG_H__
18/* The default setting for TI AIC3254 audio codec */
19#if 0
20static CODEC_SPI_CMD CODEC_INIT_REG[] = {
21 /* A00,Initial */
22 {'w', 0x00, 0x01},
23 {'w', 0x01, 0x00},
24 {'w', 0x02, 0x21},
25 {'w', 0x7B, 0x01},
26 {'w', 0x00, 0x00},
27 {'w', 0x06, 0x18},
28 {'w', 0x05, 0x51},
29 {'w', 0x04, 0x03},
30 {'w', 0x05, 0xD1},
31 {'w', 0x0B, 0x83},
32 {'w', 0x0C, 0x85},
33 {'w', 0x12, 0x83},
34 {'w', 0x13, 0x85},
35 {'w', 0x00, 0x01},
36 {'w', 0x0A, 0x3B},
37 {'w', 0x0C, 0x08},
38 {'w', 0x0D, 0x08},
39 {'w', 0x0E, 0x08},
40 {'w', 0x0F, 0x08},
41 {'w', 0x10, 0x00},
42 {'w', 0x11, 0x00},
43 {'w', 0x12, 0x00},
44 {'w', 0x13, 0x00},
45 {'w', 0x00, 0x00},
46 {'w', 0x40, 0x00},
47 {'w', 0x52, 0x00},
48 {'w', 0x1B, 0x00},
49 {'w', 0x1E, 0x00}
50};
51#endif
52
53static CODEC_SPI_CMD Uplink_EMIC[] = {
54 {'w', 0x00, 0x01},
55 {'w', 0x0F, 0x02},
56 {'w', 0x09, 0x0D},
57 {'w', 0x37, 0x08},
58 {'w', 0x39, 0x80},
59 {'w', 0x3B, 0x28},
60 {'w', 0x3C, 0x28},
61 {'w', 0x00, 0x00},
62 {'w', 0x51, 0x40},
63 {'w', 0x53, 0x00},
64 {'w', 0x54, 0x00}
65};
66
67#if 0
68static CODEC_SPI_CMD Uplink_IMIC[] = {
69 /* A01,Call_Uplink_IMIC_Receiver */
70 {'w', 0x00, 0x01},
71 {'w', 0x34, 0x08},
72 {'w', 0x36, 0x80},
73 {'w', 0x3B, 0x28},
74 {'w', 0x3C, 0x28},
75 {'w', 0x00, 0x00},
76 {'w', 0x51, 0x80},
77 {'w', 0x53, 0x00},
78 {'w', 0x54, 0x00}
79};
80
81static CODEC_SPI_CMD Uplink_IMIC_LineOut[] = {
82 /* B02 */
83 {'w', 0x00, 0x01},
84 {'w', 0x0E, 0x02},
85 {'w', 0x09, 0x3F},
86 {'w', 0x12, 0x3E},
87 {'w', 0x13, 0x3E},
88 {'w', 0x00, 0x00},
89 {'w', 0x41, 0x00},
90 {'w', 0x42, 0x00},
91 {'w', 0x3F, 0xF6}
92};
93
94static CODEC_SPI_CMD Uplink_EMIC_LineOut[] = {
95 {'w', 0x00, 0x01},
96 {'w', 0x0E, 0x02},
97 {'w', 0x09, 0x3D},
98 {'w', 0x12, 0x03},
99 {'w', 0x13, 0x3E},
100 {'w', 0x00, 0x00},
101 {'w', 0x41, 0x00},
102 {'w', 0x42, 0x00},
103 {'w', 0x3F, 0xD6}
104};
105#endif
106
107static CODEC_SPI_CMD Downlink_IMIC_Receiver[] = {
108 /* B08 */
109 {'w', 0x00, 0x01},
110 {'w', 0x09, 0x3F},
111 {'w', 0x10, 0x00},
112 {'w', 0x11, 0x00},
113 {'w', 0x0D, 0x10},
114 {'w', 0x00, 0x00},
115 {'w', 0x41, 0x0C},
116 {'w', 0x42, 0x0C},
117 {'w', 0x3F, 0xF6},
118 {'w', 0x40, 0x80},
119};
120
121static CODEC_SPI_CMD CODEC_UPLINK_OFF[] = {
122 /* A29,Uplink_Off */
123 {'w', 0x00, 0x01},
124 {'w', 0x34, 0x00},
125 {'w', 0x36, 0x00},
126 {'w', 0x39, 0x00},
127 {'w', 0x37, 0x00},
128 {'w', 0x3B, 0x80},
129 {'w', 0x3C, 0x80},
130 {'w', 0x00, 0x00},
131 {'w', 0x52, 0x88},
132 {'w', 0x53, 0x00},
133 {'w', 0x54, 0x00},
134 {'w', 0x54, 0x00}
135};
136
137static CODEC_SPI_CMD CODEC_UPLINK_ON[] = {
138 /* A30, Uplink_Wakeup */
139 {'w', 0x00, 0x01},
140 {'w', 0x01, 0x08},
141 {'w', 0x02, 0x21},
142 {'w', 0x3D, 0x00},
143 {'w', 0x47, 0x32},
144 {'w', 0x00, 0x00},
145 {'w', 0x3D, 0x01},
146 {'w', 0x52, 0x00},
147 {'w', 0x05, 0xD1},
148 {'w', 0x12, 0x83},
149 {'w', 0x13, 0x85},
150 {'w', 0x1E, 0x94},
151};
152
153static CODEC_SPI_CMD CODEC_DOWNLINK_OFF[] = {
154 /* B29,Downlink_Off */
155 {'w', 0x00, 0x01},
156 {'w', 0x09, 0x00},
157 {'w', 0x10, 0x40},
158 {'w', 0x11, 0x40},
159 {'w', 0x12, 0x40},
160 {'w', 0x13, 0x40},
161 {'w', 0x00, 0x00},
162 {'w', 0x3F, 0x16},
163 {'w', 0x40, 0x0C},
164 {'w', 0x41, 0x00},
165 {'w', 0x42, 0x00},
166 {'w', 0x40, 0x00},
167 {'w', 0x0B, 0x03},
168 {'w', 0x0C, 0x05},
169};
170
171static CODEC_SPI_CMD CODEC_DOWNLINK_ON[] = {
172 /* B30, Downlink_Wakeup */
173 {'w', 0x00, 0x01},
174 {'w', 0x01, 0x08},
175 {'w', 0x02, 0x21},
176 {'w', 0x14, 0x25},
177 {'w', 0x47, 0x32},
178 {'w', 0x00, 0x00},
179 {'w', 0x3C, 0x08},
180 {'w', 0x40, 0x00},
181 {'w', 0x05, 0xD1},
182 {'w', 0x0B, 0x83},
183 {'w', 0x0C, 0x85},
184 {'w', 0x1E, 0x94}
185};
186
187static CODEC_SPI_CMD CODEC_POWER_OFF[] = {
188 /* A31, Power_Off */
189 {'w', 0x00, 0x00},
190 {'w', 0x1E, 0x14},
191 {'w', 0x0B, 0x03},
192 {'w', 0x0C, 0x05},
193 {'w', 0x12, 0x03},
194 {'w', 0x13, 0x05},
195 {'w', 0x05, 0x51},
196 {'w', 0x51, 0x00},
197 {'w', 0x3F, 0x16},
198 {'w', 0x00, 0x01},
199 {'w', 0x33, 0x00},
200 {'w', 0x01, 0x00},
201 {'w', 0x02, 0x28}
202};
203
204static CODEC_SPI_CMD FM_In_Headphone[] = {
205 /* A22 */
206 {'w', 0x00, 0x01},
207 {'w', 0x0C, 0x02},
208 {'w', 0x0D, 0x02},
209 {'w', 0x09, 0x33},
210 {'w', 0x34, 0x20},
211 {'w', 0x36, 0x80},
212 {'w', 0x37, 0x20},
213 {'w', 0x39, 0x80},
214 {'w', 0x3B, 0x28},
215 {'w', 0x3C, 0x28},
216 {'w', 0x00, 0x00},
217 {'w', 0x51, 0xC0},
218 {'w', 0x53, 0x00},
219 {'w', 0x54, 0x00},
220};
221
222static CODEC_SPI_CMD FM_Out_Headphone[] = {
223 /* B22 */
224 {'w', 0x00, 0x01},
225 {'w', 0x09, 0x33},
226 {'w', 0x10, 0x3E},
227 {'w', 0x11, 0x3E},
228 {'w', 0x00, 0x00},
229 {'w', 0x41, 0x00},
230 {'w', 0x42, 0x00},
231 {'w', 0x3F, 0xD6},
232};
233
234static CODEC_SPI_CMD FM_In_SPK[] = {
235 /* A21 */
236 {'w', 0x00, 0x01},
237 {'w', 0x0C, 0x02},
238 {'w', 0x0D, 0x02},
239 {'w', 0x09, 0x33},
240 {'w', 0x34, 0x20},
241 {'w', 0x36, 0x80},
242 {'w', 0x37, 0x20},
243 {'w', 0x39, 0x80},
244 {'w', 0x3B, 0x28},
245 {'w', 0x3C, 0x28},
246 {'w', 0x00, 0x00},
247 {'w', 0x51, 0xC0},
248 {'w', 0x53, 0x00},
249 {'w', 0x54, 0x00},
250};
251
252static CODEC_SPI_CMD FM_Out_SPK[] = {
253 /* B21 */
254 {'w', 0x00, 0x01},
255 {'w', 0x09, 0x33},
256 {'w', 0x10, 0x00},
257 {'w', 0x11, 0x00},
258 {'w', 0x00, 0x00},
259 {'w', 0x41, 0x00},
260 {'w', 0x42, 0x00},
261 {'w', 0x3F, 0x96},
262 {'w', 0x40, 0x80},
263};
264
265static CODEC_SPI_CMD MECHA_Uplink_IMIC[] = {
266 {'w', 0x00, 0x01},
267 {'w', 0x34, 0x20},
268 {'w', 0x36, 0x20},
269 {'w', 0x37, 0x00},
270 {'w', 0x39, 0x00},
271 {'w', 0x3B, 0x28},
272
273 {'w', 0x3C, 0xA8},
274 {'w', 0x00, 0x00},
275 {'w', 0x51, 0x80},
276 {'w', 0x52, 0x08},
277 {'w', 0x53, 0x00},
278 {'w', 0x54, 0x00},
279 {'w', 0x00, 0x01},
280 {'w', 0x0E, 0x02},
281 {'w', 0x0F, 0x02},
282 {'w', 0x09, 0x3F},
283 {'w', 0x12, 0x3E},
284 {'w', 0x13, 0x3E},
285 {'w', 0x00, 0x00},
286 {'w', 0x40, 0x0C},
287 {'w', 0x41, 0x00},
288 {'w', 0x42, 0x00},
289 {'w', 0x3F, 0xD6},
290};
291
292static CODEC_SPI_CMD CODEC_SET_VOLUME_L[] = {
293 {'w', 0x00, 0x00},
294 {'w', 0x41, 0x00}
295};
296
297static CODEC_SPI_CMD CODEC_SET_VOLUME_R[] = {
298 {'w', 0x00, 0x00},
299 {'w', 0x42, 0x00}
300};
301
302static CODEC_SPI_CMD CODEC_MICBIAS_ON[] = {
303 {'w', 0x00, 0x01},
304 {'w', 0x01, 0x08},
305 {'w', 0x02, 0x21},
306 {'w', 0x33, 0x68}
307};
308
309static CODEC_SPI_CMD CODEC_MICBIAS_OFF[] = {
310 {'w', 0x00, 0x01},
311 {'w', 0x33, 0x28}
312};
313
314#endif /* __SPI_AIC3254_REG_H__*/