/* Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd. */ #include #include #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; } }