SmartAudio/lichee/linux-4.9/sound/soc/codecs/acx00.h

357 lines
9.1 KiB
C
Executable File

/*
* sound\soc\codecs\acx00.h
* (C) Copyright 2012-2016
* Allwinner Technology Co., Ltd. <www.allwinnertech.com>
* Wolfgang Huang <huangjinhui@allwinnertech.com>
*
* some simple description for this code
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
*/
#ifndef __ACX00_H_
#define __ACX00_H_
/* ACX00 register offset list */
#define AC_SYS_CLK_CTL 0x2000
#define AC_SYS_MOD_RST 0x2002
#define AC_SYS_SR_CTL 0x2004
/* Left blank */
#define AC_I2S_CTL 0x2100
#define AC_I2S_CLK 0x2102
#define AC_I2S_FMT0 0x2104
/* Left blank */
#define AC_I2S_FMT1 0x2108
/* Left blank */
#define AC_I2S_MIXER_SRC 0x2114
#define AC_I2S_MIXER_GAIN 0x2116
#define AC_I2S_DAC_VOL 0x2118
#define AC_I2S_ADC_VOL 0x211A
/* Left blank */
#define AC_DAC_CTL 0x2200
#define AC_DAC_MIXER_SRC 0x2202
#define AC_DAC_MIXER_GAIN 0x2204
/* Left blank */
#define AC_OUT_MIXER_CTL 0x2220
#define AC_OUT_MIXER_SRC 0x2222
#define AC_LINEOUT_CTL 0x2224
/* Left blank */
#define AC_ADC_CTL 0x2300
/* Left blank */
#define AC_MICBIAS_CTL 0x2310
/* Left blank */
#define AC_ADC_MIC_CTL 0x2320
#define AC_ADC_MIXER_SRC 0x2322
/* Left blank */
#define AC_BIAS_CTL 0x232A
#define AC_ANALOG_PROF_CTL 0x232C
/* Left blank */
#define AC_ADC_DAPL_CTRL 0x2500
#define AC_ADC_DAPR_CTRL 0x2502
#define AC_ADC_DAPLSTA 0x2504
#define AC_ADC_DAPRSTA 0x2506
#define AC_ADC_DAP_LTL 0x2508
#define AC_ADC_DAP_RTL 0x250A
#define AC_ADC_DAP_LHAC 0x250C
#define AC_ADC_DAP_LLAC 0x250E
#define AC_ADC_DAP_RHAC 0x2510
#define AC_ADC_DAP_RLAC 0x2512
#define AC_ADC_DAP_LDT 0x2514
#define AC_ADC_DAP_LAT 0x2516
#define AC_ADC_DAP_RDT 0x2518
#define AC_ADC_DAP_RAT 0x251A
#define AC_ADC_DAP_NTH 0x251C
#define AC_ADC_DAP_LHNAC 0x251E
#define AC_ADC_DAP_LLNAC 0x2520
#define AC_ADC_DAP_RHNAC 0x2522
#define AC_ADC_DAP_RLNAC 0x2524
#define AC_ADC_DAP_HHPFC 0x2526
#define AC_ADC_DAP_LHPFC 0x2528
#define AC_ADC_DAP_OPT 0x252A
/* Left blank */
#define AC_AGC_SEL 0x2480
/* Left blank */
#define AC_ADC_DAPL_CTRL 0x2500
#define AC_ADC_DAPR_CTRL 0x2502
#define AC_ADC_DAPLSTA 0x2504
#define AC_ADC_DAPRSTA 0x2506
#define AC_ADC_DAP_LTL 0x2508
#define AC_ADC_DAP_RTL 0x250A
#define AC_ADC_DAP_LHAC 0x250C
#define AC_ADC_DAP_LLAC 0x250E
#define AC_ADC_DAP_RHAC 0x2510
#define AC_ADC_DAP_RLAC 0x2512
#define AC_ADC_DAP_LDT 0x2514
#define AC_ADC_DAP_LAT 0x2516
#define AC_ADC_DAP_RDT 0x2518
#define AC_ADC_DAP_RAT 0x251A
#define AC_ADC_DAP_NTH 0x251C
#define AC_ADC_DAP_LHNAC 0x251E
#define AC_ADC_DAP_LLNAC 0x2520
#define AC_ADC_DAP_RHNAC 0x2522
#define AC_ADC_DAP_RLNAC 0x2524
#define AC_ADC_DAP_HHPFC 0x2526
#define AC_ADC_DAP_LHPFC 0x2528
#define AC_ADC_DAP_OPT 0x252A
/* Left blank */
#define AC_DRC_SEL 0x2f80
/* Left blank */
#define AC_DRC_CHAN_CTRL 0x3000
#define AC_DRC_HHPFC 0x3002
#define AC_DRC_LHPFC 0x3004
#define AC_DRC_CTRL 0x3006
#define AC_DRC_LPFHAT 0x3008
#define AC_DRC_LPFLAT 0x300A
#define AC_DRC_RPFHAT 0x300C
#define AC_DRC_RPFLAT 0x300E
#define AC_DRC_LPFHRT 0x3010
#define AC_DRC_LPFLRT 0x3012
#define AC_DRC_RPFHRT 0x3014
#define AC_DRC_RPFLRT 0x3016
#define AC_DRC_LRMSHAT 0x3018
#define AC_DRC_LRMSLAT 0x301A
#define AC_DRC_RRMSHAT 0x301C
#define AC_DRC_RRMSLAT 0x301E
#define AC_DRC_HCT 0x3020
#define AC_DRC_LCT 0x3022
#define AC_DRC_HKC 0x3024
#define AC_DRC_LKC 0x3026
#define AC_DRC_HOPC 0x3028
#define AC_DRC_LOPC 0x302A
#define AC_DRC_HLT 0x302C
#define AC_DRC_LLT 0x302E
#define AC_DRC_HKI 0x3030
#define AC_DRC_LKI 0x3032
#define AC_DRC_HOPL 0x3034
#define AC_DRC_LOPL 0x3036
#define AC_DRC_HET 0x3038
#define AC_DRC_LET 0x303A
#define AC_DRC_HKE 0x303C
#define AC_DRC_LKE 0x303E
#define AC_DRC_HOPE 0x3040
#define AC_DRC_LOPE 0x3042
#define AC_DRC_HKN 0x3044
#define AC_DRC_LKN 0x3046
#define AC_DRC_SFHAT 0x3048
#define AC_DRC_SFLAT 0x304A
#define AC_DRC_SFHRT 0x304C
#define AC_DRC_SFLRT 0x304E
#define AC_DRC_MXGHS 0x3050
#define AC_DRC_MXGLS 0x3052
#define AC_DRC_MNGHS 0x3054
#define AC_DRC_MNGLS 0x3056
#define AC_DRC_EPSHC 0x3058
#define AC_DRC_EPSLC 0x305A
#define AC_DRC_OPT 0x305C
#define AC_DRC_HPFHGAIN 0x305E
#define AC_DRC_HPFLGAIN 0x3060
#define AC_DRC_BISTCR 0x3100
#define AC_DRC_BISTST 0x3102
/* AC_SYS_CLK_CTL : 0x2000 */
#define SYS_CLK_I2S 15
#define SYS_CLK_AGC 7
#define SYS_CLK_DRC 6
#define SYS_CLK_ADC 3
#define SYS_CLK_DAC 2
/* AC_SYS_MOD_RST : 0x2002 */
#define MOD_RST_I2S 15
#define MOD_RST_AGC 7
#define MOD_RST_DRC 6
#define MOD_RST_ADC 3
#define MOD_RST_DAC 2
/* AC_SYS_SR_CTL : 0x2004 */
#define SYS_SR_BIT 0
#define SYS_SR_MASK 0xF
#define SYS_SR_BIT_0 0 /* 8000 */
#define SYS_SR_BIT_1 1 /* 11025 */
#define SYS_SR_BIT_2 2 /* 12000 */
#define SYS_SR_BIT_3 3 /* 16000 */
#define SYS_SR_BIT_4 4 /* 22050 */
#define SYS_SR_BIT_5 5 /* 24000 */
#define SYS_SR_BIT_6 6 /* 32000 */
#define SYS_SR_BIT_7 7 /* 44100 */
#define SYS_SR_BIT_8 8 /* 48000 */
#define SYS_SR_BIT_9 9 /* 96000 */
#define SYS_SR_BIT_10 10 /* 192000 */
/* AC_I2S_CTL : 0x2100 */
#define I2S_SDO0_EN 3
#define I2S_TX_EN 2
#define I2S_RX_EN 1
#define I2S_GEN 0
/* AC_I2S_CLK : 0x2102 */
#define I2S_BCLK_OUT 15
#define I2S_LRCK_OUT 14
#define I2S_BLCK_DIV 10
#define I2S_LRCK_PERIOD 0
/* BCLK DIV Define */
#define I2S_BCLK_DIV_MASK 0xF
#define I2S_BCLK_DIV_1 1
#define I2S_BCLK_DIV_2 2
#define I2S_BCLK_DIV_3 3
#define I2S_BCLK_DIV_4 4
#define I2S_BCLK_DIV_5 5
#define I2S_BCLK_DIV_6 6
#define I2S_BCLK_DIV_7 7
#define I2S_BCLK_DIV_8 8
#define I2S_BCLK_DIV_9 9
#define I2S_BCLK_DIV_10 10
#define I2S_BCLK_DIV_11 11
#define I2S_BCLK_DIV_12 12
#define I2S_BCLK_DIV_13 13
#define I2S_BCLK_DIV_14 14
#define I2S_BCLK_DIV_15 15
#define I2S_LRCK_PERIOD_MASK 0x3FF
/* AC_I2S_FMT0 : 0x2104 */
#define I2S_FMT_MODE 14
#define I2S_FMT_TX_OFFSET 10
#define I2S_FMT_RX_OFFSET 8
#define I2S_FMT_SAMPLE 4
#define I2S_FMT_SLOT_WIDTH 1
#define I2S_FMT_LOOP 0
/* AC_I2S_FMT1 : 0x2108 */
#define I2S_FMT_BCLK_POLAR 15
#define I2S_FMT_LRCK_POLAR 14
#define I2S_FMT_EDGE_TRANSFER 13
#define I2S_FMT_RX_MLS 11
#define I2S_FMT_TX_MLS 10
#define I2S_FMT_EXTEND 9
#define I2S_FMT_LRCK_WIDTH 4 /* PCM long/short Frame */
#define I2S_MFT_RX_PDM 2
#define I2S_FMT_TX_PDM 0
/* AC_I2S_MIXER_SRC : 0x2114 */
#define I2S_MIXERL_SRC_DAC 13
#define I2S_MIXERL_SRC_ADC 12
#define I2S_MIXERR_SRC_DAC 9
#define I2S_MIXERR_SRC_ADC 8
/* AC_I2S_MIXER_GAIN : 0x2116 */
#define I2S_MIXERL_GAIN_DAC 13
#define I2S_MIXERL_GAIN_ADC 12
#define I2S_MIXERR_GAIN_DAC 9
#define I2S_MIXERR_GAIN_ADC 8
/* AC_I2S_DAC_VOL : 0x2118 */
#define I2S_DACL_VOL 8
#define I2S_DACR_VOL 0
/* AC_I2S_ADC_VOL : 0x211A */
#define I2S_ADCL_VOL 8
#define I2S_ADCR_VOL 0
/* AC_DAC_CTL : 0x2200 */
#define DAC_CTL_DAC_EN 15
#define DAC_CTL_HPF_EN 14
#define DAC_CTL_FIR 13
#define DAC_CTL_MODQU 8
/* AC_DAC_MIXER_SRC : 0x2202 */
#define DAC_MIXERL_SRC_DAC 13
#define DAC_MIXERL_SRC_ADC 12
#define DAC_MIXERR_SRC_DAC 9
#define DAC_MIXERR_SRC_ADC 8
/* AC_DAC_MIXER_GAIN : 0x2204 */
#define DAC_MIXERL_GAIN_DAC 13
#define DAC_MIXERL_GAIN_ADC 12
#define DAC_MIXERR_GAIN_DAC 9
#define DAC_MIXERR_GAIN_ADC 8
/* AC_OUT_MIXER_CTL : 0x2220 */
#define OUT_MIXER_DACR_EN 15
#define OUT_MIXER_DACL_EN 14
#define OUT_MIXER_RMIX_EN 13
#define OUT_MIXER_LMIX_EN 12
#define OUT_MIXER_LINE_VOL 8
#define OUT_MIXER_MIC1_VOL 4
#define OUT_MIXER_MIC2_VOL 0
/* AC_OUT_MIXER_SRC : 0x2222 */
#define OUT_MIXERR_SRC_MIC1 14
#define OUT_MIXERR_SRC_MIC2 13
#define OUT_MIXERR_SRC_PHPN 12
#define OUT_MIXERR_SRC_PHP 11
#define OUT_MIXERR_SRC_LINER 10
#define OUT_MIXERR_SRC_DACR 9
#define OUT_MIXERR_SRC_DACL 8
#define OUT_MIXERL_SRC_MIC1 6
#define OUT_MIXERL_SRC_MIC2 5
#define OUT_MIXERL_SRC_PHPN 4
#define OUT_MIXERL_SRC_PHN 3
#define OUT_MIXERL_SRC_LINEL 2
#define OUT_MIXERL_SRC_DACL 1
#define OUT_MIXERL_SRC_DACR 0
/* AC_LINEOUT_CTL : 0x2224 */
#define LINEOUT_EN 15
#define LINEL_SRC_EN 14
#define LINER_SRC_EN 13
#define LINEL_SRC 12
#define LINER_SRC 11
/* ramp just skip */
#define LINE_SLOPE_SEL 8
#define LINE_ANTI_TIME 5
#define LINEOUT_VOL 0
/* AC_ADC_CTL : 0x2300 */
#define ADC_EN 15
#define ADC_ENDM 14
#define ADC_FIR 13
#define ADC_DELAY_TIME 2
#define ADC_DELAY_EN 1
/* AC_MICBIAS_CTL : 0x2310 */
#define MMBIAS_EN 15
#define MMBIAS_CHOPPER 14
#define MMBIAS_CHOP_CLK 12
#define MMBIAS_SEL 8
#define ADDA_BIAS_CUR 3
/* AC_ADC_MIC_CTL : 0x2320 */
#define ADCR_EN 15
#define ADCL_EN 14
#define ADC_GAIN 8
#define MIC1_GAIN_EN 7
#define MIC1_BOOST 4
#define MIC2_GAIN_EN 3
#define MIC2_BOOST 0
/* AC_ADC_MIXER_SRC : 0x2322 */
#define ADC_MIXERR_MIC1 14
#define ADC_MIXERR_MIC2 13
#define ADC_MIXERR_PHPN 12
#define ADC_MIXERR_PHP 11
#define ADC_MIXERR_LINER 10
#define ADC_MIXERR_MIXR 9
#define ADC_MIXERR_MIXL 8
#define ADC_MIXERL_MIC1 6
#define ADC_MIXERL_MIC2 5
#define ADC_MIXERL_PHPN 4
#define ADC_MIXERL_PHN 3
#define ADC_MIXERL_LINEL 2
#define ADC_MIXERL_MIXL 1
#define ADC_MIXERL_MIXR 0
/* AC_BIAS_CTL : 0x232A */
/* AC_ANALOG_PROF_CTL : 0x232C */
/* used for current performance measure */
/* AC_DLDO_OSC_CTL : 0x2340 */
/* AC_ALDO_CTL : 0x2342 */
/* used for digital & analog LDO test... etc */
#endif