357 lines
9.1 KiB
C
Executable File
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
|