519 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			519 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | ||
|  * Driver for CX2081X voice capture IC.
 | ||
|  *
 | ||
|  * Copyright: Conexant Systems.
 | ||
|  *
 | ||
|  *
 | ||
|  * This program is free software; you can redistribute it and/or modify
 | ||
|  * it under the terms of the GNU General Public License version 2 as
 | ||
|  * published by the Free Software Foundation.
 | ||
|  *
 | ||
|  */
 | ||
| 
 | ||
| #ifndef CX20810_CONFIG_H_
 | ||
| #define CX20810_CONFIG_H_
 | ||
| 
 | ||
| enum {
 | ||
| 	CX20810_NORMAL_MODE = 0,
 | ||
| 	CX20810_NORMAL_MODE2,
 | ||
| 	CX20810_NORMAL_MODE_SIMPLE,
 | ||
| 	CX20810_NIRMAL_MODE_CODEC3,
 | ||
| 	CX20810_NIRMAL_MODE_CODEC3_SIMPLE,
 | ||
| 	CX20810_96K_16BIT_MODE,
 | ||
| 	CX20810_48K_16BIT_MODE,
 | ||
| };
 | ||
| 
 | ||
| static char codec_config_param_normal_mode[] = {
 | ||
| /*
 | ||
|  * I2S Master mode, LeftJustified 1bit delay
 | ||
|  * 48k_24bit MSB first, Frame Length 64bit
 | ||
|  * 12.288Mhz MClk, bclk,48K* 64 , 3.072Mhz
 | ||
|  * set up PLL, 12.288 Mhz mclk feed to PLL
 | ||
|  */
 | ||
| #if 1
 | ||
| 	0x80, 0x03, /* MCLK is an input */
 | ||
| 	0x08, 0x20, /* MCLK !gated */
 | ||
| 	0x60, 0x04, /* Bypass PLL */
 | ||
| 	0x09, 0x03, /* Use MLCK directly */
 | ||
| 	/* end pll setting */
 | ||
| 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
 | ||
| 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
 | ||
| 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
 | ||
| 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
 | ||
| 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
 | ||
| 	0x78, 0x2D, /* Enable VREF @ 2.8V (5V) or 2.6V (3.3V) */
 | ||
| 	0x78, 0x6D, /* Enable Analog LDO */
 | ||
| 	0x78, 0x6D, /* Enable Analog LDO */
 | ||
| 	0x78, 0x6D, /* Enable Analog LDO */
 | ||
| 	0x78, 0x6D, /* Enable Analog LDO */
 | ||
| 	0x78, 0x6D, /* Enable Analog LDO */
 | ||
| 	0x78, 0x6D, /* Enable Analog LDO */
 | ||
| 	0x7A, 0x01, /* Enable VREFP */
 | ||
| 
 | ||
| 	/* Setup I2S */
 | ||
| 	0x16, 0x00, /* Use DC Filters for ADCs */
 | ||
| 	0x0c, 0x3B, /* Enable I2S-TX and set Master Mode, enable ADC3/4 FIFO */
 | ||
| 	0x83, 0x00, /* Configure LRCK and BCLK as outputs */
 | ||
| 
 | ||
| 	0x30, 0x14, /* 7 wire mode,24-bit sample size,// Normal mode */
 | ||
| 	0x31, 0x07, /* Set 64 cycle per frame TX */
 | ||
| 	0x33, 0x1F, /*  TX WS ,32 cycle */
 | ||
| 	0x35, 0xA8, /* Lj 1bit delay,  enable TX1,2 */
 | ||
| 
 | ||
| 	0x0A, 0x03, /* Set TX divisor is Source Clock / 4 (Bclk,3.072Mhz) */
 | ||
| 	0x0A, 0x83, /* Enable divisor */
 | ||
| 
 | ||
| 	/* Setup ADCs and clocks */
 | ||
| 
 | ||
| 	/*
 | ||
| 	 * if using 20/16/12/8/4 dB gain, set register
 | ||
| 	 * 0x28/0x20/0x18/0x10/0x08
 | ||
| 	 */
 | ||
| 	0xBC, 0x28, /* ADC1 8dB Gain */
 | ||
| 	0xBD, 0x28, /* ADC2 8dB Gain */
 | ||
| 	0xBE, 0x28, /* ADC3 8dB Gain */
 | ||
| 	0xBF, 0x28, /* ADC4 8dB Gain */
 | ||
| 
 | ||
| 	0x10, 0x00, /* Disable all ADC clocks */
 | ||
| 	0x11, 0x00, /* Disable all ADC clocks and Mixer */
 | ||
| 	0x10, 0x1F, /* Enable all ADC clocks and ADC digital */
 | ||
| 	0x11, 0x4F, /* Enable all ADCs and set 48kHz sample rate */
 | ||
| 	0x10, 0x5F, /* Enable all ADC clocks, ADC digital and ADC Mic Clock Gate */
 | ||
| 
 | ||
| 	/*
 | ||
| 	 *0xA0 , 0x0F ,// ADC1, Mute PGA, enable AAF/ADC/PGA
 | ||
| 	 *0xA7 , 0x0F ,// ADC2, Mute PGA, enable AAF/ADC/PGA
 | ||
| 	 *0xAE , 0x0F ,// ADC3, Mute PGA, enable AAF/ADC/PGA
 | ||
| 	 *0xB5 , 0x0F ,// ADC4, Mute PGA, enable AAF/ADC/PGA
 | ||
| 	 */
 | ||
| 
 | ||
| 	0xA0, 0x07, /* ADC1 !Mute */
 | ||
| 	0xA7, 0x07, /* ADC2 !Mute */
 | ||
| 	0xAE, 0x07, /* ADC3 !Mute */
 | ||
| 	0xB5, 0x07, /* ADC4 !Mute */
 | ||
| #else
 | ||
| 	/* I2S slave 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, 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,
 | ||
| 
 | ||
| 	0xA0, 0x07, /* ADC bias EN */
 | ||
| 	0xA7, 0x07,
 | ||
| 	0xAE, 0x07,
 | ||
| 	0xB5, 0x07,
 | ||
| 
 | ||
| 	0xBC, 0x3C, /* 0x28 20dB 0x34 26dB */
 | ||
| 	0xBD, 0x3C,
 | ||
| 	0xBE, 0x3C,
 | ||
| 	0xBF, 0x3C,
 | ||
| 
 | ||
| 	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, 0xAC, /* TX right justified and revert 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 */
 | ||
| 
 | ||
| 	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  */
 | ||
| 	/* enable MCLK to chip */
 | ||
| 	/*  0x08, 0x30, */
 | ||
| 	/*  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, 0x4F,  /* Enable all ADC and set 48k sample rate */
 | ||
| 	0x10, 0x5F,  /* Enable all ADC clocks,
 | ||
| 					ADC digital and ADC Mic Clock Gate */
 | ||
| #endif
 | ||
| };
 | ||
| 
 | ||
| static char codec_config_param_normal_mode2[] = {
 | ||
| 	0x0F, 0x03,  /* RST  */
 | ||
| 	0x0F, 0x03,  /* repeat write is let chip has more time to RST */
 | ||
| 	0x0F, 0x03,
 | ||
| 	0x0F, 0x03,
 | ||
| 
 | ||
| 	0x0F, 0x00, /* release reset */
 | ||
| 
 | ||
| 	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,
 | ||
| 
 | ||
| 	0xA0, 0x07, /* ADC bias EN */
 | ||
| 	0xA7, 0x07,
 | ||
| 	0xAE, 0x07,
 | ||
| 	0xB5, 0x07,
 | ||
| 
 | ||
| 	0xBC, 0x24, /* 0x28 20dB 0x34 26dB */
 | ||
| 	0xBD, 0x24,
 | ||
| 	0xBE, 0x24,
 | ||
| 	0xBF, 0x24,
 | ||
| 
 | ||
| 	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, 0xAC, /* TX right justified and revert 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 */
 | ||
| 
 | ||
| #if 0
 | ||
| 	/*  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 */
 | ||
| #endif
 | ||
| 
 | ||
| 	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, 0x4F, /* Enable all ADC and set 48k sample rate */
 | ||
| 	0x10, 0x5F, /* Enable all ADC clocks,
 | ||
| 				   ADC digital and ADC Mic Clock Gate */
 | ||
| 
 | ||
| };
 | ||
| 
 | ||
| static 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为输出脚 */
 | ||
| 
 | ||
| 	/*  MCLK 作为输入 */
 | ||
| 	/* 0x08, 0x30, */
 | ||
| 	/* MCLK divisor 生效 */
 | ||
| 	/* 0x08, 0x38, */
 | ||
| 	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 */
 | ||
| 	/* Tx sample size:16bit, Normal mode */
 | ||
| 	/* 0x30, 0x0A, */
 | ||
| 	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,
 | ||
| 
 | ||
| };
 | ||
| 
 | ||
| static 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为输出脚 */
 | ||
| 
 | ||
| 	/* MCLK 作为输入 */
 | ||
| 	/* 0x08, 0x30, */
 | ||
| 	/* MCLK divisor 生效 */
 | ||
| 	/* 0x08, 0x38, */
 | ||
| 	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 */
 | ||
| 	/*  Tx sample size:16bit, Normal mode */
 | ||
| 	/* 0x30, 0x0A, */
 | ||
| 	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,
 | ||
| 
 | ||
| };
 | ||
| 
 | ||
| static 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为输出脚 */
 | ||
| 
 | ||
| 	/* MCLK 作为输入 */
 | ||
| 	/* 0x08, 0x30, */
 | ||
| 	/* MCLK divisor 生效 */
 | ||
| 	/* 0x08, 0x38, */
 | ||
| 	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 */
 | ||
| 	/* Tx sample size:16bit, Normal mode */
 | ||
| 	/* 0x30, 0x0A, */
 | ||
| 	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,
 | ||
| };
 | ||
| 
 | ||
| static 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为输出脚 */
 | ||
| 
 | ||
| 	/* MCLK 作为输入 */
 | ||
| 	/* 0x08, 0x30, */
 | ||
| 	/* MCLK divisor 生效 */
 | ||
| 	/* 0x08, 0x38, */
 | ||
| 	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 */
 | ||
| 	/* Tx sample size:24bit, Normal mode */
 | ||
| 	/* 0x30, 0x14, */
 | ||
| 	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,
 | ||
| };
 | ||
| 
 | ||
| static 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为输出脚 */
 | ||
| 
 | ||
| 	/* MCLK 作为输入 */
 | ||
| 	/* 0x08, 0x30, */
 | ||
| 	/* MCLK divisor 生效 */
 | ||
| 	/* 0x08, 0x38, */
 | ||
| 	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 */
 | ||
| 	/* Tx sample size:24bit, Normal mode */
 | ||
| 	/* 0x30, 0x14, */
 | ||
| 	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_ */
 |