• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1root {
2    platform {
3        template codec_controller {
4            match_attr = "";
5            serviceName = "";
6            codecDaiName = "";
7        }
8        controller_0x120c1030 :: codec_controller {
9            match_attr = "hdf_codec_driver_0";
10            serviceName = "codec_service_0";
11            codecDaiName = "codec_dai";
12
13            hwInfo = [
14                /*
15                    Playback/Captrue, formats, rates, rate_min, rate_max, channels_min, channels_max,
16                    buffer_bytes_max, period_bytes_min, period_bytes_max, periods_min, periods_max
17                */
18                1, 0xF, 0xFF, 8000, 96000, 1, 2, 1, 2, 3, 4, 5,
19                2, 0xF, 0xFF, 8000, 96000, 1, 2, 1, 2, 3, 4, 5,
20            ];
21
22            regConfig {
23                /*  reg: register address
24                    rreg: register address
25                    shift: shift bits
26                    rshift: rshift bits
27                    min: min value
28                    max: max value
29                    mask: mask of value
30                    invert: enum InvertVal 0-uninvert 1-invert
31                    value: value
32                */
33
34                /* reg, value */
35                resetSeqConfig = [
36                    0x00, 0x80,
37                    0x00, 0x00,
38                ];
39
40                /* reg, value */
41                initSeqConfig = [
42                    0x00, 0x36,
43                    0x01, 0x60,
44                    0x02, 0x00,
45                    0x03, 0xf9,
46                    0x04, 0xc0,
47                    0x05, 0x00,
48                    0x06, 0x00,
49                    0x07, 0x7c,
50                    0x08, 0x00,
51                    0x09, 0x00,
52                    0x0a, 0x00,
53                    0x0b, 0x02,
54                    0x0c, 0x4c,
55                    0x0d, 0x02,
56                    0x0e, 0x30,
57                    0x0f, 0x20,
58                    0x10, 0x00,
59                    0x11, 0x00,
60                    0x12, 0xea,
61                    0x13, 0xc0,
62                    0x14, 0x05,
63                    0x15, 0x06,
64                    0x16, 0x53,
65                    0x17, 0x18,
66                    0x18, 0x02,
67                    0x19, 0x02,
68                    0x1a, 0x00,
69                    0x1b, 0x00,
70                    0x1c, 0x08,
71                    0x1d, 0x00,
72                    0x1e, 0x1f,
73                    0x1f, 0xf7,
74                    0x20, 0xfd,
75                    0x21, 0xff,
76                    0x22, 0x1f,
77                    0x23, 0xf7,
78                    0x24, 0xfd,
79                    0x25, 0xff,
80                    0x26, 0x00,
81                    0x27, 0xb8,
82                    0x28, 0x28,
83                    0x29, 0x28,
84                    0x2a, 0xb8,
85                    0x2b, 0x80,
86                    0x2c, 0x00,
87                    0x2d, 0x00,
88                    0x2e, 0x15,
89                    0x2f, 0x15,
90                    0x30, 0x15,
91                    0x31, 0x15,
92                    0x32, 0x00,
93                    0x33, 0xaa,
94                    0x34, 0xaa,
95                    0x35, 0x00,
96                    0x36, 0x08,
97                    0x37, 0x00,
98                    0x38, 0x00,
99                    0x39, 0x00,
100                    0x3a, 0x00,
101                    0x3b, 0x40,
102                    0x3c, 0x0a,
103                    0x3d, 0xe4,
104                    0x3e, 0x00,
105                    0x3f, 0x00,
106                ];
107
108                /* reg, rreg, shift, rshift, min, max, mask, invert, value */
109                ctrlParamsSeqConfig = [
110                    0x2e,    0x2f,    0,    0,    0x0,    0x21,   0xFF,   1,    0x00, // output volume(OUT1)
111                    0x10,    0x11,    0,    0,    0x0,    0xC0,   0xFF,   1,    0x00, // capture volume(mic gain)
112                    0x19,    0x19,    2,    2,    0x0,    0x01,   0x01,   0,    0x00, // output mute
113                    0x0f,    0x0f,    5,    5,    0x0,    0x01,   0x01,   0,    0x00, // capture mute
114                    0x09,    0x09,    4,    4,    0x0,    0xF,   0xF,   0,    0x00, // mic left gain
115                    0x09,    0x09,    0,    0,    0x0,    0xF,   0xF,   0,    0x00, // mic right gain
116                    0x35,    0x35,    0,    0,    0x0,    0x11,   0x11,   0,    0x00, // output channel unused
117                    0x35,    0x35,    4,    4,    0x0,    0x03,   0x03,   0,    0x00  // capture channel unused
118                ];
119
120                /* reg, rreg, shift, rshift, min, max, mask, invert, value */
121                daiStartupSeqConfig = [
122                    0x03,    0x03,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x59, // es8316_adc_pdn_linsel
123                    0x04,    0x04,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x3c, // es8316_dac_pdn
124                    0x0f,    0x0f,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x20, // es8316_adc_mute(capture unmute)
125                    0x19,    0x19,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x02  // es8316_dac_set1(output unmute)
126                ];
127
128                /* reg, rreg, shift, rshift, min, max, mask, invert, value
129                   The top three are frequency, format and channel respectively, and the others are behind
130                */
131                daiParamsSeqConfig = [
132                    // playback input params (hal input)
133                    0x18,    0x18,    0,    0,    0x0,    0x1F,   0x1F,    0,    0x00, // i2s_frequency
134                    0x17,    0x17,    3,    3,    0x0,    0x4,   0xFF,    0,    0x00, // i2s_format
135                    0x1c,    0x1c,    4,    4,    0x0,    0x1,   0xFF,    0,    0x00, // i2s_channel
136                    // capture input params (hal input)
137                    0x0d,    0x0d,    0,    0,    0x0,    0x1F,   0x1F,    0,    0x00, // capture__frequency
138                    0x0C,    0x0C,    2,    2,    0x0,    0x4,   0x0F,    0,    0x00, // capture_format
139                    0x0e,    0x0e,    7,    7,    0x0,    0x1,   0xF,    0,    0x00  // capture_channel
140                ];
141
142                /* reg, value */
143                getStatusSeqConfig = [
144                    0x4F,    0x0
145                ];
146
147                /*
148                    "Master Playback Volume",
149                    "Master Capture Volume",
150                    "Playback Mute",
151                    "Capture Mute",
152                    "Mic Left Gain",
153                    "Mic Right Gain",
154                    "External Codec Enable",
155                    "Internally Codec Enable",
156                    "Render Channel Mode",
157                    "Captrue Channel Mode"
158                */
159                /* array index, iface, enable */
160                controlsConfig = [
161
162                    /*array index, iface, mixer/mux, enable,*/
163                    0,  2,  0,  1,
164                    1,  2,  0,  1,
165                    2,  2,  0,  1,
166                    3,  2,  0,  1,
167                    4,  2,  0,  1,
168                    5,  2,  0,  1,
169                    8,  2,  0,  1,
170                    9,  2,  0,  1,
171                ];
172           }
173        }
174        controller_0x120c1031 :: codec_controller {
175            match_attr = "hdf_codec_driver_1";
176            serviceName = "codec_service_1";
177            codecDaiName = "hdmi_codec_dai";
178
179            hwInfo = [
180                /*
181                    Playback/Captrue, formats, rates, rate_min, rate_max, channels_min, channels_max,
182                    buffer_bytes_max, period_bytes_min, period_bytes_max, periods_min, periods_max
183                */
184                1, 0xF, 0xFF, 8000, 96000, 1, 2, 1, 2, 3, 4, 5
185            ];
186
187            regConfig {
188                /*  reg: register address
189                    rreg: register address
190                    shift: shift bits
191                    rshift: rshift bits
192                    min: min value
193                    max: max value
194                    mask: mask of value
195                    invert: enum InvertVal 0-uninvert 1-invert
196                    value: value
197                */
198
199                /* reg, value */
200                resetSeqConfig = [
201                    0x00, 0x80,
202                    0x00, 0x00,
203                ];
204
205                /* reg, value */
206                initSeqConfig = [
207                    0x00, 0x36,
208                    0x01, 0x60,
209                    0x02, 0x00,
210                    0x03, 0xf9,
211                    0x04, 0xc0,
212                    0x05, 0x00,
213                    0x06, 0x00,
214                    0x07, 0x7c,
215                    0x08, 0x00,
216                    0x09, 0x00,
217                    0x0a, 0x00,
218                    0x0b, 0x02,
219                    0x0c, 0x4c,
220                    0x0d, 0x02,
221                    0x0e, 0x30,
222                    0x0f, 0x20,
223                    0x10, 0x00,
224                    0x11, 0x00,
225                    0x12, 0xea,
226                    0x13, 0xc0,
227                    0x14, 0x05,
228                    0x15, 0x06,
229                    0x16, 0x53,
230                    0x17, 0x18,
231                    0x18, 0x02,
232                    0x19, 0x02,
233                    0x1a, 0x00,
234                    0x1b, 0x00,
235                    0x1c, 0x08,
236                    0x1d, 0x00,
237                    0x1e, 0x1f,
238                    0x1f, 0xf7,
239                    0x20, 0xfd,
240                    0x21, 0xff,
241                    0x22, 0x1f,
242                    0x23, 0xf7,
243                    0x24, 0xfd,
244                    0x25, 0xff,
245                    0x26, 0x00,
246                    0x27, 0xb8,
247                    0x28, 0x28,
248                    0x29, 0x28,
249                    0x2a, 0xb8,
250                    0x2b, 0x80,
251                    0x2c, 0x00,
252                    0x2d, 0x00,
253                    0x2e, 0x15,
254                    0x2f, 0x15,
255                    0x30, 0x15,
256                    0x31, 0x15,
257                    0x32, 0x00,
258                    0x33, 0xaa,
259                    0x34, 0xaa,
260                    0x35, 0x00,
261                    0x36, 0x08,
262                    0x37, 0x00,
263                    0x38, 0x00,
264                    0x39, 0x00,
265                    0x3a, 0x00,
266                    0x3b, 0x40,
267                    0x3c, 0x0a,
268                    0x3d, 0xe4,
269                    0x3e, 0x00,
270                    0x3f, 0x00,
271                ];
272
273                /* reg, rreg, shift, rshift, min, max, mask, invert, value */
274                ctrlParamsSeqConfig = [
275                    0x2e,    0x2f,    0,    0,    0x0,    0x21,   0xFF,   1,    0x00, // output volume(OUT1)
276                    0x10,    0x11,    0,    0,    0x0,    0xC0,   0xFF,   1,    0x00, // capture volume(mic gain)
277                    0x19,    0x19,    2,    2,    0x0,    0x01,   0x01,   0,    0x00, // output mute
278                    0x0f,    0x0f,    5,    5,    0x0,    0x01,   0x01,   0,    0x00, // capture mute
279                    0x09,    0x09,    4,    4,    0x0,    0xF,   0xF,   0,    0x00, // mic left gain
280                    0x09,    0x09,    0,    0,    0x0,    0xF,   0xF,   0,    0x00, // mic right gain
281                    0x35,    0x35,    0,    0,    0x0,    0x11,   0x11,   0,    0x00, // output channel unused
282                    0x35,    0x35,    4,    4,    0x0,    0x03,   0x03,   0,    0x00  // capture channel unused
283                ];
284
285                /* reg, rreg, shift, rshift, min, max, mask, invert, value */
286                daiStartupSeqConfig = [
287                    0x03,    0x03,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x59, // es8316_adc_pdn_linsel
288                    0x04,    0x04,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x3c, // es8316_dac_pdn
289                    0x0f,    0x0f,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x20, // es8316_adc_mute(capture unmute)
290                    0x19,    0x19,    0,    0,    0x0,    0xFF,   0xFF,    0,    0x02  // es8316_dac_set1(output unmute)
291                ];
292
293                /* reg, rreg, shift, rshift, min, max, mask, invert, value
294                   The top three are frequency, format and channel respectively, and the others are behind
295                */
296                daiParamsSeqConfig = [
297                    // playback input params (hal input)
298                    0x18,    0x18,    0,    0,    0x0,    0x1F,   0x1F,    0,    0x00, // i2s_frequency
299                    0x17,    0x17,    3,    3,    0x0,    0x4,   0xFF,    0,    0x00, // i2s_format
300                    0x1c,    0x1c,    4,    4,    0x0,    0x1,   0xFF,    0,    0x00, // i2s_channel
301                    // capture input params (hal input)
302                    0x0d,    0x0d,    0,    0,    0x0,    0x1F,   0x1F,    0,    0x00, // capture__frequency
303                    0x0C,    0x0C,    2,    2,    0x0,    0x4,   0x0F,    0,    0x00, // capture_format
304                    0x0e,    0x0e,    7,    7,    0x0,    0x1,   0xF,    0,    0x00  // capture_channel
305                ];
306
307                /* reg, value */
308                getStatusSeqConfig = [
309                    0x4F,    0x0
310                ];
311
312                /*
313                    "Master Playback Volume",
314                    "Master Capture Volume",
315                    "Playback Mute",
316                    "Capture Mute",
317                    "Mic Left Gain",
318                    "Mic Right Gain",
319                    "External Codec Enable",
320                    "Internally Codec Enable",
321                    "Render Channel Mode",
322                    "Captrue Channel Mode"
323                */
324                /* array index, iface, enable */
325                controlsConfig = [
326
327                    /*array index, iface, mixer/mux, enable,*/
328                    0,  2,  0,  1,
329                    1,  2,  0,  1,
330                    2,  2,  0,  1,
331                    3,  2,  0,  1,
332                    4,  2,  0,  1,
333                    5,  2,  0,  1,
334                    8,  2,  0,  1,
335                    9,  2,  0,  1,
336                ];
337           }
338        }
339    }
340}
341