xref: /OK3568_Linux_fs/kernel/sound/soc/codecs/cx20810_config.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Driver for CX2081X voice capture IC.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Copyright: Conexant Systems.
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * This program is free software; you can redistribute it and/or modify
8*4882a593Smuzhiyun  * it under the terms of the GNU General Public License version 2 as
9*4882a593Smuzhiyun  * published by the Free Software Foundation.
10*4882a593Smuzhiyun  *
11*4882a593Smuzhiyun  */
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #ifndef CX20810_CONFIG_H_
14*4882a593Smuzhiyun #define CX20810_CONFIG_H_
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun enum {
17*4882a593Smuzhiyun 	CX20810_NORMAL_MODE = 0,
18*4882a593Smuzhiyun 	CX20810_NORMAL_MODE2,
19*4882a593Smuzhiyun 	CX20810_NORMAL_MODE_SIMPLE,
20*4882a593Smuzhiyun 	CX20810_NIRMAL_MODE_CODEC3,
21*4882a593Smuzhiyun 	CX20810_NIRMAL_MODE_CODEC3_SIMPLE,
22*4882a593Smuzhiyun 	CX20810_96K_16BIT_MODE,
23*4882a593Smuzhiyun 	CX20810_48K_16BIT_MODE,
24*4882a593Smuzhiyun };
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun static char codec_config_param_normal_mode[] = {
27*4882a593Smuzhiyun /*
28*4882a593Smuzhiyun  * I2S Master mode, LeftJustified 1bit delay
29*4882a593Smuzhiyun  * 48k_24bit MSB first, Frame Length 64bit
30*4882a593Smuzhiyun  * 12.288Mhz MClk, bclk,48K* 64 , 3.072Mhz
31*4882a593Smuzhiyun  * set up PLL, 12.288 Mhz mclk feed to PLL
32*4882a593Smuzhiyun  */
33*4882a593Smuzhiyun #if 1
34*4882a593Smuzhiyun 	0x80, 0x03, /* MCLK is an input */
35*4882a593Smuzhiyun 	0x08, 0x20, /* MCLK !gated */
36*4882a593Smuzhiyun 	0x60, 0x04, /* Bypass PLL */
37*4882a593Smuzhiyun 	0x09, 0x03, /* Use MLCK directly */
38*4882a593Smuzhiyun 	/* end pll setting */
39*4882a593Smuzhiyun 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
40*4882a593Smuzhiyun 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
41*4882a593Smuzhiyun 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
42*4882a593Smuzhiyun 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
43*4882a593Smuzhiyun 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
44*4882a593Smuzhiyun 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
45*4882a593Smuzhiyun 	0x78, 0x6D, /* Enable Analog LDO */
46*4882a593Smuzhiyun 	0x78, 0x6D, /* Enable Analog LDO */
47*4882a593Smuzhiyun 	0x78, 0x6D, /* Enable Analog LDO */
48*4882a593Smuzhiyun 	0x78, 0x6D, /* Enable Analog LDO */
49*4882a593Smuzhiyun 	0x78, 0x6D, /* Enable Analog LDO */
50*4882a593Smuzhiyun 	0x78, 0x6D, /* Enable Analog LDO */
51*4882a593Smuzhiyun 	0x7A, 0x01, /* Enable VREFP */
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun 	/* Setup I2S */
54*4882a593Smuzhiyun 	0x16, 0x00, /* Use DC Filters for ADCs */
55*4882a593Smuzhiyun 	0x0c, 0x3B, /* Enable I2S-TX and set Master Mode, enable ADC3/4 FIFO */
56*4882a593Smuzhiyun 	0x83, 0x00, /* Configure LRCK and BCLK as outputs */
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun 	0x30, 0x14, /* 7 wire mode,24-bit sample size,// Normal mode */
59*4882a593Smuzhiyun 	0x31, 0x07, /* Set 64 cycle per frame TX */
60*4882a593Smuzhiyun 	0x33, 0x1F, /*  TX WS ,32 cycle */
61*4882a593Smuzhiyun 	0x35, 0xA8, /* Lj 1bit delay,  enable TX1,2 */
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun 	0x0A, 0x03, /* Set TX divisor is Source Clock / 4 (Bclk,3.072Mhz) */
64*4882a593Smuzhiyun 	0x0A, 0x83, /* Enable divisor */
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun 	/* Setup ADCs and clocks */
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun 	/*
69*4882a593Smuzhiyun 	 * if using 20/16/12/8/4 dB gain, set register
70*4882a593Smuzhiyun 	 * 0x28/0x20/0x18/0x10/0x08
71*4882a593Smuzhiyun 	 */
72*4882a593Smuzhiyun 	0xBC, 0x28, /* ADC1 8dB Gain */
73*4882a593Smuzhiyun 	0xBD, 0x28, /* ADC2 8dB Gain */
74*4882a593Smuzhiyun 	0xBE, 0x28, /* ADC3 8dB Gain */
75*4882a593Smuzhiyun 	0xBF, 0x28, /* ADC4 8dB Gain */
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun 	0x10, 0x00, /* Disable all ADC clocks */
78*4882a593Smuzhiyun 	0x11, 0x00, /* Disable all ADC clocks and Mixer */
79*4882a593Smuzhiyun 	0x10, 0x1F, /* Enable all ADC clocks and ADC digital */
80*4882a593Smuzhiyun 	0x11, 0x4F, /* Enable all ADCs and set 48kHz sample rate */
81*4882a593Smuzhiyun 	0x10, 0x5F, /* Enable all ADC clocks, ADC digital and ADC Mic Clock Gate */
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun 	/*
84*4882a593Smuzhiyun 	 *0xA0 , 0x0F ,// ADC1, Mute PGA, enable AAF/ADC/PGA
85*4882a593Smuzhiyun 	 *0xA7 , 0x0F ,// ADC2, Mute PGA, enable AAF/ADC/PGA
86*4882a593Smuzhiyun 	 *0xAE , 0x0F ,// ADC3, Mute PGA, enable AAF/ADC/PGA
87*4882a593Smuzhiyun 	 *0xB5 , 0x0F ,// ADC4, Mute PGA, enable AAF/ADC/PGA
88*4882a593Smuzhiyun 	 */
89*4882a593Smuzhiyun 
90*4882a593Smuzhiyun 	0xA0, 0x07, /* ADC1 !Mute */
91*4882a593Smuzhiyun 	0xA7, 0x07, /* ADC2 !Mute */
92*4882a593Smuzhiyun 	0xAE, 0x07, /* ADC3 !Mute */
93*4882a593Smuzhiyun 	0xB5, 0x07, /* ADC4 !Mute */
94*4882a593Smuzhiyun #else
95*4882a593Smuzhiyun 	/* I2S slave mode */
96*4882a593Smuzhiyun 	0x0F, 0x03, /* RST */
97*4882a593Smuzhiyun 	0x0F, 0x03, /* repeat write is let chip has more time to RST */
98*4882a593Smuzhiyun 	0x0F, 0x03,
99*4882a593Smuzhiyun 	0x0F, 0x03,
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun 	0x0F, 0x00, /* release reset */
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun 	0x78, 0x39, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
104*4882a593Smuzhiyun 	0x78, 0x39, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
105*4882a593Smuzhiyun 	0x78, 0x39, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
106*4882a593Smuzhiyun 	0x78, 0x39, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
107*4882a593Smuzhiyun 	0x78, 0x39, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun 	0x78, 0x79, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
110*4882a593Smuzhiyun 	0x78, 0x79, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
111*4882a593Smuzhiyun 	0x78, 0x79, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
112*4882a593Smuzhiyun 	0x78, 0x79, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
113*4882a593Smuzhiyun 	0x78, 0x79, /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun 	0x7A, 0x01,
116*4882a593Smuzhiyun 	0x01, 0x01,
117*4882a593Smuzhiyun 
118*4882a593Smuzhiyun 	0xA0, 0x07, /* ADC bias EN */
119*4882a593Smuzhiyun 	0xA7, 0x07,
120*4882a593Smuzhiyun 	0xAE, 0x07,
121*4882a593Smuzhiyun 	0xB5, 0x07,
122*4882a593Smuzhiyun 
123*4882a593Smuzhiyun 	0xBC, 0x3C, /* 0x28 20dB 0x34 26dB */
124*4882a593Smuzhiyun 	0xBD, 0x3C,
125*4882a593Smuzhiyun 	0xBE, 0x3C,
126*4882a593Smuzhiyun 	0xBF, 0x3C,
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun 	0x30, 0x14, /* 14 24bit 0a 16bit */
129*4882a593Smuzhiyun 	0x31, 0x07, /* frame (n+1)*8 bit 32+32=64 */
130*4882a593Smuzhiyun 	0x32, 0x07, /*  */
131*4882a593Smuzhiyun 	0x33, 0x1F, /* sys width 32 clk */
132*4882a593Smuzhiyun 	0x34, 0x1F,
133*4882a593Smuzhiyun 	0x35, 0xAC, /* TX right justified and revert i2s1+i2s2 */
134*4882a593Smuzhiyun 	0x36, 0x00, /* config for right justified ignored. */
135*4882a593Smuzhiyun 	0x37, 0x00, /* RX left justified. */
136*4882a593Smuzhiyun 	0x38, 0x00, /* config for right justified ignored. */
137*4882a593Smuzhiyun 	0x39, 0x08, /* ADC12 0n DATA1.ADC34 On DATA2 */
138*4882a593Smuzhiyun 	0x3A, 0x00, /* Slot1 */
139*4882a593Smuzhiyun 	0x3B, 0x00, /* slot2 */
140*4882a593Smuzhiyun 	0x3C, 0x00, /* slot3 */
141*4882a593Smuzhiyun 	0x3D, 0x00, /* slot4 */
142*4882a593Smuzhiyun 	0x3E, 0x1F, /* slot4 */
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun 	0x16, 0x00, /* Use DC Filter for ADCs */
145*4882a593Smuzhiyun 
146*4882a593Smuzhiyun 	0x80, 0x03, /* MCLK */
147*4882a593Smuzhiyun 	0x81, 0x01, /* LRCLK BCLK RX Pull down */
148*4882a593Smuzhiyun 	0x82, 0x3F, /* LRCLK BCLK RX */
149*4882a593Smuzhiyun 	0x83, 0x0F, /* LRCLK BCLK */
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun 	0x0F, 0x01,  /* RST,clears DSP,audio data interface values */
152*4882a593Smuzhiyun 	0x0F, 0x01,  /* repeat write is let chip has more time to RST */
153*4882a593Smuzhiyun 	0x0F, 0x01,
154*4882a593Smuzhiyun 	0x0F, 0x01,
155*4882a593Smuzhiyun 
156*4882a593Smuzhiyun 	0x08, 0x00, /* disable MCLK to chip   */
157*4882a593Smuzhiyun 	0x0C, 0x0A, /* Clocks gated  */
158*4882a593Smuzhiyun 	0x09, 0x02,
159*4882a593Smuzhiyun 
160*4882a593Smuzhiyun 	0x0F, 0x00, /* clear RST  */
161*4882a593Smuzhiyun 	/* enable MCLK to chip */
162*4882a593Smuzhiyun 	/*  0x08, 0x30, */
163*4882a593Smuzhiyun 	/*  0x08, 0x38, */
164*4882a593Smuzhiyun 	0x08, 0x20,
165*4882a593Smuzhiyun 	0x09, 0x03,
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun 	0x10, 0x00,  /* Disable all ADC clocks */
168*4882a593Smuzhiyun 	0x11, 0x10,  /* Disable all ADC and Mixer */
169*4882a593Smuzhiyun 	0x10, 0x1F,  /* Enable all ADC clocks and ADC digital */
170*4882a593Smuzhiyun 	0x11, 0x4F,  /* Enable all ADC and set 48k sample rate */
171*4882a593Smuzhiyun 	0x10, 0x5F,  /* Enable all ADC clocks,
172*4882a593Smuzhiyun 					ADC digital and ADC Mic Clock Gate */
173*4882a593Smuzhiyun #endif
174*4882a593Smuzhiyun };
175*4882a593Smuzhiyun 
176*4882a593Smuzhiyun static char codec_config_param_normal_mode2[] = {
177*4882a593Smuzhiyun 	0x0F, 0x03,  /* RST  */
178*4882a593Smuzhiyun 	0x0F, 0x03,  /* repeat write is let chip has more time to RST */
179*4882a593Smuzhiyun 	0x0F, 0x03,
180*4882a593Smuzhiyun 	0x0F, 0x03,
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun 	0x0F, 0x00, /* release reset */
183*4882a593Smuzhiyun 
184*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
185*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
186*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
187*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
188*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
191*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
192*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
193*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
194*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun 	0x7A, 0x01,
197*4882a593Smuzhiyun 	0x01, 0x01,
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun 	0xA0, 0x07, /* ADC bias EN */
200*4882a593Smuzhiyun 	0xA7, 0x07,
201*4882a593Smuzhiyun 	0xAE, 0x07,
202*4882a593Smuzhiyun 	0xB5, 0x07,
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun 	0xBC, 0x24, /* 0x28 20dB 0x34 26dB */
205*4882a593Smuzhiyun 	0xBD, 0x24,
206*4882a593Smuzhiyun 	0xBE, 0x24,
207*4882a593Smuzhiyun 	0xBF, 0x24,
208*4882a593Smuzhiyun 
209*4882a593Smuzhiyun 	0x30, 0x14, /* 14 24bit 0a 16bit */
210*4882a593Smuzhiyun 	0x31, 0x07, /* frame (n+1)*8 bit 32+32=64 */
211*4882a593Smuzhiyun 	0x32, 0x07, /*  */
212*4882a593Smuzhiyun 	0x33, 0x1F, /* sys width 32 clk */
213*4882a593Smuzhiyun 	0x34, 0x1F,
214*4882a593Smuzhiyun 	0x35, 0xAC, /* TX right justified and revert i2s1+i2s2 */
215*4882a593Smuzhiyun 	0x36, 0x00, /* config for right justified ignored. */
216*4882a593Smuzhiyun 	0x37, 0x00, /* RX left justified. */
217*4882a593Smuzhiyun 	0x38, 0x00, /* config for right justified ignored. */
218*4882a593Smuzhiyun 	0x39, 0x08, /* ADC12 0n DATA1.ADC34 On DATA2 */
219*4882a593Smuzhiyun 	0x3A, 0x00, /* Slot1 */
220*4882a593Smuzhiyun 	0x3B, 0x00, /* slot2 */
221*4882a593Smuzhiyun 	0x3C, 0x00, /* slot3 */
222*4882a593Smuzhiyun 	0x3D, 0x00, /* slot4 */
223*4882a593Smuzhiyun 	0x3E, 0x1F, /* slot4 */
224*4882a593Smuzhiyun 
225*4882a593Smuzhiyun 	0x16, 0x00, /* Use DC Filter for ADCs */
226*4882a593Smuzhiyun 
227*4882a593Smuzhiyun 	0x80, 0x03, /* MCLK */
228*4882a593Smuzhiyun 	0x81, 0x01, /* LRCLK BCLK RX Pull down */
229*4882a593Smuzhiyun 	0x82, 0x3F, /* LRCLK BCLK RX */
230*4882a593Smuzhiyun 	0x83, 0x0F, /* LRCLK BCLK */
231*4882a593Smuzhiyun 
232*4882a593Smuzhiyun #if 0
233*4882a593Smuzhiyun 	/*  PLL config */
234*4882a593Smuzhiyun 
235*4882a593Smuzhiyun 	0x08, 0x00, /*  disable MCLK */
236*4882a593Smuzhiyun 
237*4882a593Smuzhiyun 	0x09, 0x40, /*  I2S TX Bit Clock */
238*4882a593Smuzhiyun 
239*4882a593Smuzhiyun 	0x60, 0xF8,  /* reset and Disable PLL1 */
240*4882a593Smuzhiyun 
241*4882a593Smuzhiyun 	0x61, 0xDF, /*  */
242*4882a593Smuzhiyun 	0x62, 0x01,
243*4882a593Smuzhiyun 	0x63, 0x01,
244*4882a593Smuzhiyun 	/*  {0x64, 0x90}, */
245*4882a593Smuzhiyun 	/*  {0x65, 0x24}, */
246*4882a593Smuzhiyun 	0x66, 0x80,
247*4882a593Smuzhiyun 	0x67, 0x02,
248*4882a593Smuzhiyun 	/*  {0x68, 0x0}, */
249*4882a593Smuzhiyun 	/*  {0x69, 0x0}, */
250*4882a593Smuzhiyun 
251*4882a593Smuzhiyun 	/* enable PLL1 */
252*4882a593Smuzhiyun 	0x60, 0xFB, /* delay for PLL locked */
253*4882a593Smuzhiyun 	0x60, 0xFB,
254*4882a593Smuzhiyun 	0x60, 0xFB,
255*4882a593Smuzhiyun 	0x60, 0xFB,
256*4882a593Smuzhiyun 	0x60, 0xFB,
257*4882a593Smuzhiyun 	0x60, 0xFB,
258*4882a593Smuzhiyun 
259*4882a593Smuzhiyun 	/* end PLL config */
260*4882a593Smuzhiyun #endif
261*4882a593Smuzhiyun 
262*4882a593Smuzhiyun 	0x0F, 0x01,  /* RST,clears DSP,audio data interface values */
263*4882a593Smuzhiyun 	0x0F, 0x01,  /* repeat write is let chip has more time to RST */
264*4882a593Smuzhiyun 	0x0F, 0x01,
265*4882a593Smuzhiyun 	0x0F, 0x01,
266*4882a593Smuzhiyun 
267*4882a593Smuzhiyun 	0x08, 0x00, /* disable MCLK to chip */
268*4882a593Smuzhiyun 	0x0C, 0x0A, /* Clocks gated  */
269*4882a593Smuzhiyun 	0x09, 0x02,
270*4882a593Smuzhiyun 
271*4882a593Smuzhiyun 	0x0F, 0x00, /* clear RST  */
272*4882a593Smuzhiyun 	/*  0x08, 0x30, */
273*4882a593Smuzhiyun 	/* enable MCLK to chip */
274*4882a593Smuzhiyun 	/*  0x08, 0x38, */
275*4882a593Smuzhiyun 	0x08, 0x20,
276*4882a593Smuzhiyun 	0x09, 0x03,
277*4882a593Smuzhiyun 
278*4882a593Smuzhiyun 	0x10, 0x00, /* Disable all ADC clocks */
279*4882a593Smuzhiyun 	0x11, 0x10, /* Disable all ADC and Mixer */
280*4882a593Smuzhiyun 	0x10, 0x1F, /* Enable all ADC clocks and ADC digital */
281*4882a593Smuzhiyun 	0x11, 0x4F, /* Enable all ADC and set 48k sample rate */
282*4882a593Smuzhiyun 	0x10, 0x5F, /* Enable all ADC clocks,
283*4882a593Smuzhiyun 				   ADC digital and ADC Mic Clock Gate */
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun };
286*4882a593Smuzhiyun 
287*4882a593Smuzhiyun static char codec_config_param_normal_mode_simple[] = {
288*4882a593Smuzhiyun 	/*  mic pga 增益 */
289*4882a593Smuzhiyun 	/*  4通道录音工具 */
290*4882a593Smuzhiyun 	0xBC, 0x28, /*  0x28 20dB 0x34 26dB */
291*4882a593Smuzhiyun 	0xBD, 0x28,
292*4882a593Smuzhiyun 	0xBE, 0x28,
293*4882a593Smuzhiyun 	0xBF, 0x28,
294*4882a593Smuzhiyun 
295*4882a593Smuzhiyun 	0x60, 0x04,
296*4882a593Smuzhiyun 	0x66, 0x00,
297*4882a593Smuzhiyun 	0x67, 0x02,
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun 	/* PAD配置 */
300*4882a593Smuzhiyun 	0x80, 0x03, /*  MCLK 为输入 */
301*4882a593Smuzhiyun 	0x83, 0x0F, /*  LRCLK BCLK 为输入脚,TX1 TX2为输出脚 */
302*4882a593Smuzhiyun 
303*4882a593Smuzhiyun 	/*  MCLK 作为输入 */
304*4882a593Smuzhiyun 	/* 0x08, 0x30, */
305*4882a593Smuzhiyun 	/* MCLK divisor 生效 */
306*4882a593Smuzhiyun 	/* 0x08, 0x38, */
307*4882a593Smuzhiyun 	0x08, 0x20, /*  MCLK 作为输入 12.288MHz */
308*4882a593Smuzhiyun 	0x09, 0x03, /*  选MCLK作为PLL输入源 */
309*4882a593Smuzhiyun 	0x0a, 0x0b,
310*4882a593Smuzhiyun 	0x0a, 0x8b,
311*4882a593Smuzhiyun 	0x0C, 0x0A, /*  RT clock disable, TX clock enable,
312*4882a593Smuzhiyun 					enable clock to ADC3/4 */
313*4882a593Smuzhiyun 
314*4882a593Smuzhiyun 	/*  I2S */
315*4882a593Smuzhiyun 	/* Tx sample size:16bit, Normal mode */
316*4882a593Smuzhiyun 	/* 0x30, 0x0A, */
317*4882a593Smuzhiyun 	0x30, 0x14, /*  Tx sample size:24bit, Normal mode */
318*4882a593Smuzhiyun 	0x35, 0xA2, /*  left justified, enable I2S-1 and I2S-2 */
319*4882a593Smuzhiyun 
320*4882a593Smuzhiyun 	0x10, 0x00,
321*4882a593Smuzhiyun 	0x11, 0x00,
322*4882a593Smuzhiyun 	0x10, 0x1F,
323*4882a593Smuzhiyun 	0x11, 0x1F, /*  ADC 96k, enables all ADCs */
324*4882a593Smuzhiyun 	0x16, 0x00,
325*4882a593Smuzhiyun 	0x10, 0x5F,
326*4882a593Smuzhiyun 
327*4882a593Smuzhiyun };
328*4882a593Smuzhiyun 
329*4882a593Smuzhiyun static char codec3_config_param_normal_mode[] = {
330*4882a593Smuzhiyun 	/* POWER */
331*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
332*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
333*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
334*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
335*4882a593Smuzhiyun 	0x78, 0x39,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
336*4882a593Smuzhiyun 
337*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
338*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
339*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
340*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
341*4882a593Smuzhiyun 	0x78, 0x79,  /* PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR */
342*4882a593Smuzhiyun 
343*4882a593Smuzhiyun 	0x7A, 0x01,
344*4882a593Smuzhiyun 	0x01, 0x01,
345*4882a593Smuzhiyun 
346*4882a593Smuzhiyun 	/*  Analog ADC Control */
347*4882a593Smuzhiyun 	/*  MIcIn PGA A0,A7,AE,B5 [5:4] ctrl_rcm,
348*4882a593Smuzhiyun 	 *  [1] enable [3] mute [7] bypass */
349*4882a593Smuzhiyun 	/*  模拟部分电源 */
350*4882a593Smuzhiyun 	0xA0, 0x07, /* ADC bias EN */
351*4882a593Smuzhiyun 	0xA7, 0x07,
352*4882a593Smuzhiyun 	0xAE, 0x07,
353*4882a593Smuzhiyun 	0xB5, 0x07,
354*4882a593Smuzhiyun 
355*4882a593Smuzhiyun 	/*  mic pga 增益 */
356*4882a593Smuzhiyun 	/*  4通道录音工具 */
357*4882a593Smuzhiyun 	0xBC, 0x06, /*  0x28 20dB 0x34 26dB */
358*4882a593Smuzhiyun 	0xBD, 0x06,
359*4882a593Smuzhiyun 	0xBE, 0x0C,
360*4882a593Smuzhiyun 	0xBF, 0x14,
361*4882a593Smuzhiyun 
362*4882a593Smuzhiyun 	0x60, 0x04,
363*4882a593Smuzhiyun 	0x66, 0x00,
364*4882a593Smuzhiyun 	0x67, 0x02,
365*4882a593Smuzhiyun 
366*4882a593Smuzhiyun 	/* PAD配置 */
367*4882a593Smuzhiyun 	0x80, 0x03, /*  MCLK 为输入 */
368*4882a593Smuzhiyun 	0x83, 0x0F, /*  LRCLK BCLK 为输入脚,TX1 TX2为输出脚 */
369*4882a593Smuzhiyun 
370*4882a593Smuzhiyun 	/* MCLK 作为输入 */
371*4882a593Smuzhiyun 	/* 0x08, 0x30, */
372*4882a593Smuzhiyun 	/* MCLK divisor 生效 */
373*4882a593Smuzhiyun 	/* 0x08, 0x38, */
374*4882a593Smuzhiyun 	0x08, 0x20, /*  MCLK 作为输入 12.288MHz */
375*4882a593Smuzhiyun 	0x09, 0x03, /*  选MCLK作为PLL输入源 */
376*4882a593Smuzhiyun 	0x0a, 0x0b,
377*4882a593Smuzhiyun 	0x0a, 0x8b,
378*4882a593Smuzhiyun 	0x0C, 0x0A, /* RT clock disable, TX clock enable,
379*4882a593Smuzhiyun 		       enable clock to ADC3/4 */
380*4882a593Smuzhiyun 
381*4882a593Smuzhiyun 	/*  I2S */
382*4882a593Smuzhiyun 	/*  Tx sample size:16bit, Normal mode */
383*4882a593Smuzhiyun 	/* 0x30, 0x0A, */
384*4882a593Smuzhiyun 	0x30, 0x14, /*  Tx sample size:24bit, Normal mode */
385*4882a593Smuzhiyun 	0x35, 0xA2, /*  left justified, enable I2S-1 and I2S-2 */
386*4882a593Smuzhiyun 
387*4882a593Smuzhiyun 	0x10, 0x00,
388*4882a593Smuzhiyun 	0x11, 0x00,
389*4882a593Smuzhiyun 	0x10, 0x1F,
390*4882a593Smuzhiyun 	0x11, 0x1F, /*  ADC 96k, enables all ADCs */
391*4882a593Smuzhiyun 	0x16, 0x00,
392*4882a593Smuzhiyun 	0x10, 0x5F,
393*4882a593Smuzhiyun 
394*4882a593Smuzhiyun };
395*4882a593Smuzhiyun 
396*4882a593Smuzhiyun static char codec3_config_param_normal_mode_simple[] = {
397*4882a593Smuzhiyun 	/* mic pga 增益 */
398*4882a593Smuzhiyun 	/* 4通道录音工具 */
399*4882a593Smuzhiyun 	0xBC, 0x28,/* 0x28 20dB 0x34 26dB */
400*4882a593Smuzhiyun 	0xBD, 0x28,
401*4882a593Smuzhiyun 	0xBE, 0x28,
402*4882a593Smuzhiyun 	0xBF, 0x28,
403*4882a593Smuzhiyun 
404*4882a593Smuzhiyun 	0x60, 0x04,
405*4882a593Smuzhiyun 	0x66, 0x00,
406*4882a593Smuzhiyun 	0x67, 0x02,
407*4882a593Smuzhiyun 
408*4882a593Smuzhiyun 	/* PAD配置 */
409*4882a593Smuzhiyun 	0x80, 0x03,/*  MCLK 为输入 */
410*4882a593Smuzhiyun 	0x83, 0x0F,/*  LRCLK BCLK 为输入脚,TX1 TX2为输出脚 */
411*4882a593Smuzhiyun 
412*4882a593Smuzhiyun 	/* MCLK 作为输入 */
413*4882a593Smuzhiyun 	/* 0x08, 0x30, */
414*4882a593Smuzhiyun 	/* MCLK divisor 生效 */
415*4882a593Smuzhiyun 	/* 0x08, 0x38, */
416*4882a593Smuzhiyun 	0x08, 0x20,/*  MCLK 作为输入 12.288MHz */
417*4882a593Smuzhiyun 	0x09, 0x03,/*  选MCLK作为PLL输入源 */
418*4882a593Smuzhiyun 	0x0a, 0x0b,
419*4882a593Smuzhiyun 	0x0a, 0x8b,
420*4882a593Smuzhiyun 	0x0C, 0x0A,/* RT clock disable, TX clock enable,
421*4882a593Smuzhiyun 		      enable clock to ADC3/4 */
422*4882a593Smuzhiyun 
423*4882a593Smuzhiyun 	/*  I2S */
424*4882a593Smuzhiyun 	/* Tx sample size:16bit, Normal mode */
425*4882a593Smuzhiyun 	/* 0x30, 0x0A, */
426*4882a593Smuzhiyun 	0x30, 0x14,/* Tx sample size:24bit, Normal mode */
427*4882a593Smuzhiyun 	0x35, 0xA2,/* left justified, enable I2S-1 and I2S-2 */
428*4882a593Smuzhiyun 
429*4882a593Smuzhiyun 	0x10, 0x00,
430*4882a593Smuzhiyun 	0x11, 0x00,
431*4882a593Smuzhiyun 	0x10, 0x1F,
432*4882a593Smuzhiyun 	0x11, 0x1F,/* ADC 96k, enables all ADCs */
433*4882a593Smuzhiyun 	0x16, 0x00,
434*4882a593Smuzhiyun 	0x10, 0x5F,
435*4882a593Smuzhiyun };
436*4882a593Smuzhiyun 
437*4882a593Smuzhiyun static char codec_config_param_48k_16bit_mode[] = {
438*4882a593Smuzhiyun 	/*  mic pga 增益 */
439*4882a593Smuzhiyun 	/*  4通道录音工具 */
440*4882a593Smuzhiyun 	0xBC, 29 << 1,/*  0x28 20dB 0x34 26dB */
441*4882a593Smuzhiyun 	0xBD, 29 << 1,
442*4882a593Smuzhiyun 	0xBE, 29 << 1,
443*4882a593Smuzhiyun 	0xBF, 29 << 1,
444*4882a593Smuzhiyun 
445*4882a593Smuzhiyun 	0x60, 0x04,
446*4882a593Smuzhiyun 	0x66, 0x00,
447*4882a593Smuzhiyun 	0x67, 0x02,
448*4882a593Smuzhiyun 
449*4882a593Smuzhiyun 	/* PAD配置 */
450*4882a593Smuzhiyun 	0x80, 0x03,/*  MCLK 为输入 */
451*4882a593Smuzhiyun 	0x83, 0x0F,/*  LRCLK BCLK 为输入脚,TX1 TX2为输出脚 */
452*4882a593Smuzhiyun 
453*4882a593Smuzhiyun 	/* MCLK 作为输入 */
454*4882a593Smuzhiyun 	/* 0x08, 0x30, */
455*4882a593Smuzhiyun 	/* MCLK divisor 生效 */
456*4882a593Smuzhiyun 	/* 0x08, 0x38, */
457*4882a593Smuzhiyun 	0x08, 0x20,/*  MCLK 作为输入 12.288MHz */
458*4882a593Smuzhiyun 	0x09, 0x03,/* 选MCLK作为PLL输入源 */
459*4882a593Smuzhiyun 	0x0a, 0x03,
460*4882a593Smuzhiyun 	0x0a, 0x83,
461*4882a593Smuzhiyun 	0x0C, 0x0A,/* RT clock disable, TX clock enable,
462*4882a593Smuzhiyun 		      enable clock to ADC3/4 */
463*4882a593Smuzhiyun 
464*4882a593Smuzhiyun 	/*  I2S */
465*4882a593Smuzhiyun 	0x30, 0x0A,/*  Tx sample size:16bit, Normal mode */
466*4882a593Smuzhiyun 	/* Tx sample size:24bit, Normal mode */
467*4882a593Smuzhiyun 	/* 0x30, 0x14, */
468*4882a593Smuzhiyun 	0x35, 0xA2,/*  left justified, enable I2S-1 and I2S-2 */
469*4882a593Smuzhiyun 
470*4882a593Smuzhiyun 	0x10, 0x00,
471*4882a593Smuzhiyun 	0x11, 0x00,
472*4882a593Smuzhiyun 	0x10, 0x1F,
473*4882a593Smuzhiyun 	0x11, 0x4F,/*  ADC 96k, enables all ADCs */
474*4882a593Smuzhiyun 	0x16, 0x00,
475*4882a593Smuzhiyun 	0x10, 0x5F,
476*4882a593Smuzhiyun };
477*4882a593Smuzhiyun 
478*4882a593Smuzhiyun static char codec_config_param_96k_16bit_mode[] = {
479*4882a593Smuzhiyun 	/*  mic pga 增益 */
480*4882a593Smuzhiyun 	/*  4通道录音工具 */
481*4882a593Smuzhiyun 	0xBC, 29 << 1,/*  0x28 20dB 0x34 26dB */
482*4882a593Smuzhiyun 	0xBD, 29 << 1,
483*4882a593Smuzhiyun 	0xBE, 29 << 1,
484*4882a593Smuzhiyun 	0xBF, 29 << 1,
485*4882a593Smuzhiyun 
486*4882a593Smuzhiyun 	0x60, 0x04,
487*4882a593Smuzhiyun 	0x66, 0x00,
488*4882a593Smuzhiyun 	0x67, 0x02,
489*4882a593Smuzhiyun 
490*4882a593Smuzhiyun 	/* PAD配置 */
491*4882a593Smuzhiyun 	0x80, 0x03,/*  MCLK 为输入 */
492*4882a593Smuzhiyun 	0x83, 0x0F,/*  LRCLK BCLK 为输入脚,TX1 TX2为输出脚 */
493*4882a593Smuzhiyun 
494*4882a593Smuzhiyun 	/* MCLK 作为输入 */
495*4882a593Smuzhiyun 	/* 0x08, 0x30, */
496*4882a593Smuzhiyun 	/* MCLK divisor 生效 */
497*4882a593Smuzhiyun 	/* 0x08, 0x38, */
498*4882a593Smuzhiyun 	0x08, 0x20,/*  MCLK 作为输入 12.288MHz */
499*4882a593Smuzhiyun 	0x09, 0x03,/*  选MCLK作为PLL输入源 */
500*4882a593Smuzhiyun 	0x0a, 0x01,
501*4882a593Smuzhiyun 	0x0a, 0x81,
502*4882a593Smuzhiyun 	0x0C, 0x0A,/* RT clock disable, TX clock enable,
503*4882a593Smuzhiyun 		      enable clock to ADC3/4 */
504*4882a593Smuzhiyun 
505*4882a593Smuzhiyun 	/*  I2S */
506*4882a593Smuzhiyun 	0x30, 0x0A,/* Tx sample size:16bit, Normal mode */
507*4882a593Smuzhiyun 	/* Tx sample size:24bit, Normal mode */
508*4882a593Smuzhiyun 	/* 0x30, 0x14, */
509*4882a593Smuzhiyun 	0x35, 0xA2,/* left justified, enable I2S-1 and I2S-2 */
510*4882a593Smuzhiyun 
511*4882a593Smuzhiyun 	0x10, 0x00,
512*4882a593Smuzhiyun 	0x11, 0x00,
513*4882a593Smuzhiyun 	0x10, 0x1F,
514*4882a593Smuzhiyun 	0x11, 0x5F,/* ADC 96k, enables all ADCs */
515*4882a593Smuzhiyun 	0x16, 0x00,
516*4882a593Smuzhiyun 	0x10, 0x5F,
517*4882a593Smuzhiyun };
518*4882a593Smuzhiyun #endif /* CX20810_CONFIG_H_ */
519