Files
hisi_SS524V100_SDK/vendor/nvp6158/audio.c
T

1651 lines
92 KiB
C

/*
Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd.
*/
#include <linux/string.h>
#include <linux/delay.h>
#include "common.h"
#include "audio.h"
/*
* extern variable
*/
int g_chip_id[4]; /* 4: Chip ID Array length */
int g_rev_id[4]; /* 4: Reversion ID Array length */
int g_ai_type = NC_AD_AI;
int g_aud_sample = NC_AD_SAMPLE_RATE_8000;
unsigned int g_nvp6158_cnt = 1; /* Chip count */
unsigned int g_nvp6158_iic_addr[CHIP_NUM] = {0x60, 0x60, 0x60, 0x60}; /* 4: Slave address of Chip Array length */
/*
* Description : initialize audio
* Argurments : recmaster(0[slave],1[master];), pbmaster(), ch_num(audio channel number)
* samplerate(sample rate), bits(bits)
* Return value : void
* Modify :
* warning :
* param:
* - xxmaster:0[slave],1[master];
* - ch_num: audio channel number
* - samplerate: 0[8k], 1[16k]
* - bits: 0[16bits], 1[8bits]
*/
void audio_init(unsigned char recmaster, unsigned char pbmaster, unsigned char ch_num, unsigned char samplerate,
unsigned char bits)
{
unsigned int i;
for (i = 0; i < g_nvp6158_cnt && i < 4; i++) { /* 4:max chip num */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0xFF, 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x94, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x08, 0x03); /* I2s outputs 16ch audio */
if (ch_num == 16) { /* 16: 16chn, 4chips' audio cascade */
if (i == 0) {
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x3A);
} else if (i == 1) { /* 1: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x38);
} else if (i == 2) { /* 2: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x38);
} else if (i == 3) { /* 3: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x39);
}
} else if (ch_num == 8) { /* 8: 8chn */
if (i == 0) { /* 0: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x08, 0x02); /* I2s outputs 8ch audio */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x3A); /* first stage */
} else if (i == 1) { /* 1: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x39); /* last stage */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x0f, 0x54); /* set I2S right sequence */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x10, 0x76);
}
} else {
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x08, 0x01); /* I2s outputs 4ch audio, left & right each 2 channels */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x3B); /* first stage */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x0f, 0x32); /* set I2S right sequence */
}
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x07,
0x00 | (recmaster << 7) | (samplerate << 3) | (bits << 2)); /* 2,3,7: Register offset */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x13,
0x00 | (pbmaster << 7) | (samplerate << 3) | (bits << 2)); /* 2,3,7: Register offset */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x01, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x02, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x03, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x04, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x05, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x22, 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x23, 0x10); /* playback */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x31, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x47, 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x49, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x44, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x32, 0xF0);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x94, 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x39, 0x82);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x38, 0x18);
msleep(30); /* 30: delay time ms */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x38, 0x08);
}
}
void nvp6168_audio_init(unsigned char recmaster, unsigned char pbmaster, unsigned char ch_num, unsigned char samplerate,
unsigned char bits)
{
unsigned int i;
for (i = 0; i < g_nvp6158_cnt && i < 4; i++) { /* 4:max chip num */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0xFF, 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x94, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x08, 0x03); /* I2s outputs 16ch audio */
if (ch_num == 16) { /* 16: 16chn, 4chips' audio cascade */
if (i == 0) { /* 0: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x1A);
} else if (i == 1) {
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x18);
} else if (i == 2) {
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x18);
} else if (i == 3) {
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x19);
}
} else if (ch_num == 8) { /* 8: 8chn */
if (i == 0) { /* 0: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x08, 0x02); /* I2s outputs 8ch audio */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x1A); /* first stage */
} else if (i == 1) { /* 1: g_nvp6158 cnt */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x19); /* last stage */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x0f, 0x54); /* set I2S right sequence */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x10, 0x76);
}
} else {
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x08, 0x01); /* I2s outputs 4ch audio, left & right each 2 channels */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x1B); /* first stage */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x0f, 0x32); /* set I2S right sequence */
}
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x07,
0x00 | (recmaster << 7) | (samplerate << 3) | (bits << 2)); /* 2,3,7: Register offset */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x13,
0x00 | (pbmaster << 7) | (samplerate << 3) | (bits << 2)); /* 2,3,7: Register offset */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x01, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x02, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x03, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x04, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x05, 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x22, 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x23, 0x10); /* playback */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x31, 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x47, 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x49, 0x88);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x44, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x32, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x00, 0x02);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x06, 0x1B);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x46, 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x48, 0xD0);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x94, 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x38, 0x18);
msleep(30); /* 30: delay time ms */
gpio_i2c_write(g_nvp6158_iic_addr[i], 0x38, 0x08);
audio_re_initialize(i);
}
}
void audio_powerdown(unsigned char chip)
{
unsigned char val_1x00;
if (chip >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0xFF, 0x01);
val_1x00 = gpio_i2c_read(g_nvp6158_iic_addr[chip], 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x00, (val_1x00 | 0xC0)); /* bit7 AFE, bit6 DAC */
}
void audio_in_type_set(int type)
{
if (type < NC_AD_MAX) {
printk("[%s] Change audio input type %d > %d\r\n", __func__, g_ai_type, type);
g_ai_type = type;
} else {
printk("[%s] Invalid argument %d\r\n", __func__, type);
}
}
int audio_in_type_get(void)
{
return g_ai_type;
}
void audio_sample_rate_set(int sample)
{
if (sample < NC_AD_SAMPLE_RATE_MAX) {
printk("[%s] Change audio sampling rate %d > %d\r\n", __func__, g_aud_sample, sample);
g_aud_sample = sample;
} else {
printk("[%s] Invalid argument %d\r\n", __func__, sample);
}
}
int audio_sample_rate_get(void)
{
return g_aud_sample;
}
int nvp6158_audio_adjust_r_seq(unsigned char dec, unsigned char chn_num)
{
switch (chn_num) {
case 2: /* 2: 2chn */
gpio_i2c_write(dec, 0x0f, 0x01); /* set I2S right sequence */
break;
case 4: /* 4: 4chn */
gpio_i2c_write(dec, 0x0f, 0x32); /* set I2S right sequence */
break;
case 8: /* 8: 8chn */
gpio_i2c_write(dec, 0x0f, 0x54); /* set I2S right sequence */
gpio_i2c_write(dec, 0x10, 0x76);
break;
case 16: /* 16: 16chn */
gpio_i2c_write(dec, 0x0f, 0x98); /* set I2S right sequence */
gpio_i2c_write(dec, 0x10, 0xba);
break;
default:
break;
}
return 0;
}
int check_audio_format(nvp6158_audio_format *format)
{
if ((format->chn_num != 2) && (format->chn_num != 4) && /* 2: 2chn, 4: 4chn */
(format->chn_num != 8) && (format->chn_num != 16)) { /* 8: 8chn, 16: 16chn */
return -1;
}
if ((format->mode != 0) && (format->mode != 1)) {
return -1;
}
if ((format->clkdir != 0) && (format->clkdir != 1)) {
return -1;
}
if ((format->bitrate != 0) && (format->bitrate != 2)) { /* 0: 256fs, 2: 320fs */
return -1;
}
if ((format->samplerate != 0) && (format->samplerate != 1) /* 0:8kHZ;1:16kHZ */
&& (format->samplerate != 2)) { /* 2:32kHZ */
return -1;
}
if ((format->precision != 0) && (format->precision != 1)) {
return -1;
}
if ((format->dspformat != 0) && (format->dspformat != 1)) {
return -1;
}
if ((format->format != 0) && (format->format != 1)) {
return -1;
}
return 0;
}
/* type: 0:record 1:playback */
int nvp6158_audio_set_format(unsigned char type, nvp6158_audio_format *format)
{
unsigned char cformat = 0;
unsigned char chn_num = 0;
unsigned char temp;
const unsigned int chip = 0;
if (check_audio_format(format) != 0) {
return -1;
}
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0xFF, 0x01);
/* 32kHz or other */
temp = gpio_i2c_read(g_nvp6158_iic_addr[chip], 0x00);
temp &= ~0x1;
if (format->samplerate == 2) { /* 2:32kHZ */
temp |= 0x1;
} else {
temp |= 0x0;
}
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x00, temp);
if (type == 0) {
/* set record channel number */
chn_num = gpio_i2c_read(g_nvp6158_iic_addr[chip], 0x08);
chn_num &= 0xFC;
switch (format->chn_num) {
case 2: /* 2: 2chn */
chn_num |= 0x0;
break;
case 4: /* 4: 4chn */
chn_num |= 0x1;
break;
case 8: /* 8: 8chn */
chn_num |= 0x2;
break;
case 16: /* 16: 16chn */
chn_num |= 0x3;
break;
default:
chn_num |= 0x3;
break;
}
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x08, chn_num);
nvp6158_audio_adjust_r_seq(g_nvp6158_iic_addr[chip], format->chn_num);
/* set master or slave mode */
cformat |= format->mode << 7; /* 7: Register offset */
/* clk polarity */
cformat |= format->clkdir << 6; /* 6: Register offset */
/* bitrate */
cformat |= format->bitrate << 4; /* 4: Register offset */
/* samplerate */
if (format->samplerate == 2) { /* 2:32kHz */
cformat |= 0x8;
} else {
cformat |= format->samplerate << 3; /* 3: Register offset */
}
/* bit width */
cformat |= format->precision << 2; /* 2: Register offset */
/* dsp or ssp */
cformat |= format->dspformat << 1; /* 1: Register offset */
/* i2s or dsp */
cformat |= format->format;
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x07, cformat);
} else if (type == 1) {
/* set master or slave mode */
cformat |= format->mode << 7; /* 7: Register offset */
/* clk polarity */
cformat |= format->clkdir << 6; /* 6: Register offset */
/* bitrate */
cformat |= format->bitrate << 4; /* 4: Register offset */
/* samplerate */
cformat |= format->samplerate << 3; /* 3: Register offset */
/* bit width */
cformat |= format->precision << 2; /* 2: Register offset */
/* dsp or ssp */
cformat |= format->dspformat << 1; /* 1: Register offset */
/* i2s or dsp */
cformat |= format->format;
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x13, cformat);
}
/* 32kHz 16/20chn slave */
if ((format->samplerate == 2) && (format->chn_num >= 16) && /* 2:32kHz, 16:16chn */
(format->mode == 0)) {
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x94, 0x00);
} else {
gpio_i2c_write(g_nvp6158_iic_addr[chip], 0x94, 0x40);
}
return 0;
}
void audio_re_initialize(int devnum)
{
if (devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0xFF, 0x01);
/* Set audio input type */
if (g_ai_type == NC_AD_AOC) {
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x00, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x31, 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x46, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x58, 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x62, 0xFF);
} else if (g_ai_type == NC_AD_AI) {
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x00, 0x02);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x31, 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x46, 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x58, 0x02);
gpio_i2c_write(g_nvp6158_iic_addr[devnum], 0x62, 0x00);
}
}
void set_aoc_720_25p_ex_b(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x11);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0F);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x17);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x0E);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x11);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x1E);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x18);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_720_30p_ex_b(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0F);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x17);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x0E);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x1E);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x18);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_720_50p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x28);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x17);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x11);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_720_60p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x28);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x17);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x11);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_1080_25p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_1080_30p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_3m_25p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x06);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x6A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x06);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x6A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_3m_30p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x06);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x6A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x06);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x6A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_4m_25p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xD4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x17);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xD4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_4m_30p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xD4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x50);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x17);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xD4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_4m_15p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xD4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x11);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xD4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_5m_12_5p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xB6);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xB6);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x05);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else {
printk("Not support!\n");
}
}
void set_aoc_5m_20p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xB6);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x64);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xB6);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xC8);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_5_3m_20p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x4D);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x07);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0x4D);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xC8);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x0B);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_8m_12_5p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xC4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xC4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void set_aoc_8m_15p(decoder_dev_ch_info_s *decoder_info)
{
int ch = decoder_info->ch;
if (decoder_info->devnum >= CHIP_NUM) {
return;
}
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0xFF, 0x12);
if (g_aud_sample == NC_AD_SAMPLE_RATE_8000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xC4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x0A);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0xA0);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x13);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
} else if (g_aud_sample == NC_AD_SAMPLE_RATE_16000) {
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x00 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x01 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x02 + (ch * 0x40), 0x10);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x18 + (ch * 0x40), 0x11);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x04 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x05 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x06 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x07 + (ch * 0x40), 0x08);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x08 + (ch * 0x40), 0xC4);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x09 + (ch * 0x40), 0x03);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0A + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0B + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0C + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0D + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0E + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x0F + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x10 + (ch * 0x40), 0x04);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x11 + (ch * 0x40), 0x14);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x12 + (ch * 0x40), 0x01);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x13 + (ch * 0x40), 0x40);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x14 + (ch * 0x40), 0x09);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x15 + (ch * 0x40), 0x12);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x17 + (ch * 0x40), 0x00);
gpio_i2c_write(g_nvp6158_iic_addr[decoder_info->devnum], 0x19 + (ch * 0x40), 0xA0);
}
}
void audio_set_aoc_format(decoder_dev_ch_info_s *decoder_info)
{
switch (decoder_info->fmt_def) {
/* 1M */
case AHD20_720P_25P_EX_Btype:
set_aoc_720_25p_ex_b(decoder_info);
break;
case AHD20_720P_30P_EX_Btype:
set_aoc_720_30p_ex_b(decoder_info);
break;
case AHD20_720P_50P:
set_aoc_720_50p(decoder_info);
break;
case AHD20_720P_60P:
set_aoc_720_60p(decoder_info);
printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
/* 2M */
case AHD20_1080P_25P:
set_aoc_1080_25p(decoder_info);
break;
case AHD20_1080P_30P:
set_aoc_1080_30p(decoder_info);
break;
/* 3M */
case AHD30_3M_25P:
set_aoc_3m_25p(decoder_info);
break;
case AHD30_3M_30P:
set_aoc_3m_30p(decoder_info);
printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
/* 4M */
case AHD30_4M_25P:
set_aoc_4m_25p(decoder_info);
break;
case AHD30_4M_30P:
set_aoc_4m_30p(decoder_info);
break;
case AHD30_4M_15P:
set_aoc_4m_15p(decoder_info);
printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
/* 5M */
case AHD30_5M_12_5P:
set_aoc_5m_12_5p(decoder_info);
break;
case AHD30_5M_20P:
set_aoc_5m_20p(decoder_info);
printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
/* 5.3M */
case AHD30_5_3M_20P:
set_aoc_5_3m_20p(decoder_info);
printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
/* 8M */
case AHD30_8M_12_5P:
set_aoc_8m_12_5p(decoder_info);
break;
case AHD30_8M_15P:
set_aoc_8m_15p(decoder_info);
printk("[%s] Not supported yet. [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
default:
printk("[%s] Not supported format [0x%X] \r\n", __func__, decoder_info->fmt_def);
break;
}
}