432 lines
9.4 KiB
C
432 lines
9.4 KiB
C
|
/*
|
||
|
* sound\soc\sunxi\virtual_audio\ac100.h
|
||
|
* (C) Copyright 2010-2016
|
||
|
* Reuuimlla Technology Co., Ltd. <www.reuuimllatech.com>
|
||
|
* huangxin <huangxin@reuuimllatech.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 _SNDCODEC_H
|
||
|
#define _SNDCODEC_H
|
||
|
//#include <linux/mfd/ac100-mfd.h>
|
||
|
/*pll source*/
|
||
|
#define AC10X_MCLK1 1
|
||
|
#define AC10X_MCLK2 2
|
||
|
#define AC10X_BCLK1 3
|
||
|
#define AC10X_BCLK2 4
|
||
|
|
||
|
#define AIF1_CLK 1
|
||
|
#define AIF2_CLK 2
|
||
|
|
||
|
#define CHIP_AUDIO_RST 0x0
|
||
|
#define PLL_CTRL1 0x1
|
||
|
#define PLL_CTRL2 0x2
|
||
|
#define SYSCLK_CTRL 0x3
|
||
|
#define MOD_CLK_ENA 0x4
|
||
|
#define MOD_RST_CTRL 0x5
|
||
|
#define AIF_SR_CTRL 0x6
|
||
|
|
||
|
#define AIF1_CLK_CTRL 0x10
|
||
|
#define AIF1_ADCDAT_CTRL 0x11
|
||
|
#define AIF1_DACDAT_CTRL 0x12
|
||
|
#define AIF1_MXR_SRC 0x13
|
||
|
#define AIF1_VOL_CTRL1 0x14
|
||
|
#define AIF1_VOL_CTRL2 0x15
|
||
|
#define AIF1_VOL_CTRL3 0x16
|
||
|
#define AIF1_VOL_CTRL4 0x17
|
||
|
#define AIF1_MXR_GAIN 0x18
|
||
|
#define AIF1_RXD_CTRL 0x19
|
||
|
#define ADC_DIG_CTRL 0x40
|
||
|
#define ADC_VOL_CTRL 0x41
|
||
|
#define ADC_DBG_CTRL 0x42
|
||
|
|
||
|
#define HMIC_CTRL1 0x44
|
||
|
#define HMIC_CTRL2 0x45
|
||
|
#define HMIC_STS 0x46
|
||
|
|
||
|
#define DAC_DIG_CTRL 0x48
|
||
|
#define DAC_VOL_CTRL 0x49
|
||
|
#define DAC_DBG_CTRL 0x4a
|
||
|
#define DAC_MXR_SRC 0x4c
|
||
|
#define DAC_MXR_GAIN 0x4d
|
||
|
|
||
|
#define ADC_APC_CTRL 0x50
|
||
|
#define ADC_SRC 0x51
|
||
|
#define ADC_SRCBST_CTRL 0x52
|
||
|
#define OMIXER_DACA_CTRL 0x53
|
||
|
#define OMIXER_SR 0x54
|
||
|
#define OMIXER_BST1_CTRL 0x55
|
||
|
#define HPOUT_CTRL 0x56
|
||
|
#define ESPKOUT_CTRL 0x57
|
||
|
#define SPKOUT_CTRL 0x58
|
||
|
#define LOUT_CTRL 0x59
|
||
|
#define ADDA_TUNE1 0x5a
|
||
|
#define ADDA_TUNE2 0x5b
|
||
|
#define ADDA_TUNE3 0x5c
|
||
|
#define HPOUT_STR 0x5d
|
||
|
|
||
|
/*PLL_CTRL1*/
|
||
|
#define DPLL_DAC_BIAS 14
|
||
|
#define PLL_POSTDIV_M 8
|
||
|
#define CLOSE_LOOP 6
|
||
|
#define INT 0
|
||
|
|
||
|
/*PLL_CTRL2*/
|
||
|
#define PLL_EN 15
|
||
|
#define PLL_LOCK_STATUS 14
|
||
|
#define PLL_PREDIV_NI 4
|
||
|
#define PLL_POSTDIV_NF 0
|
||
|
|
||
|
/*SYSCLK_CTRL*/
|
||
|
#define PLLCLK_ENA 15
|
||
|
#define PLLCLK_SRC 12
|
||
|
#define AIF1CLK_ENA 11
|
||
|
#define AIF1CLK_SRC 8
|
||
|
#define AIF2CLK_ENA 7
|
||
|
#define AIF2CLK_SRC 4
|
||
|
#define SYSCLK_ENA 3
|
||
|
#define SYSCLK_SRC 0
|
||
|
|
||
|
/*MOD_CLK_ENA*/
|
||
|
#define MOD_CLK_AIF1 15
|
||
|
#define MOD_CLK_AIF2 14
|
||
|
#define MOD_CLK_AIF3 13
|
||
|
#define MOD_CLK_SRC1 11
|
||
|
#define MOD_CLK_SRC2 10
|
||
|
#define MOD_CLK_HPF_AGC 7
|
||
|
#define MOD_CLK_HPF_DRC 6
|
||
|
#define MOD_CLK_ADC_DIG 3
|
||
|
#define MOD_CLK_DAC_DIG 2
|
||
|
|
||
|
/*MOD_RST_CTRL*/
|
||
|
#define MOD_RESET_CTL 0
|
||
|
#define MOD_RESET_AIF1 15
|
||
|
#define MOD_RESET_AIF2 14
|
||
|
#define MOD_RESET_AIF3 13
|
||
|
#define MOD_RESET_SRC1 11
|
||
|
#define MOD_RESET_SRC2 10
|
||
|
#define MOD_RESET_HPF_AGC 7
|
||
|
#define MOD_RESET_HPF_DRC 6
|
||
|
#define MOD_RESET_ADC_DIG 3
|
||
|
#define MOD_RESET_DAC_DIG 2
|
||
|
|
||
|
/*AIF_SR_CTRL*/
|
||
|
#define AIF1_FS 12 //AIF1 Sample Rate
|
||
|
#define AIF2_FS 8 //AIF2 Sample Rate
|
||
|
#define SRC1_ENA 3
|
||
|
#define SRC1_SRC 2
|
||
|
#define SRC2_ENA 1
|
||
|
#define SRC2_SRC 0
|
||
|
|
||
|
/*AIF1LCK_CTRL*/
|
||
|
#define AIF1_MSTR_MOD 15
|
||
|
#define AIF1_BCLK_INV 14
|
||
|
#define AIF1_LRCK_INV 13
|
||
|
#define AIF1_BCLK_DIV 9
|
||
|
#define AIF1_LRCK_DIV 6
|
||
|
#define AIF1_WORK_SIZ 4
|
||
|
#define AIF1_DATA_FMT 2
|
||
|
#define DSP_MONO_PCM 1
|
||
|
#define AIF1_TDMM_ENA 0
|
||
|
|
||
|
/*AIF1_ADCDAT_CTRL*/
|
||
|
#define AIF1_AD0L_ENA 15
|
||
|
#define AIF1_AD0R_ENA 14
|
||
|
#define AIF1_AD1L_ENA 13
|
||
|
#define AIF1_AD1R_ENA 12
|
||
|
#define AIF1_AD0L_SRC 10
|
||
|
#define AIF1_AD0R_SRC 8
|
||
|
#define AIF1_AD1L_SRC 6
|
||
|
#define AIF1_AD1R_SRC 4
|
||
|
#define AIF1_ADCP_ENA 3
|
||
|
#define AIF1_ADUL_ENA 2
|
||
|
#define AIF1_SLOT_SIZ 0
|
||
|
|
||
|
/*AIF1_DACDAT_CTRL*/
|
||
|
#define AIF1_DA0L_ENA 15
|
||
|
#define AIF1_DA0R_ENA 14
|
||
|
#define AIF1_DA1L_ENA 13
|
||
|
#define AIF1_DA1R_ENA 12
|
||
|
#define AIF1_DA0L_SRC 10
|
||
|
#define AIF1_DA0R_SRC 8
|
||
|
#define AIF1_DA1L_SRC 6
|
||
|
#define AIF1_DA1R_SRC 4
|
||
|
#define AIF1_DACP_ENA 3
|
||
|
#define AIF1_DAUL_ENA 2
|
||
|
#define AIF1_SLOT_SIZ 0
|
||
|
|
||
|
/*AIF1_MXR_SRC*/
|
||
|
#define AIF1_AD0L_AIF1_DA0L_MXR 15
|
||
|
#define AIF1_AD0L_AIF2_DACL_MXR 14
|
||
|
#define AIF1_AD0L_ADCL_MXR 13
|
||
|
#define AIF1_AD0L_AIF2_DACR_MXR 12
|
||
|
#define AIF1_AD0R_AIF1_DA0R_MXR 11
|
||
|
#define AIF1_AD0R_AIF2_DACR_MXR 10
|
||
|
#define AIF1_AD0R_ADCR_MXR 9
|
||
|
#define AIF1_AD0R_AIF2_DACL_MXR 8
|
||
|
#define AIF1_AD1L_AIF2_DACL_MXR 7
|
||
|
#define AIF1_AD1L_ADCL_MXR 6
|
||
|
#define AIF1_AD1L_MXR_SRC 6
|
||
|
#define AIF1_AD1R_AIF2_DACR_MXR 3
|
||
|
#define AIF1_AD1R_ADCR_MXR 2
|
||
|
#define AIF1_AD1R_MXR_SRC 2
|
||
|
|
||
|
/*AIF1_VOL_CTRL1*/
|
||
|
#define AIF1_AD0L_VOL 8
|
||
|
#define AIF1_AD0R_VOL 0
|
||
|
|
||
|
/*AIF1_VOL_CTRL2*/
|
||
|
#define AIF1_AD1L_VOL 8
|
||
|
#define AIF1_AD1R_VOL 0
|
||
|
|
||
|
/*AIF1_VOL_CTRL3*/
|
||
|
#define AIF1_DA0L_VOL 8
|
||
|
#define AIF1_DA0R_VOL 0
|
||
|
|
||
|
/*AIF1_VOL_CTRL4*/
|
||
|
#define AIF1_DA1L_VOL 8
|
||
|
#define AIF1_DA1R_VOL 0
|
||
|
|
||
|
/*AIF1_MXR_GAIN*/
|
||
|
#define AIF1_AD0L_MXR_GAIN 12
|
||
|
#define AIF1_AD0R_MXR_GAIN 8
|
||
|
#define AIF1_AD1L_MXR_GAIN 6
|
||
|
#define AIF1_AD1R_MXR_GAIN 2
|
||
|
|
||
|
/*AIF1_RXD_CTRL*/
|
||
|
#define AIF1_N_DATA_DISCARD 8
|
||
|
|
||
|
/*ADC_DIG_CTRL*/
|
||
|
#define ENAD 15
|
||
|
#define ENDM 14
|
||
|
#define ADFIR32 13
|
||
|
#define ADOUT_DTS 2
|
||
|
#define ADOUT_DLY 1
|
||
|
|
||
|
/*ADC_VOL_CTRL*/
|
||
|
#define ADC_VOL_L 8
|
||
|
#define ADC_VOL_R 0
|
||
|
|
||
|
/*ADC_DBG_CTRL*/
|
||
|
#define ADSW 15
|
||
|
#define DMIC_CLK_PIN_CTRL 12
|
||
|
|
||
|
/*HMIC_CTRL1*/
|
||
|
#define HMIC_M 12
|
||
|
#define HMIC_N 8
|
||
|
#define HMIC_DATA_IRQ_MODE 7
|
||
|
#define HMIC_TH1_HYSTERESIS 5
|
||
|
#define HMIC_PULLOUT_IRQ 4
|
||
|
#define HMIC_PLUGIN_IRQ 3
|
||
|
#define HMIC_KEYUP_IRQ 2
|
||
|
#define HMIC_KEYDOWN_IRQ 1
|
||
|
#define HMIC_DATA_IRQ_EN 0
|
||
|
|
||
|
/*HMIC_CTRL2*/
|
||
|
#define HMIC_SAMPLE_SELECT 14
|
||
|
#define HMIC_TH2_HYSTERESIS 13
|
||
|
#define HMIC_TH2 8
|
||
|
#define HMIC_SF 6
|
||
|
#define KEYUP_CLEAR 5
|
||
|
#define HMIC_TH1 0
|
||
|
|
||
|
/*HMIC_STS*/
|
||
|
#define HMIC_DATA 8
|
||
|
#define HMIC_PULLOUT_PEND 4
|
||
|
#define HMIC_PLUGIN_PEND 3
|
||
|
#define HMIC_KEYUP_PEND 2
|
||
|
#define HMKC_KEYDOWN_PEND 1
|
||
|
#define HMIC_DATA_PEND 0
|
||
|
|
||
|
/*DAC_DIG_CTRL*/
|
||
|
#define ENDA 15
|
||
|
#define ENHPF 14
|
||
|
#define DAFIR32 13
|
||
|
#define MODQU 8
|
||
|
|
||
|
/*DAC_VOL_CTRL*/
|
||
|
#define DAC_VOL_L 8
|
||
|
#define DAC_VOL_R 0
|
||
|
|
||
|
/*DAC_DBG_CTRL*/
|
||
|
#define DASW 15
|
||
|
#define ENDWA_N 14
|
||
|
#define DAC_MOD_DBG 13
|
||
|
#define DAC_PTN_SEL 6
|
||
|
#define DVC 0
|
||
|
|
||
|
/*DAC_MXR_SRC*/
|
||
|
#define DACL_MXR_AIF1_DA0L 15
|
||
|
#define DACL_MXR_AIF1_DA1L 14
|
||
|
#define DACL_MXR_AIF2_DACL 13
|
||
|
#define DACL_MXR_ADCL 12
|
||
|
#define DACL_MXR_SRC 12
|
||
|
#define DACR_MXR_AIF1_DA0R 11
|
||
|
#define DACR_MXR_AIF1_DA1R 10
|
||
|
#define DACR_MXR_AIF2_DACR 9
|
||
|
#define DACR_MXR_ADCR 8
|
||
|
#define DACR_MXR_SRC 8
|
||
|
|
||
|
/*DAC_MXR_GAIN*/
|
||
|
#define DACL_MXR_GAIN 12
|
||
|
#define DACR_MXR_GAIN 8
|
||
|
|
||
|
/*ADC_APC_CTRL*/
|
||
|
#define ADCREN 15
|
||
|
#define ADCRG 12
|
||
|
#define ADCLEN 11
|
||
|
#define ADCLG 8
|
||
|
#define MBIASEN 7
|
||
|
#define MMIC_BIAS_CHOP_EN 6
|
||
|
#define MMIC_BIAS_CHOP_CKS 4
|
||
|
#define HBIASMOD 2
|
||
|
#define HBIASEN 1
|
||
|
#define HBIASADCEN 0
|
||
|
|
||
|
/*ADC_SRC*/
|
||
|
#define RADCMIXMUTEMIC1BOOST (13)
|
||
|
#define RADCMIXMUTEMIC2BOOST (12)
|
||
|
#define RADCMIXMUTELINEINLR (11)
|
||
|
#define RADCMIXMUTELINEINR (10)
|
||
|
#define RADCMIXMUTEAUXINR (9)
|
||
|
#define RADCMIXMUTEROUTPUT (8)
|
||
|
#define RADCMIXMUTELOUTPUT (7)
|
||
|
#define LADCMIXMUTEMIC1BOOST (6)
|
||
|
#define LADCMIXMUTEMIC2BOOST (5)
|
||
|
#define LADCMIXMUTELINEINLR (4)
|
||
|
#define LADCMIXMUTELINEINL (3)
|
||
|
#define LADCMIXMUTEAUXINL (2)
|
||
|
#define LADCMIXMUTELOUTPUT (1)
|
||
|
#define LADCMIXMUTEROUTPUT (0)
|
||
|
|
||
|
|
||
|
/*ADC_SRCBST_CTRL*/
|
||
|
#define MIC1AMPEN 15
|
||
|
#define ADC_MIC1G 12
|
||
|
#define MIC2AMPEN 11
|
||
|
#define ADC_MIC2G 8
|
||
|
#define MIC2SLT 7
|
||
|
#define LINEIN_PREG 4
|
||
|
#define AUXI_PREG 0
|
||
|
|
||
|
/*OMIXER_DACA_CTRL*/
|
||
|
#define DACAREN 15
|
||
|
#define DACALEN 14
|
||
|
#define RMIXEN 13
|
||
|
#define LMIXEN 12
|
||
|
#define HPOUTPUTENABLE 8
|
||
|
|
||
|
/*OMIXER_SR*/
|
||
|
#define RMIXMUTEMIC1BOOST (13)
|
||
|
#define RMIXMUTEMIC2BOOST (12)
|
||
|
#define RMIXMUTELINEINLR (11)
|
||
|
#define RMIXMUTELINEINR (10)
|
||
|
#define RMIXMUTEAUXINR (9)
|
||
|
#define RMIXMUTEDACR (8)
|
||
|
#define RMIXMUTEDACL (7)
|
||
|
#define LMIXMUTEMIC1BOOST (6)
|
||
|
#define LMIXMUTEMIC2BOOST (5)
|
||
|
#define LMIXMUTELINEINLR (4)
|
||
|
#define LMIXMUTELINEINL (3)
|
||
|
#define LMIXMUTEAUXINL (2)
|
||
|
#define LMIXMUTEDACL (1)
|
||
|
#define LMIXMUTEDACR (0)
|
||
|
|
||
|
/*OMIXER_BST1_CTRL*/
|
||
|
#define BIASVOLTAGE 12
|
||
|
#define AXG 9
|
||
|
#define OMIXER_MIC1G 6
|
||
|
#define OMIXER_MIC2G 3
|
||
|
#define LINEING 0
|
||
|
|
||
|
/*HPOUT_CTRL*/
|
||
|
#define RHPS 15
|
||
|
#define LHPS 14
|
||
|
#define RHPPA_MUTE 13
|
||
|
#define LHPPA_MUTE 12
|
||
|
#define HPPA_EN 11
|
||
|
#define HP_VOL 4
|
||
|
#define HPPA_DEL 2
|
||
|
#define HPPA_IS 0
|
||
|
|
||
|
/*ESPKOUT_CTRL*/
|
||
|
#define EAR_RAMP_TIME 11
|
||
|
#define ESPA_OUT_CURRENT 9
|
||
|
#define ESPSR 7
|
||
|
#define ESPPA_MUTE 6
|
||
|
#define ESPPA_EN 5
|
||
|
#define ESP_VOL 0
|
||
|
|
||
|
/*SPKOUT_CTRL*/
|
||
|
#define HPCALICKS 13
|
||
|
#define RSPKS 12
|
||
|
#define RSPKINVEN 11
|
||
|
#define RSPK_EN 9
|
||
|
#define LSPKS 8
|
||
|
#define LSPKINVEN 7
|
||
|
#define LSPK_EN 5
|
||
|
#define SPK_VOL 0
|
||
|
|
||
|
/*LOUT_CTRL*/
|
||
|
#define LINEOUTG 5
|
||
|
#define LINEOUTEN 4
|
||
|
#define LINEOUTS0 3
|
||
|
#define LINEOUTS1 2
|
||
|
#define LINEOUTS2 1
|
||
|
#define LINEOUTS3 0
|
||
|
|
||
|
/*ADDA_TUNE1*/
|
||
|
#define CURRENT_TEST_SELECT 14
|
||
|
#define BIHE_CTRL 12
|
||
|
#define DITHER 11
|
||
|
#define DITHER_CLK 9
|
||
|
#define ZERO_CROSSOVER_EN 8
|
||
|
#define ZERO_CROSSOVER_TIME 7
|
||
|
#define EAR_SPEED_SELECT 6
|
||
|
#define REF_CHOPPEN_CKS 4
|
||
|
#define OPMIC_BIAS_CUR 0
|
||
|
|
||
|
/*ADDA_TUNE2*/
|
||
|
#define OPDAC_BIAS_CUR 14
|
||
|
#define OPDRV_BIAS_CUR 12
|
||
|
#define OPMIX_BIAS_CUR 10
|
||
|
#define OPEAR_BIAS_CUR 8
|
||
|
#define OPVR_BIAS_CUR 6
|
||
|
#define OPAAF_BIAS_CUR 4
|
||
|
#define OPADC1_BIAS_CUR 2
|
||
|
#define OPADC2_BIAS_CUR 0
|
||
|
|
||
|
/*ADDA_TUNE3*/
|
||
|
#define LDOEN 15
|
||
|
#define LDO_SEL 12
|
||
|
#define BIASCALIVERIFY 11
|
||
|
#define BIASMODE 10
|
||
|
#define BIASCALIDATA 9
|
||
|
#define OSCS 1
|
||
|
#define OSCEN 0
|
||
|
|
||
|
/*HPOUT_STR*/
|
||
|
#define HPVL_SOFT_MOD 14
|
||
|
#define HPVL_STEP_CTRL 8
|
||
|
#define DACA_CHND_ENA 7
|
||
|
#define HPPA_MXRD_ENA 6
|
||
|
#define HPVL_CTRL_OUT 0
|
||
|
struct spk_gpio {
|
||
|
u32 gpio;
|
||
|
bool used;
|
||
|
};
|
||
|
#define AC10X_DEBG
|
||
|
#ifdef AC10X_DEBG
|
||
|
#define AC10X_DBG(format,args...) printk("[AC100] "format,##args)
|
||
|
#else
|
||
|
#define AC10X_DBG(...)
|
||
|
#endif
|
||
|
|
||
|
#endif
|