1651 lines
92 KiB
C
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;
|
|
}
|
|
} |