1 // SPDX-License-Identifier: GPL-2.0
2 /********************************************************************************
3 *
4 * Copyright (C) 2017 NEXTCHIP Inc. All rights reserved.
5 * Module : The decoder's audio module
6 * Description : Audio i/o
7 * Author :
8 * Date :
9 * Version : Version 2.0
10 *
11 ********************************************************************************
12 * History :
13 *
14 *
15 ********************************************************************************/
16 #include <linux/string.h>
17 #include <linux/delay.h>
18
19 #include "nvp6158_common.h"
20 #include "nvp6158_audio.h"
21
22 /*******************************************************************************
23 * extern variable
24 *******************************************************************************/
25 extern int nvp6158_chip_id[4]; /* Chip ID */
26 extern int nvp6158_rev_id[4]; /* Reversion ID */
27 static int g_ai_type = NC_AD_AI;
28 static int g_aud_sample = NC_AD_SAMPLE_RATE_8000;
29 extern unsigned int nvp6158_cnt; /* Chip count */
30 extern unsigned int nvp6158_iic_addr[4]; /* Slave address of Chip */
31
32 /*******************************************************************************
33 * Description : initialize audio
34 * Argurments : recmaster(0[slave],1[master];), pbmaster(), ch_num(audio channel number)
35 * samplerate(sample rate), bits(bits)
36 * Return value : void
37 * Modify :
38 * warning :
39 *
40 * param:
41 * - xxmaster:0[slave],1[master];
42 * - ch_num: audio channel number
43 * - samplerate: 0[8k], 1[16k]
44 * - bits: 0[16bits], 1[8bits]
45 *
46 *******************************************************************************/
nvp6158_audio_init(unsigned char recmaster,unsigned char pbmaster,unsigned char ch_num,unsigned char samplerate,unsigned char bits)47 void nvp6158_audio_init(unsigned char recmaster, unsigned char pbmaster,
48 unsigned char ch_num, unsigned char samplerate, unsigned char bits)
49 {
50 int i;
51 unsigned char val_1x39;
52 for(i=0; i<nvp6158_cnt; i++) {
53 gpio_i2c_write(nvp6158_iic_addr[i], 0xFF, 0x01);
54 gpio_i2c_write(nvp6158_iic_addr[i], 0x94, 0x00);
55 gpio_i2c_write(nvp6158_iic_addr[i], 0x00, 0x02);
56 gpio_i2c_write(nvp6158_iic_addr[i], 0x08, 0x03); //I2s outputs 16ch audio
57 if(ch_num == 16) { // 4chips' audio cascade
58 if(0 == i)
59 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x3A); //first stage
60 else if(1 == i)
61 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x38); //middle stage
62 else if(2 == i)
63 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x38); //middle stage
64 else if(3 == i)
65 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x39); //last stage
66 } else if(ch_num == 8) {
67 if(0 == i) {
68 gpio_i2c_write(nvp6158_iic_addr[i], 0x08, 0x02); //I2s outputs 8ch audio
69 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x3A); //first stage
70 } else if(1 == i) {
71 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x39); //last stage
72 gpio_i2c_write(nvp6158_iic_addr[i], 0x0f, 0x54); //set I2S right sequence
73 gpio_i2c_write(nvp6158_iic_addr[i], 0x10, 0x76);
74 }
75 } else {
76 gpio_i2c_write(nvp6158_iic_addr[i], 0x08, 0x01); //I2s outputs 4ch audio, left & right each 2 channels
77 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x3B); //first stage
78 gpio_i2c_write(nvp6158_iic_addr[i], 0x0f, 0x32); //set I2S right sequence
79 }
80 gpio_i2c_write(nvp6158_iic_addr[i], 0x07, 0x00 | (recmaster << 7) | (samplerate << 3) | (bits <<2 ));
81 if(recmaster == 0) {
82 val_1x39 = gpio_i2c_read(nvp6158_iic_addr[i], 0x39);
83 val_1x39 |= 0x80;
84 gpio_i2c_write(nvp6158_iic_addr[i], 0x39, val_1x39);
85 }
86 gpio_i2c_write(nvp6158_iic_addr[i], 0x13, 0x00 | (pbmaster << 7) | (samplerate << 3) | (bits << 2));
87 gpio_i2c_write(nvp6158_iic_addr[i], 0x01, 0x09);
88 gpio_i2c_write(nvp6158_iic_addr[i], 0x02, 0x09);
89 gpio_i2c_write(nvp6158_iic_addr[i], 0x03, 0x09);
90 gpio_i2c_write(nvp6158_iic_addr[i], 0x04, 0x09);
91 gpio_i2c_write(nvp6158_iic_addr[i], 0x05, 0x09);
92
93 gpio_i2c_write(nvp6158_iic_addr[i], 0x22, 0x08);
94 gpio_i2c_write(nvp6158_iic_addr[i], 0x23, 0x10); //playback
95 gpio_i2c_write(nvp6158_iic_addr[i], 0x31, 0x09);
96 gpio_i2c_write(nvp6158_iic_addr[i], 0x47, 0x07);
97 gpio_i2c_write(nvp6158_iic_addr[i], 0x49, 0x00);
98 gpio_i2c_write(nvp6158_iic_addr[i], 0x44, 0x00);
99
100 gpio_i2c_write(nvp6158_iic_addr[i], 0x32, 0xF0);
101 gpio_i2c_write(nvp6158_iic_addr[i], 0x94, 0x40);
102
103 gpio_i2c_write(nvp6158_iic_addr[i], 0x38, 0x18);
104 msleep(30);
105 gpio_i2c_write(nvp6158_iic_addr[i], 0x38, 0x08);
106 }
107 }
108
nvp6168_audio_init(unsigned char recmaster,unsigned char pbmaster,unsigned char ch_num,unsigned char samplerate,unsigned char bits)109 void nvp6168_audio_init(unsigned char recmaster, unsigned char pbmaster,
110 unsigned char ch_num, unsigned char samplerate, unsigned char bits)
111 {
112 int i;
113 for(i=0; i<nvp6158_cnt; i++) {
114 gpio_i2c_write(nvp6158_iic_addr[i], 0xFF, 0x01);
115 gpio_i2c_write(nvp6158_iic_addr[i], 0x94, 0x00);
116 gpio_i2c_write(nvp6158_iic_addr[i], 0x08, 0x03); //I2s outputs 16ch audio
117 if(ch_num == 16) { // 4chips' audio cascade
118 if(0 == i)
119 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x1A); //first stage
120 else if(1 == i)
121 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x18); //middle stage
122 else if(2 == i)
123 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x18); //middle stage
124 else if(3 == i)
125 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x19); //last stage
126 } else if(ch_num == 8) {
127 if(0 == i) {
128 gpio_i2c_write(nvp6158_iic_addr[i], 0x08, 0x02); //I2s outputs 8ch audio
129 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x1A); //first stage
130 } else if(1 == i) {
131 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x19); //last stage
132 gpio_i2c_write(nvp6158_iic_addr[i], 0x0f, 0x54); //set I2S right sequence
133 gpio_i2c_write(nvp6158_iic_addr[i], 0x10, 0x76);
134 }
135 } else {
136 gpio_i2c_write(nvp6158_iic_addr[i], 0x08, 0x01); //I2s outputs 4ch audio, left & right each 2 channels
137 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x1B); //first stage
138 gpio_i2c_write(nvp6158_iic_addr[i], 0x0f, 0x32); //set I2S right sequence
139 }
140 gpio_i2c_write(nvp6158_iic_addr[i], 0x07, 0x00 | (recmaster << 7) | (samplerate << 3) | (bits << 2));
141 gpio_i2c_write(nvp6158_iic_addr[i], 0x13, 0x00 | (pbmaster << 7) | (samplerate << 3) | (bits << 2));
142 gpio_i2c_write(nvp6158_iic_addr[i], 0x01, 0x09);
143 gpio_i2c_write(nvp6158_iic_addr[i], 0x02, 0x09);
144 gpio_i2c_write(nvp6158_iic_addr[i], 0x03, 0x09);
145 gpio_i2c_write(nvp6158_iic_addr[i], 0x04, 0x09);
146 gpio_i2c_write(nvp6158_iic_addr[i], 0x05, 0x09);
147
148 gpio_i2c_write(nvp6158_iic_addr[i], 0x22, 0x08);
149 gpio_i2c_write(nvp6158_iic_addr[i], 0x23, 0x10); //playback
150 gpio_i2c_write(nvp6158_iic_addr[i], 0x31, 0x0A);
151 gpio_i2c_write(nvp6158_iic_addr[i], 0x47, 0x01);
152 gpio_i2c_write(nvp6158_iic_addr[i], 0x49, 0x88);
153 gpio_i2c_write(nvp6158_iic_addr[i], 0x44, 0x00);
154
155 gpio_i2c_write(nvp6158_iic_addr[i], 0x32, 0x00);
156 gpio_i2c_write(nvp6158_iic_addr[i], 0x00, 0x02);
157 gpio_i2c_write(nvp6158_iic_addr[i], 0x06, 0x1B);
158 gpio_i2c_write(nvp6158_iic_addr[i], 0x46, 0x10);
159 gpio_i2c_write(nvp6158_iic_addr[i], 0x48, 0xD0);
160 gpio_i2c_write(nvp6158_iic_addr[i], 0x94, 0x40);
161
162 gpio_i2c_write(nvp6158_iic_addr[i], 0x38, 0x18);
163 msleep(30);
164 gpio_i2c_write(nvp6158_iic_addr[i], 0x38, 0x08);
165
166 nvp6158_audio_re_initialize(i);
167 }
168 }
169
170
nvp6158_audio_powerdown(unsigned char chip)171 void nvp6158_audio_powerdown(unsigned char chip)
172 {
173 unsigned char val_1x00;
174 gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x01);
175 val_1x00 = gpio_i2c_read(nvp6158_iic_addr[chip], 0x00);
176 gpio_i2c_write(nvp6158_iic_addr[chip], 0x00, (val_1x00 | 0xC0)); //bit7 AFE, bit6 DAC
177 }
178
nvp6158_audio_in_type_set(int type)179 void nvp6158_audio_in_type_set(int type)
180 {
181 if(type < NC_AD_MAX) {
182 printk("[%s] Change audio input type %d > %d\r\n", __func__, g_ai_type, type);
183 g_ai_type = type;
184 } else {
185 printk("[%s] Invalid argument %d\r\n", __func__, type);
186 }
187 }
188
nvp6158_audio_in_type_get(void)189 int nvp6158_audio_in_type_get(void)
190 {
191 return g_ai_type;
192 }
193
nvp6158_audio_sample_rate_set(int sample)194 void nvp6158_audio_sample_rate_set(int sample)
195 {
196 if(sample < NC_AD_SAMPLE_RATE_MAX) {
197 printk("[%s] Change audio sampling rate %d > %d\r\n", __func__, g_aud_sample, sample);
198 g_aud_sample = sample;
199 } else {
200 printk("[%s] Invalid argument %d\r\n", __func__, sample);
201 }
202 }
203
nvp6158_audio_sample_rate_get(void)204 int nvp6158_audio_sample_rate_get(void)
205 {
206 return g_aud_sample;
207 }
208
nvp6158_audio_re_initialize(int devnum)209 void nvp6158_audio_re_initialize(int devnum)
210 {
211 gpio_i2c_write(nvp6158_iic_addr[devnum], 0xFF, 0x01);
212
213 // Set audio sampling rate
214 // if(g_aud_sample == NC_AD_SAMPLE_RATE_8000)
215 // {
216 // gpio_i2c_write(nvp6158_iic_addr[devnum], 0x07, 0x80);
217 // }
218 // else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000)
219 // {
220 // gpio_i2c_write(nvp6158_iic_addr[devnum], 0x07, 0x88);
221 // }
222 // else
223 // {
224 // printk("[%s] Not supported yet [%d] \r\n", __func__, g_aud_sample);
225 // }
226
227 // Set audio input type
228 if(g_ai_type == NC_AD_AOC) {
229 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x00, 0x00);
230 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x31, 0x08);
231 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x46, 0x00);
232 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x58, 0x00);
233 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x62, 0xFF);
234 } else if(g_ai_type == NC_AD_AI) {
235 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x00, 0x02);
236 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x31, 0x0A);
237 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x46, 0x10);
238 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x58, 0x0f); //05.29 org=0x02
239 gpio_i2c_write(nvp6158_iic_addr[devnum], 0x62, 0x00);
240 }
241 }
242
nvp6158_set_aoc_720_25p_ex_b(decoder_dev_ch_info_s * decoder_info)243 static void nvp6158_set_aoc_720_25p_ex_b(decoder_dev_ch_info_s *decoder_info)
244 {
245 int ch = decoder_info->ch;
246
247 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
248
249 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
250 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
251 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
252 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
253 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
254
255 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
256 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
257 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
258
259 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
260 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x11);
261 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
262
263 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
264 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
265 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
266 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
267 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
268 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
269
270 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
271 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0F);
272 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
273 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
274 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x17);
275 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x0E);
276
277 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
278 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
279 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
280 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
281 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
282 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
283 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
284
285 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
286 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
287 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
288
289 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
290 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x11);
291 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
292
293 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
294 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
295 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
296 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
297 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
298 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
299
300 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
301 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x1E);
302 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
303 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
304 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
305 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x18);
306
307 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
308 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
309 }
310 }
311
nvp6158_set_aoc_720_30p_ex_b(decoder_dev_ch_info_s * decoder_info)312 static void nvp6158_set_aoc_720_30p_ex_b(decoder_dev_ch_info_s *decoder_info)
313 {
314 int ch = decoder_info->ch;
315
316 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
317
318 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
319 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
320 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
321 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
322 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
323
324 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
325 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
326 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
327
328 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
329 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x12);
330 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
331
332 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
333 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
334 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
335 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
336 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
337 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
338
339 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
340 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0F);
341 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
342 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
343 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x17);
344 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x0E);
345
346 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
347 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
348 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
349 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
350 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
351 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
352 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
353
354 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
355 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
356 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
357
358 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
359 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x12);
360 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
361
362 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
363 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
364 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
365 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
366 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
367 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
368
369 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
370 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x1E);
371 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
372 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
373 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
374 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x18);
375
376 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
377 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
378 }
379 }
380
nvp6158_set_aoc_720_50p(decoder_dev_ch_info_s * decoder_info)381 static void nvp6158_set_aoc_720_50p(decoder_dev_ch_info_s *decoder_info)
382 {
383 int ch = decoder_info->ch;
384
385 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
386
387 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
388 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
389 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
390 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
391 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
392
393 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
394 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
395 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
396
397 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
398 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x10);
399 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
400
401 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
402 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
403 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
404 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
405 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
406 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
407
408 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
409 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
410 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
411 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x28);
412 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x17);
413 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
414
415 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
416 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
417 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
418 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
419 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
420 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
421 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
422
423 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
424 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
425 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
426
427 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
428 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x11);
429 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
430
431 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
432 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
433 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
434 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
435 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
436 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
437
438 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
439 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
440 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
441 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
442 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
443 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
444
445 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
446 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
447 }
448 }
449
nvp6158_set_aoc_720_60p(decoder_dev_ch_info_s * decoder_info)450 static void nvp6158_set_aoc_720_60p(decoder_dev_ch_info_s *decoder_info)
451 {
452 int ch = decoder_info->ch;
453
454 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
455
456 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
457 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
458 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
459 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
460 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
461
462 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
463 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
464 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
465
466 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
467 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x10);
468 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
469
470 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
471 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
472 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
473 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
474 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
475 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
476
477 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
478 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
479 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
480 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x28);
481 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x17);
482 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
483
484 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
485 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
486 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
487 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
488 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
489 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
490 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
491
492 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
493 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
494 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
495
496 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
497 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x11);
498 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
499
500 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
501 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
502 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
503 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
504 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
505 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
506
507 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
508 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
509 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
510 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
511 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
512 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
513
514 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
515 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
516 }
517 }
518
nvp6158_set_aoc_1080_25p(decoder_dev_ch_info_s * decoder_info)519 static void nvp6158_set_aoc_1080_25p(decoder_dev_ch_info_s *decoder_info)
520 {
521 int ch = decoder_info->ch;
522
523 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
524
525 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
526 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
527 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
528 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
529 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
530
531 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
532 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
533 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
534
535 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
536 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x12);
537 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
538
539 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
540 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
541 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
542 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
543 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
544 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
545
546 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
547 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
548 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
549 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
550 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
551 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
552
553 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
554 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
555 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
556 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
557 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
558 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
559 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
560
561 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
562 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
563 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
564
565 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
566 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x12);
567 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
568
569 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
570 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
571 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
572 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
573 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
574 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
575
576 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
577 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
578 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
579 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
580 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
581 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
582
583 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
584 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
585 }
586 }
587
nvp6158_set_aoc_1080_30p(decoder_dev_ch_info_s * decoder_info)588 static void nvp6158_set_aoc_1080_30p(decoder_dev_ch_info_s *decoder_info)
589 {
590 int ch = decoder_info->ch;
591
592 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
593
594 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
595 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
596 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
597 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
598 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
599
600 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
601 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
602 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
603
604 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
605 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x12);
606 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
607
608 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
609 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
610 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
611 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
612 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
613 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
614
615 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
616 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
617 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
618 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
619 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
620 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
621
622 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
623 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
624 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
625 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
626 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
627 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
628 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
629
630 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
631 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
632 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
633
634 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x00);
635 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x12);
636 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
637
638 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
639 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
640 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
641 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
642 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
643 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
644
645 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
646 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
647 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
648 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
649 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
650 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
651
652 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
653 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
654 }
655 }
656
nvp6158_set_aoc_3m_25p(decoder_dev_ch_info_s * decoder_info)657 static void nvp6158_set_aoc_3m_25p(decoder_dev_ch_info_s *decoder_info)
658 {
659 int ch = decoder_info->ch;
660
661 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
662
663 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
664 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
665 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
666 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
667 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
668
669 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
670 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
671 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
672
673 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x06);
674 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x6A);
675 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
676
677 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
678 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
679 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
680 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
681 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
682 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
683
684 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
685 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
686 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
687 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
688 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
689 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
690
691 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
692 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
693 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
694 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
695 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
696 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
697 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
698
699 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
700 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
701 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
702
703 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x06);
704 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x6A);
705 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
706
707 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
708 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
709 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
710 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
711 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
712 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
713
714 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
715 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
716 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
717 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
718 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
719 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
720
721 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
722 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
723 }
724 }
725
nvp6158_set_aoc_3m_30p(decoder_dev_ch_info_s * decoder_info)726 static void nvp6158_set_aoc_3m_30p(decoder_dev_ch_info_s *decoder_info)
727 {
728 int ch = decoder_info->ch;
729
730 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
731
732 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
733 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
734 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
735 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
736 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
737
738 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
739 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
740 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
741
742 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x06);
743 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x6A);
744 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
745
746 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
747 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
748 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
749 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
750 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
751 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
752
753 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
754 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
755 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
756 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
757 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
758 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
759
760 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
761 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
762 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
763 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
764 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
765 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
766 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
767
768 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
769 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
770 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
771
772 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x06);
773 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x6A);
774 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
775
776 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
777 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
778 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
779 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
780 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
781 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
782
783 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
784 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
785 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
786 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
787 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
788 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
789
790 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
791 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
792 }
793 }
794
nvp6158_set_aoc_4m_25p(decoder_dev_ch_info_s * decoder_info)795 static void nvp6158_set_aoc_4m_25p(decoder_dev_ch_info_s *decoder_info)
796 {
797 int ch = decoder_info->ch;
798
799 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
800
801 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
802 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
803 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
804 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
805 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
806
807 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
808 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
809 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
810
811 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x05);
812 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xD4);
813 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
814
815 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
816 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
817 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
818 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
819 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
820 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
821
822 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
823 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
824 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
825 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
826 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x17);
827 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
828
829 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
830 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
831 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
832 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
833 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
834 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
835 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
836
837 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
838 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
839 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
840
841 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x05);
842 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xD4);
843 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
844
845 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
846 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
847 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
848 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
849 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
850 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
851
852 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
853 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
854 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
855 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
856 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
857 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
858
859 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
860 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
861 }
862 }
863
nvp6158_set_aoc_4m_30p(decoder_dev_ch_info_s * decoder_info)864 static void nvp6158_set_aoc_4m_30p(decoder_dev_ch_info_s *decoder_info)
865 {
866 int ch = decoder_info->ch;
867
868 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
869
870 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
871 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
872 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
873 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
874 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
875
876 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
877 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
878 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
879
880 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x05);
881 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xD4);
882 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
883
884 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
885 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
886 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
887 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
888 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
889 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
890
891 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
892 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
893 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
894 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x50);
895 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x17);
896 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
897
898 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
899 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
900 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
901 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
902 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
903 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
904 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
905
906 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
907 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
908 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
909
910 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x05);
911 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xD4);
912 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
913
914 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
915 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
916 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
917 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
918 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
919 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
920
921 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
922 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
923 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
924 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
925 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
926 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
927
928 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
929 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
930 }
931 }
932
nvp6158_set_aoc_4m_15p(decoder_dev_ch_info_s * decoder_info)933 static void nvp6158_set_aoc_4m_15p(decoder_dev_ch_info_s *decoder_info)
934 {
935 int ch = decoder_info->ch;
936
937 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
938
939 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
940 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
941 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
942 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
943 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
944
945 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
946 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
947 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
948
949 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x05);
950 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xD4);
951 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
952
953 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
954 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
955 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
956 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
957 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
958 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
959
960 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
961 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
962 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
963 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
964 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
965 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
966
967 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
968 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
969 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
970 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
971 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
972 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
973 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x11);
974
975 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
976 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
977 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
978
979 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x05);
980 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xD4);
981 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
982
983 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
984 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
985 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
986 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
987 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
988 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
989
990 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
991 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
992 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x01);
993 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x40);
994 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x05);
995 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
996
997 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
998 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
999 }
1000 }
1001
nvp6158_set_aoc_5m_12_5p(decoder_dev_ch_info_s * decoder_info)1002 static void nvp6158_set_aoc_5m_12_5p(decoder_dev_ch_info_s *decoder_info)
1003 {
1004 int ch = decoder_info->ch;
1005
1006 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
1007
1008 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
1009 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1010 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1011 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
1012 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
1013
1014 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1015 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1016 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1017
1018 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x07);
1019 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xB6);
1020 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1021
1022 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1023 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1024 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1025 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1026 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1027 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1028
1029 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1030 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
1031 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1032 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
1033 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
1034 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
1035
1036 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1037 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1038 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
1039 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1040 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1041 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x00);
1042 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
1043
1044 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1045 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1046 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1047
1048 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x07);
1049 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xB6);
1050 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1051
1052 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1053 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1054 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1055 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1056 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1057 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1058
1059 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1060 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
1061 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x01);
1062 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x40);
1063 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x05);
1064 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
1065
1066 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1067 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1068 }
1069 }
1070
nvp6158_set_aoc_5m_20p(decoder_dev_ch_info_s * decoder_info)1071 static void nvp6158_set_aoc_5m_20p(decoder_dev_ch_info_s *decoder_info)
1072 {
1073 int ch = decoder_info->ch;
1074
1075 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
1076
1077 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
1078 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1079 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1080 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1081 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
1082
1083 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1084 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1085 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1086
1087 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x07);
1088 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xB6);
1089 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1090
1091 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1092 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1093 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1094 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1095 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1096 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1097
1098 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1099 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
1100 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1101 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x64);
1102 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
1103 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
1104
1105 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1106 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1107 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
1108 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1109 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1110 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1111 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
1112
1113 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1114 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1115 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1116
1117 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x07);
1118 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xB6);
1119 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1120
1121 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1122 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1123 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1124 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1125 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1126 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1127
1128 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1129 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
1130 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1131 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xC8);
1132 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
1133 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
1134
1135 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1136 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1137 }
1138 }
1139
nvp6158_set_aoc_5_3m_20p(decoder_dev_ch_info_s * decoder_info)1140 static void nvp6158_set_aoc_5_3m_20p(decoder_dev_ch_info_s *decoder_info)
1141 {
1142 int ch = decoder_info->ch;
1143
1144 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
1145
1146 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
1147 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1148 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1149 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1150 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
1151
1152 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1153 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1154 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1155
1156 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x07);
1157 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x4D);
1158 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1159
1160 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1161 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1162 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1163 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1164 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1165 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1166
1167 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1168 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
1169 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1170 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
1171 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
1172 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
1173
1174 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1175 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1176 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
1177 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1178 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1179 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1180 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
1181
1182 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1183 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1184 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1185
1186 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x07);
1187 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0x4D);
1188 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1189
1190 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1191 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1192 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1193 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1194 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1195 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1196
1197 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1198 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
1199 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1200 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xC8);
1201 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x0B);
1202 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
1203
1204 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1205 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1206 }
1207 }
1208
nvp6158_set_aoc_8m_12_5p(decoder_dev_ch_info_s * decoder_info)1209 static void nvp6158_set_aoc_8m_12_5p(decoder_dev_ch_info_s *decoder_info)
1210 {
1211 int ch = decoder_info->ch;
1212
1213 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
1214
1215 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
1216 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1217 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1218 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1219 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
1220
1221 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1222 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1223 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1224
1225 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x08);
1226 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xC4);
1227 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1228
1229 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1230 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1231 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1232 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1233 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1234 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1235
1236 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1237 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
1238 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1239 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
1240 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
1241 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
1242
1243 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1244 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1245 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
1246 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1247 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x00);
1248 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1249 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x10);
1250
1251 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1252 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1253 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1254
1255 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x08);
1256 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xC4);
1257 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1258
1259 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1260 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1261 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1262 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1263 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1264 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1265
1266 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1267 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
1268 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x01);
1269 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x40);
1270 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
1271 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
1272
1273 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1274 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1275 }
1276 }
1277
nvp6158_set_aoc_8m_15p(decoder_dev_ch_info_s * decoder_info)1278 static void nvp6158_set_aoc_8m_15p(decoder_dev_ch_info_s *decoder_info)
1279 {
1280 int ch = decoder_info->ch;
1281
1282 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
1283
1284 if(g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
1285 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1286 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
1287 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1288 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x00);
1289
1290 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1291 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1292 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1293
1294 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x08);
1295 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xC4);
1296 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1297
1298 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1299 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1300 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1301 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1302 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1303 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1304
1305 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1306 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x0A);
1307 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x00);
1308 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0xA0);
1309 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x13);
1310 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x08);
1311
1312 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1313 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1314 } else if(g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
1315 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch*0x40), 0x00);
1316 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch*0x40), 0x03);
1317 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch*0x40), 0x10);
1318 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch*0x40), 0x11);
1319
1320 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch*0x40), 0x00);
1321 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch*0x40), 0x00);
1322 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch*0x40), 0x00);
1323
1324 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch*0x40), 0x08);
1325 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch*0x40), 0xC4);
1326 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch*0x40), 0x03);
1327
1328 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch*0x40), 0x00);
1329 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch*0x40), 0x00);
1330 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch*0x40), 0x01);
1331 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch*0x40), 0x00);
1332 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch*0x40), 0x00);
1333 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch*0x40), 0x40);
1334
1335 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch*0x40), 0x04);
1336 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch*0x40), 0x14);
1337 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch*0x40), 0x01);
1338 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch*0x40), 0x40);
1339 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch*0x40), 0x09);
1340 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch*0x40), 0x12);
1341
1342 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch*0x40), 0x00);
1343 gpio_i2c_write(nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch*0x40), 0xA0);
1344 }
1345 }
1346
nvp6158_audio_set_aoc_format(decoder_dev_ch_info_s * decoder_info)1347 void nvp6158_audio_set_aoc_format(decoder_dev_ch_info_s *decoder_info)
1348 {
1349 switch(decoder_info->fmt_def) {
1350 // 1M
1351 case AHD20_720P_25P_EX_Btype :
1352 nvp6158_set_aoc_720_25p_ex_b(decoder_info);
1353 break;
1354 case AHD20_720P_30P_EX_Btype :
1355 nvp6158_set_aoc_720_30p_ex_b(decoder_info);
1356 break;
1357 case AHD20_720P_50P :
1358 nvp6158_set_aoc_720_50p(decoder_info);
1359 case AHD20_720P_60P :
1360 nvp6158_set_aoc_720_60p(decoder_info);
1361 printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
1362 break;
1363 // 2M
1364 case AHD20_1080P_25P :
1365 nvp6158_set_aoc_1080_25p(decoder_info);
1366 break;
1367 case AHD20_1080P_30P :
1368 nvp6158_set_aoc_1080_30p(decoder_info);
1369 break;
1370 // 3M
1371 case AHD30_3M_25P :
1372 nvp6158_set_aoc_3m_25p(decoder_info);
1373 case AHD30_3M_30P :
1374 nvp6158_set_aoc_3m_30p(decoder_info);
1375 printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
1376 break;
1377 // 4M
1378 case AHD30_4M_25P :
1379 nvp6158_set_aoc_4m_25p(decoder_info);
1380 case AHD30_4M_30P :
1381 nvp6158_set_aoc_4m_30p(decoder_info);
1382 case AHD30_4M_15P :
1383 nvp6158_set_aoc_4m_15p(decoder_info);
1384 printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
1385 break;
1386 // 5M
1387 case AHD30_5M_12_5P :
1388 nvp6158_set_aoc_5m_12_5p(decoder_info);
1389 case AHD30_5M_20P :
1390 nvp6158_set_aoc_5m_20p(decoder_info);
1391 printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
1392 break;
1393 // 5.3M
1394 case AHD30_5_3M_20P :
1395 nvp6158_set_aoc_5_3m_20p(decoder_info);
1396 printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
1397 break;
1398 // 8M
1399 case AHD30_8M_12_5P :
1400 nvp6158_set_aoc_8m_12_5p(decoder_info);
1401 case AHD30_8M_15P :
1402 nvp6158_set_aoc_8m_15p(decoder_info);
1403 printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
1404 break;
1405 default :
1406 printk("[%s] Not supported format [0x%X] \r\n", __func__, decoder_info->fmt_def);
1407 break;
1408 }
1409 }
1410
1411