SmartAudio/lichee/linux-4.9/drivers/misc/xunfei/cpld/cx20810_config.h

341 lines
8.5 KiB
C
Raw Normal View History

2018-08-01 07:15:23 +00:00
#ifndef CX20810_CONFIG_H_
#define CX20810_CONFIG_H_
enum
{
CX20810_NORMAL_MODE = 0,
CX20810_NORMAL_MODE_SIMPLE,
CX20810_NIRMAL_MODE_CODEC3,
CX20810_NIRMAL_MODE_CODEC3_SIMPLE,
CX20810_96K_16BIT_MODE,
CX20810_48K_16BIT_MODE,
};
const char codec_config_param_normal_mode[]=
{
0x0F,0x03, //RST
0x0F,0x03, //repeat write is let chip has more time to RST
0x0F,0x03,
0x0F,0x03,
0x0F,0x00,//release reset
0x78,0x33, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x33, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x33, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x33, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x33, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x73, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x73, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x73, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x73, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x73, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x7A,0x01,
0x01,0x01,
0xA0,0x07,//ADC bias EN
0xA7,0x07,
0xAE,0x07,
0xB5,0x07,
0xBC,0x38,// 0x28 20dB 0x34 26dB
0xBD,0x38,
0xBE,0x38,
0xBF,0x38,
0x30,0x14,//14 24bit 0a 16bit
0x31,0x07,//frame (n+1)*8 bit 32+32=64
0x32,0x07,//
0x33,0x1F,//sys width 32 clk
0x34,0x1F,
0x35,0xA2,// TX left justified i2s1+i2s2
0x36,0x00,// config for right justified ignored.
0x37,0x00,// RX left justified.
0x38,0x00,// config for right justified ignored.
0x39,0x08, // ADC12 0n DATA1.ADC34 On DATA2
0x3A,0x00,//Slot1
0x3B,0x00,//slot2
0x3C,0x00,//slot3
0x3D,0x00,//slot4
0x3E,0x1F,//slot4
0x16,0x00, // Use DC Filter for ADCs
0x80,0x03,// MCLK
0x81,0x01,// LRCLK BCLK RX Pull down
0x82,0x3F,// LRCLK BCLK RX
0x83,0x0F,// LRCLK BCLK
/*
// PLL config
0x08,0x00,// disable MCLK
0x09,0x40,// I2S TX Bit Clock
0x60,0xF8, //reset and Disable PLL1
0x61,0xDF,//
0x62,0x01,
0x63,0x01,
//{0x64,0x90},
//{0x65,0x24},
0x66,0x80,
0x67,0x02,
//{0x68,0x0},
//{0x69,0x0},
// enable PLL1
0x60,0xFB,//delay for PLL locked
0x60,0xFB,
0x60,0xFB,
0x60,0xFB,
0x60,0xFB,
0x60,0xFB,
// end PLL config
*/
0x0F,0x01, //RST,clears DSP,audio data interface values
0x0F,0x01, //repeat write is let chip has more time to RST
0x0F,0x01,
0x0F,0x01,
0x08,0x00,// disable MCLK to chip
0x0C,0x0A,// Clocks gated
0x09,0x02,
0x0F,0x00,//clear RST
//0x08,0x30,// enable MCLK to chip
//0x08,0x38,
0x08,0x20,
0x09,0x03,
0x10,0x00, // Disable all ADC clocks
0x11,0x10, // Disable all ADC and Mixer
0x10,0x1F, // Enable all ADC clocks and ADC digital
0x11,0x1F, // Enable all ADC and set 16k sample rate
0x10,0x5F, // Enable all ADC clocks, ADC digital and ADC Mic Clock Gate
};
const char codec_config_param_normal_mode_simple[]=
{
// mic pga 增益
// 4通道录音工具
0xBC,0x28,// 0x28 20dB 0x34 26dB
0xBD,0x28,
0xBE,0x28,
0xBF,0x28,
0x60,0x04,
0x66,0x00,
0x67,0x02,
//PAD配置
0x80,0x03,// MCLK 为输入
0x83,0x0F,// LRCLK BCLK 为输入脚TX1 TX2为输出脚
//0x08,0x30,// MCLK 作为输入
//0x08,0x38,// MCLK divisor 生效
0x08,0x20,// MCLK 作为输入 12.288MHz
0x09,0x03,// 选MCLK作为PLL输入源
0x0a,0x0b,
0x0a,0x8b,
0x0C,0x0A,// RT clock disable, TX clock enable, enable clock to ADC3/4
// I2S
//0x30,0x0A,// Tx sample size:16bit, Normal mode
0x30,0x14,// Tx sample size:24bit, Normal mode
0x35,0xA2,// left justified, enable I2S-1 and I2S-2
0x10,0x00,
0x11,0x00,
0x10,0x1F,
0x11,0x1F,// ADC 96k, enables all ADCs
0x16,0x00,
0x10,0x5F,
};
const char codec3_config_param_normal_mode[]=
{
// POWER
0x78,0x39, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x39, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x39, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x39, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x39, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x79, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x79, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x79, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x79, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x78,0x79, //*PLLEN = 1 ABIASEN IOBUFEN REFIMP = 11 3KR
0x7A,0x01,
0x01,0x01,
// Analog ADC Control
// MIcIn PGA A0,A7,AE,B5 [5:4] ctrl_rcm , [1] enable [3] mute [7] bypass
// 模拟部分电源
0xA0,0x07,//ADC bias EN
0xA7,0x07,
0xAE,0x07,
0xB5,0x07,
// mic pga 增益
// 4通道录音工具
0xBC,0x06,// 0x28 20dB 0x34 26dB
0xBD,0x06,
0xBE,0x0C,
0xBF,0x14,
0x60,0x04,
0x66,0x00,
0x67,0x02,
//PAD配置
0x80,0x03,// MCLK 为输入
0x83,0x0F,// LRCLK BCLK 为输入脚TX1 TX2为输出脚
//0x08,0x30,// MCLK 作为输入
//0x08,0x38,// MCLK divisor 生效
0x08,0x20,// MCLK 作为输入 12.288MHz
0x09,0x03,// 选MCLK作为PLL输入源
0x0a,0x0b,
0x0a,0x8b,
0x0C,0x0A,// RT clock disable, TX clock enable, enable clock to ADC3/4
// I2S
//0x30,0x0A,// Tx sample size:16bit, Normal mode
0x30,0x14,// Tx sample size:24bit, Normal mode
0x35,0xA2,// left justified, enable I2S-1 and I2S-2
0x10,0x00,
0x11,0x00,
0x10,0x1F,
0x11,0x1F,// ADC 96k, enables all ADCs
0x16,0x00,
0x10,0x5F,
};
const char codec3_config_param_normal_mode_simple[]=
{
// mic pga 增益
// 4通道录音工具
0xBC,0x28,// 0x28 20dB 0x34 26dB
0xBD,0x28,
0xBE,0x28,
0xBF,0x28,
0x60,0x04,
0x66,0x00,
0x67,0x02,
//PAD配置
0x80,0x03,// MCLK 为输入
0x83,0x0F,// LRCLK BCLK 为输入脚TX1 TX2为输出脚
//0x08,0x30,// MCLK 作为输入
//0x08,0x38,// MCLK divisor 生效
0x08,0x20,// MCLK 作为输入 12.288MHz
0x09,0x03,// 选MCLK作为PLL输入源
0x0a,0x0b,
0x0a,0x8b,
0x0C,0x0A,// RT clock disable, TX clock enable, enable clock to ADC3/4
// I2S
//0x30,0x0A,// Tx sample size:16bit, Normal mode
0x30,0x14,// Tx sample size:24bit, Normal mode
0x35,0xA2,// left justified, enable I2S-1 and I2S-2
0x10,0x00,
0x11,0x00,
0x10,0x1F,
0x11,0x1F,// ADC 96k, enables all ADCs
0x16,0x00,
0x10,0x5F,
};
const char codec_config_param_48k_16bit_mode[]=
{
// mic pga 增益
// 4通道录音工具
0xBC,29 << 1,// 0x28 20dB 0x34 26dB
0xBD,29 << 1,
0xBE,29 << 1,
0xBF,29 << 1,
0x60,0x04,
0x66,0x00,
0x67,0x02,
//PAD配置
0x80,0x03,// MCLK 为输入
0x83,0x0F,// LRCLK BCLK 为输入脚TX1 TX2为输出脚
//0x08,0x30,// MCLK 作为输入
//0x08,0x38,// MCLK divisor 生效
0x08,0x20,// MCLK 作为输入 12.288MHz
0x09,0x03,//选MCLK作为PLL输入源
0x0a,0x03,
0x0a,0x83,
0x0C,0x0A,// RT clock disable, TX clock enable, enable clock to ADC3/4
// I2S
0x30,0x0A,// Tx sample size:16bit, Normal mode
//0x30,0x14,// Tx sample size:24bit, Normal mode
0x35,0xA2,// left justified, enable I2S-1 and I2S-2
0x10,0x00,
0x11,0x00,
0x10,0x1F,
0x11,0x4F,// ADC 96k, enables all ADCs
0x16,0x00,
0x10,0x5F,
};
const char codec_config_param_96k_16bit_mode[]=
{
// mic pga 增益
// 4通道录音工具
0xBC,29 << 1,// 0x28 20dB 0x34 26dB
0xBD,29 << 1,
0xBE,29 << 1,
0xBF,29 << 1,
0x60,0x04,
0x66,0x00,
0x67,0x02,
//PAD配置
0x80,0x03,// MCLK 为输入
0x83,0x0F,// LRCLK BCLK 为输入脚TX1 TX2为输出脚
//0x08,0x30,// MCLK 作为输入
//0x08,0x38,// MCLK divisor 生效
0x08,0x20,// MCLK 作为输入 12.288MHz
0x09,0x03,// 选MCLK作为PLL输入源
0x0a,0x01,
0x0a,0x81,
0x0C,0x0A,// RT clock disable, TX clock enable, enable clock to ADC3/4
// I2S
0x30,0x0A,// Tx sample size:16bit, Normal mode
//0x30,0x14,// Tx sample size:24bit, Normal mode
0x35,0xA2,// left justified, enable I2S-1 and I2S-2
0x10,0x00,
0x11,0x00,
0x10,0x1F,
0x11,0x5F,// ADC 96k, enables all ADCs
0x16,0x00,
0x10,0x5F,
};
#endif /* CX20810_CONFIG_H_ */