1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096 |
- /**************************************************************************//**
- *
- * @copyright (C) 2019 Nuvoton Technology Corp. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-1-16 Wayne First version
- *
- ******************************************************************************/
- #ifndef __ACODEC_NAU88L25_H__
- #define __ACODEC_NAU88L25_H__
- #include <rtdevice.h>
- enum
- {
- REG_SOFTWARE_RST,
- REG_ENA_CTRL,
- REG_I2C_ADDR_SET,
- REG_CLK_DIVIDER,
- REG_FLL1,
- REG_FLL2,
- REG_FLL3,
- REG_FLL4,
- REG_FLL5,
- REG_FLL6,
- REG_FLL_VCO_RSV,
- REG_HSD_CTRL = 0xC, //0xC
- REG_JACK_DET_CTRL,
- REG_INTERRUPT_MASK = 0xF, //0xF
- REG_IRQ_STATUS,
- REG_INT_LCR_KEY_STATUS,
- REG_INTERRUPT_DIS_CTRL,
- REG_SAR_CTRL,
- REG_KEYDET_CTRL,
- REG_VDET_THRESHOLD_1,
- REG_VDET_THRESHOLD_2,
- REG_VDET_THRESHOLD_3,
- REG_VDET_THRESHOLD_4,
- REG_GPIO34_CTRL,
- REG_GPIO12_CTRL,
- REG_TDM_CTRL,
- REG_I2S_PCM_CTRL1,
- REG_I2S_PCM_CTRL2,
- REG_LEFT_TIME_SLOT,
- REG_RIGHT_TIME_SLOT,
- REG_BIQ_CTRL,
- REG_BIQ_COF1,
- REG_BIQ_COF2,
- REG_BIQ_COF3,
- REG_BIQ_COF4,
- REG_BIQ_COF5,
- REG_BIQ_COF6,
- REG_BIQ_COF7,
- REG_BIQ_COF8,
- REG_BIQ_COF9, //29
- REG_BIQ_COF10,
- REG_ADC_RATE,
- REG_DAC_CTRL1,
- REG_DAC_CTRL2,
- REG_DAC_DGAIN_CTRL = 0x2F,
- REG_ADC_DGAIN_CTRL,
- REG_MUTE_CTRL,
- REG_HSVOL_CTRL,
- REG_DACL_CTRL,
- REG_DACR_CTRL,
- REG_ADC_DRC_KNEE_IP12 = 0x38,
- REG_ADC_DRC_KNEE_IP34,
- REG_ADC_DRC_SLOPES,
- REG_ADC_DRC_ATKDCY,
- REG_DAC_DRC_KNEE_IP12 = 0x45, //0x45
- REG_DAC_DRC_KNEE_IP34,
- REG_DAC_DRC_SLOPES,
- REG_DAC_DRC_ATKDCY = 0x48, //0x48
- REG_MODE_CTRL = 0x4C, //0x4C
- REG_CLASSG_CTRL = 0x50, //0x50
- REG_OPT_EFUSE_CTRL,
- REG_MISC_CTRL = 0x55, //0x55
- REG_I2C_DEVICE_ID = 0x58, //0x58
- REG_SARDOUT_RAM_STATUS,
- REG_BIAS_ADJ = 0x66, //0x66
- REG_TRIM_SETTINGS = 0x68, //0x68
- REG_ANALOG_CONTROL_1,
- REG_ANALOG_CONTROL_2,
- REG_ANALOG_ADC_1 = 0x71, //0x71
- REG_ANALOG_ADC_2,
- REG_RDAC,
- REG_MIC_BIAS, //0x74
- REG_BOOST = 0x76,
- REG_FEPGA,
- REG_POWER_UP_CONTROL = 0x7F, //0x7F
- REG_CHARGE_PUMP_AND_DOWN_CONTROL, //0x80
- REG_CHARGE_PUMP_INPUT_READ,
- REG_GENERAL_STATUS
- };
- // R1 REG_ENA_CTRL
- #define CLK_DRC_EN (1)
- #define CLK_SAR_EN (1 << 1)
- #define CLK_BIST_EN (1 << 3)
- #define CLK_I2S_EN (1 << 4)
- #define CLK_MODE_EN (1 << 5)
- #define DCLK_DAC_EN (1 << 6)
- #define DCLK_ADC_EN (1 << 7)
- #define ADC_EN (1 << 8)
- #define LDAC_EN (1 << 9)
- #define RDAC_EN (1 << 10)
- #define CLK_DAC_INV (1 << 14)
- #define CMLCK_ENB (1 << 15)
- // R2 REG_I2C_ADDR_SET
- #define I2C_ADDDR_SEL
- #define I2C_LSB_VAL_IO
- // R3 REG_CLK_DIVIDER
- #define MCLK_SRC_DIV1 (0)
- #define MCLK_SRC_INVERTED (1)
- #define MCLK_SRC_DIV2 (2)
- #define MCLK_SRC_DIV4 (3)
- #define MCLK_SRC_DIV8 (4)
- #define MCLK_SRC_DIV16 (5)
- #define MCLK_SRC_DIV32 (6)
- #define MCLK_SRC_DIV3 (7)
- #define MCLK_SRC_DIV6 (10)
- #define MCLK_SRC_DIV12 (11)
- #define MCLK_SRC_DIV24 (12)
- #define MCLK_SRC_DIV48 (13)
- #define MCLK_SRC_DIV96 (14)
- #define MCLK_SRC_DIV5 (15)
- #define CLK_DAC_SRC_DIV1 (0)
- #define CLK_DAC_SRC_DIV2 (1 << 4)
- #define CLK_DAC_SRC_DIV4 (2 << 4)
- #define CLK_DAC_SRC_DIV8 (3 << 4)
- #define CLK_ADC_SRC_DIV1 (0)
- #define CLK_ADC_SRC_DIV2 (1 << 6)
- #define CLK_ADC_SRC_DIV4 (2 << 6)
- #define CLK_ADC_SRC_DIV8 (3 << 6)
- #define CLK_ADC_PL_INVERT (1 << 10)
- #define CLK_DAC_PL_INVERT (1 << 11)
- #define CLK_CODEC_SRC_IMCLK (0)
- #define CLK_CODEC_SRC_PIN (1 << 13)
- #define CLK_SYSCLK_SRC_VCO (1 << 15)
- #define CLK_SYSCLK_SRC_PIN (0)
- // R4 REG_FLL1
- #define FLL_RATIO_512K (1)
- #define FLL_RATIO_256K (1 << 1)
- #define FLL_RATIO_128K (1 << 2)
- #define FLL_RATIO_64K (1 << 3)
- #define FLL_RATIO_32K (1 << 4)
- #define FLL_RATIO_8K (1 << 5)
- #define FLL_RATIO_4K (1 << 6)
- #define FLL_LCOK_BP (1 << 7)
- #define ICTRL_V2I_AMP2X (1 << 8)
- #define ICTRL_V2I_AMP (1 << 9)
- #define ICTRL_V2I_BOTHAMP (3 << 8)
- #define ICTRL_LATCH_1X (1 << 10)
- #define ICTRL_LATCH_2X (3 << 10)
- #define ICTRL_LATCH_3X (7 << 10)
- #define FLL1SELDAC_POS (13)
- #define FLL1SELDAC_MSK (0x7 << FLL1SELDAC_POS)
- // R5 REG_FLL2
- #define FLLFRAC_POS (0)
- #define FLLFRAC_MSK (0xFFFF << FLLFRAC_POS)
- // R6 REG_FLL3
- #define FLL_INTEGER(x) (x << 0)
- #define FLL_CLK_REF_SRC_MCLKPIN (0)
- #define FLL_CLK_REF_SRC_BCLKPIN (1 << 11)
- #define FLL_CLK_REF_SRC_FSPIN (0x3 << 10)
- #define GAIN_ERR_x1 (0x0)
- #define GAIN_ERR_x2 (0x1 << 12)
- #define GAIN_ERR_x4 (0x2 << 12)
- #define GAIN_ERR_x8 (0x3 << 12)
- #define GAIN_ERR_x16 (0x4 << 12)
- #define GAIN_ERR_x32 (0x5 << 12)
- #define GAIN_ERR_x64 (0x6 << 12)
- // R7 REG_FLL4
- #define FLL_N2(x) (x << 0)
- #define FLL_CLK_REF_DIV1 (0x0 << 10)
- #define FLL_CLK_REF_DIV2 (0x1 << 10)
- #define FLL_CLK_REF_DIV4 (0x2 << 10)
- #define FLL_CLK_REF_DIV8 (0x3 << 10)
- #define FLL_CLK_REF_DIV_4CHK_1 (0x0 << 12)
- #define FLL_CLK_REF_DIV_4CHK_1_2 (0x1 << 12)
- #define FLL_CLK_REF_DIV_4CHK_1_4 (0x2 << 12)
- #define FLL_CLK_REF_DIV_4CHK_1_8 (0x3 << 12)
- #define FLL_CLK_REF_DIV_4CHK_1_16 (0x4 << 12)
- #define FLL_CLK_REF_DIV_4CHK_1_32 (0x5 << 12)
- // R8 REG_FLL5
- #define FLL_LOCK_LENGTH(x) (x << 0)
- #define FILTER_SW (0x1 << 12)
- #define CLK_FILTER_SW (0x1 << 13)
- #define CHB_FILTER_EN (0x1 << 14)
- #define PDB_DACICTRL (0x1 << 15)
- // R9 REG_FLL6
- #define FLL_SD_DITHER_SEL_1LSB (0x1 << 4)
- #define FLL_SD_DITHER_SEL_2LSBs (0x2 << 4)
- #define FLL_SD_DITHER_SEL_3LSBs (0x3 << 4)
- #define FLL_FLTR_DITHER_SEL_1LSB (0x1 << 6)
- #define FLL_FLTR_DITHER_SEL_2LSBs (0x2 << 6)
- #define FLL_FLTR_DITHER_SEL_3LSBs (0x3 << 6)
- #define CUTOFF600 (0x1 << 12)
- #define CUTOFF500 (0x1 << 13)
- #define SDM_EN (0x1 << 14)
- #define DCO_EN (0x1 << 15)
- // R A REG_FLL_VCO_RSV
- #define DOUT2VCO_RSV_POS (0)
- #define DOUT2VCO_RSV_Msk (0xFFFF << FLLFRAC_POS)
- // R C REG_HSD_CTRL
- #define MANU_SPKR_DWN1L_OPEN (0)
- #define MANU_SPKR_DWN1L_GND (1)
- #define MANU_SPKR_DWN1R_OPEN (0)
- #define MANU_SPKR_DWN1R_GND (1 << 1)
- #define MANU_ENGND2_OPEN (0)
- #define MANU_ENGND2_GND (1 << 2)
- #define MANU_ENGND1_OPEN (0)
- #define MANU_ENGND1_GND (1 << 3)
- #define MANUAL_START (1 << 4)
- #define HSD_AUTO_MODE (1 << 6)
- #define RESET_HSD (1 << 15)
- // R D REG_JACK_DET_CTRL
- #define JKDET_LOGIC_AND_GATE (1)
- #define JKDET_LOGIC_OR_GATE (0)
- #define JKDET_PL_N_INVERT (1)
- #define JKDET_PL_INVERT (0)
- #define EJECT_DT(x) (x << 2)
- #define INSERT_DT(x) (x << 5)
- #define DB_BP_MODE_BYBASS_DEBOUNCE (1 << 8)
- #define DB_BP_MODE_NORMAL (0)
- #define JD_RESTART (1)
- #define JK_1_PL_GPIO2JD1 (0)
- #define JK_1_PL_GPIO2JD1_INV (1 << 10)
- #define JK_1_PL_IGNORE_0 (2 << 10)
- #define JK_1_PL_IGNORE_1 (3 << 10)
- #define JK_2_PL_JKDETL (0)
- #define JK_2_PL_JKDETL_INV (1 << 12)
- #define JK_2_PL_IGNORE_0 (2 << 12)
- #define JK_2_PL_IGNORE_1 (3 << 12)
- #define JK_3_PL_GPIO3JD2 (0)
- #define JK_3_PL_GPIO3JD2_INV (1 << 14)
- #define JK_3_PL_IGNORE_0 (2 << 14)
- #define JK_3_PL_IGNORE_1 (3 << 14)
- // R F REG_INTERRUPT_MASK
- #define JK_DET_INTP_MASK (1)
- #define JK_EJECT_INTP_MASK (1 << 2)
- #define MIC_DET_INTP_MASK (1 << 4)
- #define SHORT_KEY_INTP_MASK (1 << 5)
- #define LONG_KEYINTP_MASK (1 << 6)
- #define KEY_RELEASE_INTP_MASK (1 << 7)
- #define RMS_INTP_MASK (1 << 8)
- #define APR_EMRGENCY_SHTDWN1_INTP_MASK (1 << 9)
- #define HSD_COMPLETE_INTP_MASK (1 << 10)
- #define IRQ_OE (1 << 11)
- #define IRQ_DS (1 << 12)
- #define IRQ_PE (1 << 13)
- #define IRQ_PS (1 << 14)
- #define IRQ_PL (1 << 15)
- // R 10
- #define JACK_DET_IRQ_JACK_INSERT (1)
- #define JACK_DET_IRQ_JACK_INSERT_REMOVED (2)
- #define JACK_EJCT_IRQ_JACK_INSERT (1 << 2)
- #define JACK_EJCT_IRQ_JACK_INSERT_REMOVED (2 << 2)
- #define MIC_DET_INT (1 << 4)
- #define SHORT_KEY_INT (1 << 5)
- #define LONG_KEY_INT (1 << 6)
- #define KEY_RELEASE_INT (1 << 7)
- #define RMS_INT (1 << 8)
- #define APR_EMRG_SHTDWN (1 << 9)
- #define HSD_COMPL_ETE_INT (1 << 10)
- // R 11
- #define NT_CLR_KEY_STATUS_LK0 (1)
- #define NT_CLR_KEY_STATUS_LK1 (1 << 1)
- #define NT_CLR_KEY_STATUS_LK2 (1 << 2)
- #define NT_CLR_KEY_STATUS_LK3 (1 << 3)
- #define NT_CLR_KEY_STATUS_LK4 (1 << 4)
- #define NT_CLR_KEY_STATUS_LK5 (1 << 5)
- #define NT_CLR_KEY_STATUS_LK6 (1 << 6)
- #define NT_CLR_KEY_STATUS_LK7 (1 << 7)
- #define NT_CLR_KEY_STATUS_SK0 (1 << 8)
- #define NT_CLR_KEY_STATUS_SK1 (1 << 9)
- #define NT_CLR_KEY_STATUS_SK2 (1 << 10)
- #define NT_CLR_KEY_STATUS_SK3 (1 << 11)
- #define NT_CLR_KEY_STATUS_SK4 (1 << 12)
- #define NT_CLR_KEY_STATUS_SK5 (1 << 13)
- #define NT_CLR_KEY_STATUS_SK6 (1 << 14)
- #define NT_CLR_KEY_STATUS_SK7 (1 << 15)
- // R 12
- #define JACK_DET_INT_DIS (1)
- #define JACK_EJCT_INT_DIS (1 << 2)
- #define MIC_DET_INT_DIS (1 << 4)
- #define SHORT_KEY_INT_DIS (1 << 5)
- #define LONG_KEY_INT_DIS (1 << 6)
- #define KEY_RELEASE_INT_DIS (1 << 7)
- #define RMS_INT_DIS (1 << 8)
- #define SHRT_SHTD_MIN_INT_DIS (1 << 9)
- #define HSD_COMPL_ETE_INT_DIS (1 << 10)
- #define LONG_KEY0_INT_DIS (1 << 11)
- #define KEY0_RELEASE_INT_DIS (1 << 12)
- #define KEY_RELEASE_CLR_INTR (1 << 13)
- // R 13 SAR_CTRL
- #define SAMPLE_SPEED_500NS (0)
- #define SAMPLE_SPEED_4US (1 << 0)
- #define SAMPLE_SPEED_8US (2 << 0)
- #define SAMPLE_SPEED_16US (3 << 0)
- #define COMP_SPEED_500NS (0 << 2)
- #define COMP_SPEED_1US (1 << 2)
- #define COMP_SPEED_2US (2 << 2)
- #define COMP_SPEED_4US (3 << 2)
- #define RES_SEL_35K_OHMS (0)
- #define RES_SEL_70K_OHMS (1 << 4)
- #define RES_SEL_170K_OHMS (2 << 4)
- #define RES_SEL_360K_OHMS (3 << 4)
- #define HV_SEL_VDDMIC (1 << 7)
- #define HV_SEL_NCIBIAS (0)
- #define SAR_TRACKGAIN_POS (8)
- #define SAR_TRACKGAIN_MSK (0x7 << SAR_TRACKGAIN_POS)
- #define INPUT_SEL_JKSLV (1 << 11)
- #define INPUT_JKR2 (0)
- #define SAR_ENA (1 << 12)
- #define SAR_OUT_INV (1 << 13)
- // R 14
- #define HY_COEFF(x) (x << 0)
- #define SARADC_VDET_COEFF(x) (x << 4)
- #define ENABLE_LEVEL_KEY0 (0)
- #define ENABLE_LEVEL_KEY1 (1 << 8)
- #define ENABLE_LEVEL_KEY2 (2 << 8)
- #define ENABLE_LEVEL_KEY3 (3 << 8)
- #define ENABLE_LEVEL_KEY4 (4 << 8)
- #define ENABLE_LEVEL_KEY5 (5 << 8)
- #define ENABLE_LEVEL_KEY6 (6 << 8)
- #define ENABLE_LEVEL_KEY7 (7 << 8)
- #define SHORTKEY_DT_30MS (0)
- #define SHORTKEY_DT_50MS (1 << 12)
- #define SHORTKEY_DT_100MS (2 << 13)
- #define LONGKEY_DT_500MS (0)
- #define LONGKEY_DT_1S (1 << 14)
- // R 15/16/17/18
- #define SARADC_VDET_THR_1357_POS (0)
- #define SARADC_VDET_THR_1357_MSK (0xFF << SARADC_VDET_THR_1357_POS)
- #define SARADC_VDET_THR_0246_POS (8)
- #define SARADC_VDET_THR_0246_MSK (0xFF << SARADC_VDET_THR_0246_POS)
- // R 19 REG_GPIO34_CTRL
- #define GPIO3_OE (1 << 0)
- #define GPIO3_DS (1 << 1)
- #define GPIO3_PS (1 << 2)
- #define GPIO3_PE (1 << 3)
- #define GPIO3O (1 << 4)
- #define GPIO4_OE (1 << 7)
- #define GPIO4_DS (1 << 8)
- #define GPIO4_PS (1 << 9)
- #define GPIO4_PE (1 << 10)
- // R 1A REG_GPIO12_CTRL
- #define GPIO1_OE (1 << 0)
- #define GPIO1_PE (1 << 1)
- #define GPIO1_DS (1 << 2)
- #define GPIO1_PS (1 << 3)
- #define GPIO1SEL(x) (x << 4)
- #define GPIO1POL (1 << 7)
- #define GPIO2_OE (1 << 8)
- #define GPIO2_PE (1 << 9)
- #define GPIO2_DS (1 << 10)
- #define GPIO2_PS (1 << 11)
- // R 1B REG_TDM_CTRL
- #define ADC_TX_SEL_SLOT(x) (x << 0)
- #define DAC_RIGHT_SEL_SLOT(x) (x << 4)
- #define DAC_LEFT_SEL_SLOT(x) (x << 6)
- #define PCM_OFFSET_MODE_CTRL (1 << 14)
- #define TDM (1 << 15)
- // R 1C REG_I2S_PCM_CTRL1
- #define AIFMT0_RIGHTJUST (0)
- #define AIFMT0_LEFTJUST (1 << 0)
- #define AIFMT0_STANDI2S (2 << 0)
- #define AIFMT0_PCMA_B (3 << 0)
- #define WLEN0_16BIT (0)
- #define WLEN0_20BIT (1 << 2)
- #define WLEN0_24BIT (2 << 2)
- #define WLEN0_32BIT (3 << 2)
- #define ADCPHS0_LEFT (0)
- #define ADCPHS0_RIGHT (1 << 4)
- #define DACPHS0_LEFT (0)
- #define DACPHS0_RIGHT (1 << 5)
- #define LRP0 (1 << 6)
- #define BCP0 (1 << 7)
- #define UA_OFFSET_1S (0)
- #define UA_OFFSET_2S (1)
- #define CMB8_0_NORMAL (0)
- #define CNB8_0_8BIT (1 << 10)
- #define ADDAP0 (1 << 11)
- #define ADCCM0_ULAW (2 << 12)
- #define ADCCM0_ALAW (3 << 12)
- #define DACCM0_ULAW (2 << 14)
- #define DACCM0_ALAW (3 << 14)
- // R 1D REG_2S_PCM_CTRL2
- #define BLCKDIV_DIV2 (0)
- #define BLCKDIV_DIV4 (1)
- #define BLCKDIV_DIV8 (2)
- #define BLCKDIV_DIV16 (3)
- #define BLCKDIV_DIV32 (4)
- #define BLCKDIV_DIV64 (5)
- #define MS0_SLAVE (0)
- #define MS0_MASTER (1 << 3)
- #define ADCDAT0_OE (1 << 4)
- #define ADCDAT0_PS_PULLUP (1 << 5)
- #define ADCDAT0_PS_PULLDOWN (0)
- #define ADCDAT0_PE (1 << 6)
- #define PCM8BIT0 (1 << 8)
- #define TRI0 (1 << 9)
- #define PCM_TS_EN0 (1 << 10)
- #define LRC_DIV_DIV256 (0)
- #define LRC_DIV_DIV128 (1 << 12)
- #define LRC_DIV_DIV64 (2 << 12)
- #define LRC_DIV_DIV32 (3 << 12)
- #define I2S_DRV (1 << 14)
- #define I2S_TRI (1 << 15)
- // R 1E REG_LEFT_TIME_SLOT
- #define TSLOT_L0_POS (0)
- #define TSLOT_L0_MSK (0x3FF << TSLOT_L0_POS)
- #define DIS_FS_SHORT_DET (1 << 13)
- #define FS_ERR_CMP_SEL_252MCLK (0)
- #define FS_ERR_CMP_SEL_253MCLK (1 << 14)
- #define FS_ERR_CMP_SEL_254MCLK (2 << 14)
- #define FS_ERR_CMP_SEL_255MCLK (3 << 15)
- // R 1F REG_RIGHT_TIME_SLOT
- #define TSLOT_R0_POS (0)
- #define TSLOT_R0_MSK (0x3FF << TSLOT_R0_POS)
- // R 20 REG_BIQ_CTRL
- #define BIQ_PATH_SE_ADC (0)
- #define BIQ_PATH_SE_DAC (1)
- #define BIQ_COF_SE_SYNC_FS (0)
- #define BIQ_COF_SE_NO_SYNC (1 << 1)
- #define ADC_PATH_EN (1 << 2)
- #define DAC_PATH_EN (1 << 3)
- #define BIQ_WRT_EN (1 << 4)
- // R 21 REG_BIQ_COF1
- #define BIQ_A1_L_POS (0)
- #define BIQ_A1_L_MSK (0xFFFF << BIQ_A1_L_POS)
- // R 22 REG_BIQ_COF2
- #define BIQ_A1_H_POS (0)
- #define BIQ_A1_H_MSK (0x7 << BIQ_A1_H_POS)
- // R 23 REG_BIQ_COF3
- #define BIQ_A2_L_POS (0)
- #define BIQ_A2_L_MSK (0xFFFF << BIQ_A2_L_POS)
- // R 24 REG_BIQ_COF4
- #define BIQ_A2_H_POS (0)
- #define BIQ_A2_H_MSK (0x7 << BIQ_A2_H_POS)
- // R 25 REG_BIQ_COF5
- #define BIQ_B0_L_POS (0)
- #define BIQ_B0_L_MSK (0xFFFF << BIQ_B0_L_POS)
- // R 26 REG_BIQ_COF6
- #define BIQ_B0_H_POS (0)
- #define BIQ_B0_H_MSK (0x7 << BIQ_B0_H_POS)
- // R 27 REG_BIQ_COF7
- #define BIQ_B1_L_POS (0)
- #define BIQ_B1_L_MSK (0xFFFF << BIQ_B1_L_POS)
- // R 28 REG_BIQ_COF8
- #define BIQ_B1_H_POS (0)
- #define BIQ_B1_H_MSK (0x7 << BIQ_B1_H_POS)
- // R 29 REG_BIQ_COF9
- #define BIQ_B2_L_POS (0)
- #define BIQ_B2_L_MSK (0xFFFF << BIQ_B2_L_POS)
- // R 2A REG_BIQ_COF10
- #define BIQ_B2_H_POS (0)
- #define BIQ_B2_H_MSK (0x7 << BIQ_B2_H_POS)
- // R 2B REG_ADC_RATE
- #define ADC_RATE_32 (0)
- #define ADC_RATE_64 (1)
- #define ADC_RATE_128 (2)
- #define ADC_RATE_256 (3)
- #define SMPL_RATE_48K (0)
- #define SMPL_RATE_32K (1 << 5)
- #define SMPL_RATE_96K (3 << 5)
- #define SMPL_RATE_192K (7 << 5)
- // R 2C REG_DAC_CTRL1
- #define DAC_RATE_64 (0)
- #define DAC_RATE_256 (1)
- #define DAC_RATE_128 (2)
- #define DAC_RATE_32 (4)
- #define CUC_GAIN_ADJ(x) (x << 4)
- #define DEM_DLY_N (1 << 14)
- #define DISABLE_DEM (1 << 15)
- // R 2D REG_DAC_CTRL2
- #define DACPR_INVERT (1)
- #define DAC_PL_INVERT (1 << 1)
- #define DAC_STEP_SEL_DACCLK (4 << 4)
- #define DAC_STEP_SEL_DLY1_MCLK (5 << 4)
- #define DAC_STEP_SEL_DLY2_MCLK (6 << 4)
- #define DAC_STEP_SEL_DLY3_MCLK (7 << 4)
- #define DSMOD_DITHER(x) (x << 7)
- #define DEM_DITHER(x) (x << 12)
- // R 2F REG_DAC_DGAIN_CTRL
- #define DAC0_TO_DAC1_ST(x) (x << 0)
- #define DAC1_TO_DAC0_ST(x) (x << 8)
- // R 30 REG_ADC_DGAIN_CTRL
- #define DGAINL_ADC0(x) (x)
- #define ADC_TO_DAC_ST1(x) (x << 8)
- #define ADC_TO_DAC_ST0(x) (x << 12)
- // R 31 REG_MUTE_CTRL
- #define ADC_SMUTE_EN (1 << 1)
- #define ADC_ZC_UP_EN (1 << 2)
- #define SMUTE_CTRL (1 << 8)
- #define SMUTE_EN (1 << 9)
- #define AMUTE_CTRL (1 << 10)
- #define AMUTE_EN (1 << 11)
- #define DAC_ZC_UP_EN (1 << 12)
- #define PGA_SMUTE_STEP_128 (0 << 14)
- #define PGA_SMUTE_STEP_32 (1 << 14)
- #define PGA_SMUTE_STEP_16 (2 << 14)
- #define PGA_SMUTE_STEP_1 (3 << 14)
- // R 32 REG_HSVOL_CTRL
- #define HSPGA1_VOL(x) (x << 0)
- #define HSPGA0_VOL(x) (x << 6)
- #define MUTE_HSPGA1 (1 << 12)
- #define MUTE_HSPGA0 (1 << 13)
- #define HSPGA_MUTE_AUTO_MODE (1 << 14)
- #define HSPGA_MUTE_EN (1 << 15)
- // R 33 REG_DACL_CTRL
- #define DGAINL_DAC(x) (x << 0)
- #define DAC_CH_SEL0_LEFT (0)
- #define DAC_CH_SEL0_RIGHT (1 << 9)
- #define DAC_MIXER_L (1 << 14)
- #define DAC_MIXER_R (1 << 15)
- // R 34 REG_DACR_CTRL
- #define DGAINR_DAC(x) (x << 0)
- #define DAC_CH_SEL1_LEFT (0)
- #define DAC_CH_SEL1_RIGHT (1 << 9)
- // R 38 REG_ADC_DRC_KNEE_IP12
- #define DRC_KNEE1_IP_ADC1(x) (x << 0)
- #define DRC_SMTH_ENA_ADC1 (1 << 7)
- #define DRC_KNEE2_IP_ADC1(x) (x << 8)
- #define DRC_ENA_ADC1 (1 << 15)
- // R 39 REG_ADC_DRC_KNEE_IP34
- #define DRC_KNEE3_IP_ADC1(x) (x << 0)
- #define DRC_KNEE4_IP_ADC1(x) (x << 8)
- // R 3A REG_ADC_DRC_SLOPES
- #define DRC_LMT_SLP_ADC1_0 (0)
- #define DRC_LMT_SLP_ADC1_1_2 (1)
- #define DRC_LMT_SLP_ADC1_1_4 (2)
- #define DRC_LMT_SLP_ADC1_1_8 (3)
- #define DRC_LMT_SLP_ADC1_1_16 (4)
- #define DRC_LMT_SLP_ADC1_1_32 (5)
- #define DRC_LMT_SLP_ADC1_1_64 (6)
- #define DRC_LMT_SLP_ADC1_1 (7)
- #define DRC_CMP1_SLP_ADC1_0 (0)
- #define DRC_CMP1_SLP_ADC1_1_2 (1 << 3)
- #define DRC_CMP1_SLP_ADC1_1_4 (2 << 3)
- #define DRC_CMP1_SLP_ADC1_1_8 (3 << 3)
- #define DRC_CMP1_SLP_ADC1_1_16 (4 << 3)
- #define DRC_CMP1_SLP_ADC1_1 (7 << 3)
- #define DRC_CMP2_SLP_ADC1_0 (0)
- #define DRC_CMP2_SLP_ADC1_1_2 (1 << 6)
- #define DRC_CMP2_SLP_ADC1_1_4 (2 << 6)
- #define DRC_CMP2_SLP_ADC1_1_8 (3 << 6)
- #define DRC_CMP2_SLP_ADC1_1_16 (4 << 6)
- #define DRC_CMP2_SLP_ADC1_1 (7 << 6)
- #define DRC_EXP_SLP_ADC1_1_1 (0)
- #define DRC_EXP_SLP_ADC1_2_1 (1 << 9)
- #define DRC_EXP_SLP_ADC1_4_1 (2 << 9)
- #define DRC_NG_SLP_ADC1_1_1 (0)
- #define DRC_NG_SLP_ADC1_2_1 (1 << 12)
- #define DRC_NG_SLP_ADC1_4_1 (2 << 12)
- #define DRC_NG_SLP_ADC1_8_1 (3 << 12)
- // R 3B REG_ADC_DRC_ATKDCY
- #define DRC_DCY_ADC1_63 (0)
- #define DRC_DCY_ADC1_127 (1)
- #define DRC_DCY_ADC1_255 (2)
- #define DRC_DCY_ADC1_511 (3)
- #define DRC_DCY_ADC1_1023 (4)
- #define DRC_DCY_ADC1_2047 (5)
- #define DRC_DCY_ADC1_4095 (6)
- #define DRC_DCY_ADC1_8191 (7)
- #define DRC_DCY_ADC1_16383 (8)
- #define DRC_DCY_ADC1_32757 (9)
- #define DRC_DCY_ADC1_65535 (10)
- #define DRC_ATK_ADC1_x1 (0)
- #define DRC_ATK_ADC1_x3 (1 << 4)
- #define DRC_ATK_ADC1_x7 (2 << 4)
- #define DRC_ATK_ADC1_x15 (3 << 4)
- #define DRC_ATK_ADC1_x31 (4 << 4)
- #define DRC_ATK_ADC1_x63 (5 << 4)
- #define DRC_ATK_ADC1_x127 (6 << 4)
- #define DRC_ATK_ADC1_x255 (7 << 4)
- #define DRC_ATK_ADC1_x511 (8 << 4)
- #define DRC_ATK_ADC1_x1023 (9 << 4)
- #define DRC_ATK_ADC1_x2047 (10 << 4)
- #define DRC_ATK_ADC1_x4095 (11 << 4)
- #define DRC_ATK_ADC1_x8191 (12 << 4)
- #define DRC_PK_COEF2_ADC1_63 (0)
- #define DRC_PK_COEF2_ADC1_127 (1 << 8)
- #define DRC_PK_COEF2_ADC1_255 (2 << 8)
- #define DRC_PK_COEF2_ADC1_511 (3 << 8)
- #define DRC_PK_COEF2_ADC1_1023 (4 << 8)
- #define DRC_PK_COEF2_ADC1_2047 (5 << 8)
- #define DRC_PK_COEF2_ADC1_4095 (6 << 8)
- #define DRC_PK_COEF2_ADC1_8191 (7 << 8)
- #define DRC_PK_COEF1_ADC1_x1 (0)
- #define DRC_PK_COEF1_ADC1_x3 (1 << 12)
- #define DRC_PK_COEF1_ADC1_x7 (2 << 12)
- #define DRC_PK_COEF1_ADC1_x15 (3 << 12)
- #define DRC_PK_COEF1_ADC1_x31 (4 << 12)
- #define DRC_PK_COEF1_ADC1_x63 (5 << 12)
- #define DRC_PK_COEF1_ADC1_x127 (6 << 12)
- #define DRC_PK_COEF1_ADC1_x255 (7 << 12)
- // R 45 REG_DAC_DRC_KNEE_IP12
- #define DRC_KNEE1_IP_DAC(x) (x)
- #define DRC_SMTH_ENA_DAC (1 << 7)
- #define DRC_KNEE2_IP_DAC(x) (x << 8)
- #define DRC_ENA_DAC (1 << 15)
- // R 46 REG_DAC_DRC_KNEE_IP34
- #define DRC_KNEE3_IP_DAC(x) (x)
- #define DRC_KNEE4_IP_DAC(x) (x << 8)
- // R 47 REG_DAC_DRC_SLOPES
- #define DRC_LMT_SLP_DAC_0 (0)
- #define DRC_LMT_SLP_DAC_1_2 (1)
- #define DRC_LMT_SLP_DAC_1_4 (2)
- #define DRC_LMT_SLP_DAC_1_8 (3)
- #define DRC_LMT_SLP_DAC_1_16 (4)
- #define DRC_LMT_SLP_DAC_1_32 (5)
- #define DRC_LMT_SLP_DAC_1_64 (6)
- #define DRC_LMT_SLP_DAC_1_1 (7)
- #define DRC_CMP1_SLP_DAC_0 (0)
- #define DRC_CMP1_SLP_DAC_1_2 (1 << 3)
- #define DRC_CMP1_SLP_DAC_1_4 (2 << 3)
- #define DRC_CMP1_SLP_DAC_1_8 (3 << 3)
- #define DRC_CMP1_SLP_DAC_1_16 (4 << 3)
- #define DRC_CMP1_SLP_DAC_1 (7 << 3)
- #define DRC_CMP2_SLP_DAC_0 (0)
- #define DRC_CMP2_SLP_DAC_1_2 (1 << 6)
- #define DRC_CMP2_SLP_DAC_1_4 (2 << 6)
- #define DRC_CMP2_SLP_DAC_1_8 (3 << 6)
- #define DRC_CMP2_SLP_DAC_1_16 (4 << 6)
- #define DRC_CMP2_SLP_DAC_1 (7 << 6)
- #define DRC_EXP_SLP_DAC_1_1 (0)
- #define DRC_EXP_SLP_DAC_2_1 (1 << 9)
- #define DRC_EXP_SLP_DAC_4_1 (2 << 9)
- #define DRC_EXP_SLP_DAC_8_1 (3 << 9)
- #define DRC_NG_SLP_DAC_1_1 (0)
- #define DRC_NG_SLP_DAC_2_1 (1 << 12)
- #define DRC_NG_SLP_DAC_4_1 (2 << 12)
- #define DRC_NG_SLP_DAC_8_1 (3 << 12)
- // R 48 REG_DAC_DRC_ATKDCY
- #define DRC_DCY_DAC_63 (0)
- #define DRC_DCY_DAC_127 (1)
- #define DRC_DCY_DAC_255 (2)
- #define DRC_DCY_DAC_511 (3)
- #define DRC_DCY_DAC_1023 (4)
- #define DRC_DCY_DAC_2047 (5)
- #define DRC_DCY_DAC_4095 (6)
- #define DRC_DCY_DAC_8191 (7)
- #define DRC_DCY_DAC_16383 (8)
- #define DRC_DCY_DAC_32757 (9)
- #define DRC_DCY_DAC_65535 (10)
- #define DRC_ATK_DAC_x1 (0)
- #define DRC_ATK_DAC_x3 (1 << 4)
- #define DRC_ATK_DAC_x7 (2 << 4)
- #define DRC_ATK_DAC_x15 (3 << 4)
- #define DRC_ATK_DAC_x31 (4 << 4)
- #define DRC_ATK_DAC_x63 (5 << 4)
- #define DRC_ATK_DAC_x127 (6 << 4)
- #define DRC_ATK_DAC_x255 (7 << 4)
- #define DRC_ATK_DAC_x511 (8 << 4)
- #define DRC_ATK_DAC_x1023 (9 << 4)
- #define DRC_ATK_DAC_x2047 (10 << 4)
- #define DRC_ATK_DAC_x4095 (11 << 4)
- #define DRC_ATK_DAC_x8191 (12 << 4)
- #define DRC_PK_COEF2_DAC_63 (0)
- #define DRC_PK_COEF2_DAC_127 (1 << 8)
- #define DRC_PK_COEF2_DAC_255 (2 << 8)
- #define DRC_PK_COEF2_DAC_511 (3 << 8)
- #define DRC_PK_COEF2_DAC_1023 (4 << 8)
- #define DRC_PK_COEF2_DAC_2047 (5 << 8)
- #define DRC_PK_COEF2_DAC_4095 (6 << 8)
- #define DRC_PK_COEF2_DAC_8191 (7 << 8)
- #define DRC_PK_COEF1_DAC_x1 (0)
- #define DRC_PK_COEF1_DAC_x3 (1 << 12)
- #define DRC_PK_COEF1_DAC_x7 (2 << 12)
- #define DRC_PK_COEF1_DAC_x15 (3 << 12)
- #define DRC_PK_COEF1_DAC_x31 (4 << 12)
- #define DRC_PK_COEF1_DAC_x63 (5 << 12)
- #define DRC_PK_COEF1_DAC_x127 (6 << 12)
- #define DRC_PK_COEF1_DAC_x255 (7 << 12)
- // R 4C REG_MODE_CTRL
- #define DACIN_SRC_DAC_BIQUAD (0)
- #define DACIN_SRC_DRC_DAC (1)
- #define DACIN_SRC_DAC_MIXER (2)
- #define DACIN_SRC_BUILDIN_SINE (3)
- #define DACIN_SRC_DRC_LAW_DECODE (4)
- // R 50 REG_CLASSG_CTRL
- #define CLASSG_EN (1)
- #define CLASSG_CMP_EN_L_DAC (1 << 1)
- #define CLASSG_CMP_EN_R_DAC (1 << 2)
- #define CLASSG_THRSLD_1_16 (0)
- #define CLASSG_THRSLD_1_8 (1 << 4)
- #define CLASSG_THRSLD_3_16 (2 << 4)
- #define CLASSG_THRSLD_1_4 (3 << 4)
- #define CLASSG_TIMER_1MS (1 << 8)
- #define CLASSG_TIMER_2MS (2 << 8)
- #define CLASSG_TIMER_8MS (4 << 8)
- #define CLASSG_TIMER_16MS (8 << 8)
- #define CLASSG_TIMER_32MS (16 << 8)
- #define CLASSG_TIMER_64MS (32 << 8)
- #define CLASSG_CLK_SRC_2M (0)
- #define CLASSG_CLK_SRC_1_3MCLK (1 << 14)
- #define CLASSG_CLK_SRC_MCLK (2 << 14)
- #define CLASSG_CLK_SRC_DISABLE_CLK (3 << 14)
- // R 51 REG_OPT_EFU
- #define WL_BIN_POS (0)
- #define WL_BIN_MSK (0x3F << WL_BIN_POS)
- #define STROBE_IN (1 << 6)
- #define PGEN_IN (1 << 7)
- #define NR_IN (1 << 8)
- #define STANDBY_IN (1 << 15)
- // R 55 REG_MISC_CTRL
- #define D2A_LOOP (1 << 1)
- #define RAM_TEST_START (1 << 3)
- #define SPIEN (1 << 15)
- #define I2CEN (0)
- // R 58 REG_I2C_DEVICE_ID
- #define Software_ID (0x3)
- #define Silicon_Revision_ID (0x7 << 2)
- #define JKDETL (0x1 << 5)
- #define GPIO3JD2 (0x1 << 6)
- #define GPIO2JD1 (0x1 << 7)
- #define I2C_DEVICE_ID (0x3F << 9)
- // R 59 REG_SARDOUT_RAM_STATUS
- #define SARADC_DOUT (0xff)
- #define ANALOG_MUTE (0x1 << 10)
- #define RAM_TEST_FAIL (0x3 << 11)
- #define RATM_TEST_FINISH (0x1 << 13)
- // R 66 REG_BIAS_ADJ
- #define BIASADJ_NORMAL (0x0)
- #define BIASADJ_9 (0x1 << 0)
- #define BIASADJ_17 (0x2 << 0)
- #define BIASADJ_11 (0x3 << 0)
- #define VMIDSEL_OPEN (0x0 << 4)
- #define VMIDSEL_25K_OHM (0x1 << 4)
- #define VMIDSEL_125K_OHM (0x2 << 4)
- #define VMIDSEL_2P5K_OHM (0x3 << 4)
- #define VMIDEN (0x1 << 6)
- #define MUTEL (0x1 << 13)
- // R 68 REG_TRIM_SETTINGS
- #define DIS_OC_RIGHT (0x2)
- #define DIS_OC_LEFT (0x4)
- #define INTEG_ICUTHS (0x1 << 8)
- #define INTEG_IBCTRHS (0x1 << 9)
- #define DRV_ICUTHS (0x1 << 14)
- #define DRV_IBCTRHS (0x1 << 15)
- // R 69 REG_ANALOG_CONTROL_1
- #define ENJKDETL (0x1 << 0)
- #define JKDETLPOL (0x1 << 1)
- #define JD1POL (0x1 << 2)
- #define GPIO2THH_P85x (0x0)
- #define GPIO2THH_P78x (0x2 << 4)
- #define GPIO2THH_P6x (0x3 << 4)
- #define GPIO2THL_P22x (0x0)
- #define GPIO2THL_P4x (0x2 << 6)
- #define GPIO2THL_P5x (0x3 << 6)
- #define Pullup_GPIO2_1M (0x0)
- #define Pullup_GPIO2_100K (0x1 << 8)
- #define GPIO3THH_P85x (0x0)
- #define GPIO3THH_P78x (0x2 << 9)
- #define GPIO3THH_P6x (0x3 << 9)
- #define GPIO3THL_P22x (0x0)
- #define GPIO3THL_P4x (0x2 << 11)
- #define GPIO3THL_P5x (0x3 << 11)
- #define Pullup_GPIO3_1M (0x0)
- #define Pullup_GPIO3_100K (0x1 << 13)
- // R 6A REG_ANALOG_CONTROL_2
- #define CAP_0 (0x1)
- #define CAP_1 (0x1 << 1)
- #define MUTEMICN (0x1 << 2)
- #define MUTEMICP (0x1 << 3)
- #define AB_ADJ (0x1 << 7)
- // R 71 REG_ANALOG_ADC_1
- #define CHOPF0_DIV2 (0)
- #define CHOPF0_DIV4 (0x1 << 0)
- #define CHOPF0_DIV8 (0x2 << 0)
- #define CHOPF0_DIV16 (0x3 << 0)
- #define CHOPORDER (0x1 << 2)
- #define CHOPFIXED (0x1 << 3)
- #define CHOPRESETN (0x1 << 4)
- #define CHOPPHASE (0x1 << 5)
- #define CHOPENABLE (0x1 << 6)
- #define RESETL (0x1 << 8)
- // R 72 REG_ANALOG_ADC_2
- #define MON4TH (0x1 << 0)
- #define MON3RD (0x1 << 1)
- #define MON2ND (0x1 << 2)
- #define MON1ST (0x1 << 3)
- #define MONADD (0x1 << 4)
- #define LFSRRESETN (0x1 << 5)
- #define PDNOTL (0x1 << 6)
- #define VREFSEL_ANALOG (0x0 << 8)
- #define VREFSEL_VMIDE (0x1 << 8)
- #define VREFSEL_VMIDE_P5DB (0x2 << 8)
- #define VREFSEL_ANALOG_1DB (0x3 << 8)
- #define BIAS_NORMAL (0x0 << 10)
- #define BIAS_BOUBLE (0x1 << 10)
- #define BIAS_HALF (0x2 << 10)
- #define BIAS_QUARTER (0x3 << 10)
- #define ADC_UPL (0x1 << 13)
- // R 73 REG_RDAC
- #define DACVREFSEL(x) (x << 2)
- #define CLK_DAC_DELAY_0NSEC (0)
- #define CLK_DAC_DELAY_1NSEC (0x1 << 4)
- #define CLK_DAC_DELAY_2NSEC (0x2 << 4)
- #define CLK_DAC_DELAY_3NSEC (0x3 << 4)
- #define CLK_DAC_DELAY_4NSEC (0x4 << 4)
- #define CLK_DAC_DELAY_N3NSEC (0x5 << 4)
- #define CLK_DAC_DELAY_N2NSEC (0x6 << 4)
- #define CLK_DAC_DELAY_N1NSEC (0x7 << 4)
- #define FC_CTR (0x1 << 7)
- #define CLK_DAC_EN_R (0x1 << 9)
- #define CLK_DAC_EN_L (0x1 << 8)
- #define DAC_EN_R (0x1 << 13)
- #define DAC_EN_L (0x1 << 12)
- #define FS_BCLK_ENB (0x1 << 15)
- // R 74 REG_MIC_BIAS
- #define MICBIASLVL1_VDDA (0)
- #define MICBIASLVL1_1x (0x1 << 0)
- #define MICBIASLVL1_1P1x (0x2 << 0)
- #define MICBIASLVL1_1P2x (0x3 << 0)
- #define MICBIASLVL1_1P3x (0x4 << 0)
- #define MICBIASLVL1_1P4x (0x5 << 0)
- #define MICBIASLVL1_1P53x (0x6 << 0)
- #define NOCAP (0x1 << 6)
- #define POWERUP (0x1 << 8)
- #define LOWNOISE (0x1 << 10)
- #define INT2KA (0x1 << 12)
- #define INT2KB (0x1 << 14)
- // R 76 REG_BOOST
- #define NAMP_THRSHLD(x) (x << 0)
- #define PAMP_THRSHLD(x) (x << 2)
- #define HS_SHRT_THRESHLD(x) (x << 4)
- #define EN_SHRT_SHTDWN (0x1 << 6)
- #define SHRT_SHTDWN_DIG_EN (0x1 << 7)
- #define BOOSTGDIS (0x1 << 8)
- #define BOOSTDIS (0x1 << 9)
- #define BYPS_IBCTR (0x1 << 10)
- #define DISCHRG (0x1 << 11)
- #define BIASEN (0x1 << 12)
- #define PDVMDFST (0x1 << 13)
- #define STG2_SEL (0x1 << 14)
- #define CLR_APR_EMRGENCY_SHTDWN (0x1 << 15)
- // R 77 REG_FEPGA
- #define FEPGA_MODEL_ANIT_ALIASING (0x1 << 0)
- #define FEPGA_MODEL_DISCONNECT_MICPN (0x1 << 1)
- #define FEPGA_MODEL_12KOHM_SHORT (0x1 << 3)
- #define IBCTR_CODE(x) (x << 8)
- #define IB_LOOP_CTR (0x1 << 11)
- #define CMLCK_ADJ(x) (x << 12)
- #define ACDC_CTRL_MICP_VREF (0x1 << 14)
- #define ACDC_CTRL_MICN_VREF (0x1 << 15)
- // R 7F REG_POWER_UP_CONTROL
- #define PUP_MAIN_DRV_LEFT_HP (0x1 << 0)
- #define PUP_MAIN_DRV_RIGHT_HP (0x1 << 1)
- #define PUP_DRV_INSTG_LEFT_HP (0x1 << 2)
- #define PUP_DRV_INSTG_RIGHT_HP (0x1 << 3)
- #define PUP_INTEG_LEFT_HP (0x1 << 4)
- #define PUP_INTEG_RIGHT_HP (0x1 << 5)
- #define FEPGA_GAIN(x) (x << 8)
- #define PUFEPGA (0x1 << 14)
- // R 80 REG_CHARGE_PUMP_AND_POWER_DOWN_CONTROL
- #define SHCIRSEL1_HIGH (0x1)
- #define SHCIRSEL1_LOW (0)
- #define SHCIRSEL2_HIGH (0x1 << 1)
- #define SHCIRSEL2_LOW (0)
- #define DISCHARGEVPOS (0x1 << 2)
- #define DISCHARGEVEE (0x1 << 3)
- #define PRECHARGE (0x1 << 4)
- #define RNIN (0x1 << 5)
- #define JAMFORCE1 (0x1 << 6)
- #define JAMFORCE2 (0x1 << 7)
- #define PD_DAC_ENABLE (0x3 << 8)
- #define JAMNODCLOW (0x1 << 10)
- #define ADCDAT_DS (0x1 << 12)
- #define FS_DS (0x1 << 13)
- #define BCLK_DS (0x1 << 14)
- // R 81 REG_CHARGE_PUMP_INPUT_READ
- #define FORCE1BUF (0x1 << 0)
- #define VCOMPBUF (0x1 << 1)
- #define VPOSOK (0x1 << 2)
- #define RN2BUF (0x1 << 3)
- #define NODCBUF (0x1 << 4)
- #define MODE1BUF (0x1 << 5)
- #define APR_EMRGNCY_SHTDWN (0x1 << 15)
- // R 82 REG_GENERAL_STATUS
- #define GPIO1_IN (0x1 << 0)
- #define GPIO2_IN (0x1 << 1)
- #define GPIO3_IN (0x1 << 2)
- #define GPIO4_IN (0x1 << 3)
- #define JKDETL1 (0x1 << 4)
- #define JKDET_ON (0x1 << 5)
- #define JK_INSERT_INTR (0x1 << 6)
- #define JK_EJECT_INTR (0x1 << 7)
- #define OUT1 (0x1 << 8)
- #define OUT2 (0x1 << 9)
- #define OUT1_OUT (0x1 << 10)
- #define OUT2_OUT (0x1 << 11)
- typedef struct
- {
- char *i2c_bus_name;
- char *i2s_bus_name;
- rt_int32_t pin_phonejack_en;
- rt_int32_t pin_phonejack_det;
- } S_NU_NAU88L25_CONFIG;
- int nu_hw_nau88l25_init(S_NU_NAU88L25_CONFIG *psCodecConfig);
- #endif /* __ACODEC_NAU88L25_H__ */
|