xref: /OK3568_Linux_fs/kernel/drivers/media/i2c/nvp6158_drv/nvp6158_audio.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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