201 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * es8326.h -- es8326 ALSA SoC audio driver4 * Copyright Everest Semiconductor Co.,Ltd5 *6 * Authors: David Yang <yangxiaohua@everest-semi.com>7 */8 9#ifndef _ES8326_H10#define _ES8326_H11 12/* ES8326 register space */13#define ES8326_RESET 0x0014#define ES8326_CLK_CTL 0x0115#define ES8326_CLK_INV 0x0216#define ES8326_CLK_RESAMPLE 0x0317#define ES8326_CLK_DIV1 0x0418#define ES8326_CLK_DIV2 0x0519#define ES8326_CLK_DLL 0x0620#define ES8326_CLK_MUX 0x0721#define ES8326_CLK_ADC_SEL 0x0822#define ES8326_CLK_DAC_SEL 0x0923#define ES8326_CLK_ADC_OSR 0x0a24#define ES8326_CLK_DAC_OSR 0x0b25#define ES8326_CLK_DIV_CPC 0x0c26#define ES8326_CLK_DIV_BCLK 0x0d27#define ES8326_CLK_TRI 0x0e28#define ES8326_CLK_DIV_LRCK 0x0f29#define ES8326_CLK_VMIDS1 0x1030#define ES8326_CLK_VMIDS2 0x1131#define ES8326_CLK_CAL_TIME 0x1232#define ES8326_FMT 0x1333 34#define ES8326_DAC_MUTE 0x1435#define ES8326_ADC_MUTE 0x1536#define ES8326_ANA_PDN 0x1637#define ES8326_PGA_PDN 0x1738#define ES8326_VMIDSEL 0x1839#define ES8326_ANA_LP 0x1940#define ES8326_ANA_DMS 0x1a41#define ES8326_ANA_MICBIAS 0x1b42#define ES8326_ANA_VSEL 0x1c43#define ES8326_SYS_BIAS 0x1d44#define ES8326_BIAS_SW1 0x1e45#define ES8326_BIAS_SW2 0x1f46#define ES8326_BIAS_SW3 0x2047#define ES8326_BIAS_SW4 0x2148#define ES8326_VMIDLOW 0x2249#define ES8326_PGAGAIN 0x2350#define ES8326_HP_DRIVER 0x2451#define ES8326_DAC2HPMIX 0x2552#define ES8326_HP_VOL 0x2653#define ES8326_HP_CAL 0x2754#define ES8326_HP_DRIVER_REF 0x2855#define ES8326_ADC_SCALE 0x2956#define ES8326_ADC1_SRC 0x2a57#define ES8326_ADC2_SRC 0x2b58#define ES8326_ADC1_VOL 0x2c59#define ES8326_ADC2_VOL 0x2d60#define ES8326_ADC_RAMPRATE 0x2e61#define ES8326_ALC_RECOVERY 0x3262#define ES8326_ALC_LEVEL 0x3363#define ES8326_ADC_HPFS1 0x3464#define ES8326_ADC_HPFS2 0x3565#define ES8326_ADC_EQ 0x3666#define ES8326_HP_OFFSET_CAL 0x4A67#define ES8326_HPL_OFFSET_INI 0x4B68#define ES8326_HPR_OFFSET_INI 0x4C69#define ES8326_DAC_DSM 0x4D70#define ES8326_DAC_RAMPRATE 0x4E71#define ES8326_DAC_VPPSCALE 0x4F72#define ES8326_DACL_VOL 0x5073#define ES8326_DRC_RECOVERY 0x5374#define ES8326_DRC_WINSIZE 0x5475#define ES8326_DAC_CROSSTALK 0x5576#define ES8326_HPJACK_TIMER 0x5677#define ES8326_HPDET_TYPE 0x5778#define ES8326_INT_SOURCE 0x5879#define ES8326_INTOUT_IO 0x5980#define ES8326_SDINOUT1_IO 0x5A81#define ES8326_SDINOUT23_IO 0x5B82#define ES8326_JACK_PULSE 0x5C83 84#define ES8326_DACR_VOL 0xF485#define ES8326_SPKL_VOL 0xF586#define ES8326_SPKR_VOL 0xF687#define ES8326_HP_MISC 0xF788#define ES8326_CTIA_OMTP_STA 0xF889#define ES8326_PULLUP_CTL 0xF990#define ES8326_CSM_I2C_STA 0xFA91#define ES8326_HPDET_STA 0xFB92#define ES8326_CSM_MUTE_STA 0xFC93#define ES8326_CHIP_ID1 0xFD94#define ES8326_CHIP_ID2 0xFE95#define ES8326_CHIP_VERSION 0xFF96 97/* ES8326_RESET */98#define ES8326_CSM_ON (1 << 7)99#define ES8326_MASTER_MODE_EN (1 << 6)100#define ES8326_PWRUP_SEQ_EN (1 << 5)101#define ES8326_CODEC_RESET (0x0f << 0)102#define ES8326_CSM_OFF (0 << 7)103#define ES8326_MUTE_MASK (3 << 0)104#define ES8326_MUTE (3 << 0)105 106/* ES8326_CLK_CTL */107#define ES8326_CLK_ON (0x7f << 0)108#define ES8326_CLK_OFF (0 << 0)109 110/* ES8326_CLK_INV */111#define ES8326_BCLK_AS_MCLK (1 << 3)112 113/* ES8326_FMT */114#define ES8326_S24_LE (0 << 2)115#define ES8326_S20_3_LE (1 << 2)116#define ES8326_S18_LE (2 << 2)117#define ES8326_S16_LE (3 << 2)118#define ES8326_S32_LE (4 << 2)119#define ES8326_DATA_LEN_MASK (7 << 2)120 121#define ES8326_DAIFMT_MASK ((1 << 5) | (3 << 0))122#define ES8326_DAIFMT_I2S 0123#define ES8326_DAIFMT_LEFT_J (1 << 0)124#define ES8326_DAIFMT_DSP_A (3 << 0)125#define ES8326_DAIFMT_DSP_B ((1 << 5) | (3 << 0))126 127/* ES8326_PGAGAIN */128#define ES8326_MIC_SEL_MASK (3 << 4)129#define ES8326_MIC1_SEL (1 << 4)130#define ES8326_MIC2_SEL (1 << 5)131 132/* ES8326_HP_CAL */133#define ES8326_HP_OFF 0134#define ES8326_HP_FORCE_CAL ((1 << 7) | (1 << 3))135#define ES8326_HP_ON ((7 << 4) | (7 << 0))136 137/* ES8326_ADC1_SRC */138#define ES8326_ADC1_SHIFT 0139#define ES8326_ADC2_SHIFT 4140#define ES8326_ADC_SRC_ANA 0141#define ES8326_ADC_SRC_ANA_INV_SW0 1142#define ES8326_ADC_SRC_ANA_INV_SW1 2143#define ES8326_ADC_SRC_DMIC_MCLK 3144#define ES8326_ADC_SRC_DMIC_SDIN2 4145#define ES8326_ADC_SRC_DMIC_SDIN2_INV 5146#define ES8326_ADC_SRC_DMIC_SDIN3 6147#define ES8326_ADC_SRC_DMIC_SDIN3_INV 7148 149#define ES8326_ADC_AMIC ((ES8326_ADC_SRC_ANA_INV_SW1 << ES8326_ADC2_SHIFT) \150 | (ES8326_ADC_SRC_ANA_INV_SW1 << ES8326_ADC1_SHIFT))151#define ES8326_ADC_DMIC ((ES8326_ADC_SRC_DMIC_SDIN2 << ES8326_ADC2_SHIFT) \152 | (ES8326_ADC_SRC_DMIC_SDIN2 << ES8326_ADC1_SHIFT))153/* ES8326_ADC2_SRC */154#define ES8326_ADC3_SHIFT 0155#define ES8326_ADC4_SHIFT 3156 157/* ES8326_HPDET_TYPE */158#define ES8326_HP_DET_SRC_PIN27 (1 << 5)159#define ES8326_HP_DET_SRC_PIN9 (1 << 4)160#define ES8326_HP_DET_JACK_POL (1 << 3)161#define ES8326_HP_DET_BUTTON_POL (1 << 2)162#define ES8326_HP_TYPE_OMTP (3 << 0)163#define ES8326_HP_TYPE_CTIA (2 << 0)164#define ES8326_HP_TYPE_AUTO (1 << 0)165#define ES8326_HP_TYPE_AUTO_INV (0 << 0)166 167/* ES8326_INT_SOURCE */168#define ES8326_INT_SRC_DAC_MOZ (1 << 0)169#define ES8326_INT_SRC_ADC_MOZ (1 << 1)170#define ES8326_INT_SRC_BUTTON (1 << 2)171#define ES8326_INT_SRC_PIN9 (1 << 3)172#define ES8326_INT_SRC_PIN27 (1 << 4)173 174/* ES8326_SDINOUT1_IO */175#define ES8326_IO_INPUT (0 << 0)176#define ES8326_IO_SDIN_SLOT0 (1 << 0)177#define ES8326_IO_SDIN_SLOT1 (2 << 0)178#define ES8326_IO_SDIN_SLOT2 (3 << 0)179#define ES8326_IO_SDIN_SLOT7 (8 << 0)180#define ES8326_IO_DMIC_CLK (9 << 0)181#define ES8326_IO_DMIC_CLK_INV (0x0a << 0)182#define ES8326_IO_SDOUT2 (0x0b << 0)183#define ES8326_IO_LOW (0x0e << 0)184#define ES8326_IO_HIGH (0x0f << 0)185#define ES8326_ADC2DAC (1 << 3)186#define ES8326_SDINOUT1_SHIFT 4187 188/* ES8326_SDINOUT23_IO */189#define ES8326_SDINOUT2_SHIFT 4190#define ES8326_SDINOUT3_SHIFT 0191 192/* ES8326_HPDET_STA */193#define ES8326_HPINSERT_FLAG (1 << 1)194#define ES8326_HPBUTTON_FLAG (1 << 0)195 196/* ES8326_CHIP_VERSION 0xFF */197#define ES8326_VERSION (1 << 0)198#define ES8326_VERSION_B (3 << 0)199 200#endif201