brintos

brintos / linux-shallow public Read only

0
0
Text · 3.2 KiB · 0ff16f9 Raw
136 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright Everest Semiconductor Co.,Ltd4 *5 * Author: David Yang <yangxiaohua@everest-semi.com>6 */7 8#ifndef _ES8316_H9#define _ES8316_H10 11/*12 * ES8316 register space13 */14 15/* Reset Control */16#define ES8316_RESET		0x0017 18/* Clock Management */19#define ES8316_CLKMGR_CLKSW	0x0120#define ES8316_CLKMGR_CLKSEL	0x0221#define ES8316_CLKMGR_ADCOSR	0x0322#define ES8316_CLKMGR_ADCDIV1	0x0423#define ES8316_CLKMGR_ADCDIV2	0x0524#define ES8316_CLKMGR_DACDIV1	0x0625#define ES8316_CLKMGR_DACDIV2	0x0726#define ES8316_CLKMGR_CPDIV	0x0827 28/* Serial Data Port Control */29#define ES8316_SERDATA1		0x0930#define ES8316_SERDATA_ADC	0x0a31#define ES8316_SERDATA_DAC	0x0b32 33/* System Control */34#define ES8316_SYS_VMIDSEL	0x0c35#define ES8316_SYS_PDN		0x0d36#define ES8316_SYS_LP1		0x0e37#define ES8316_SYS_LP2		0x0f38#define ES8316_SYS_VMIDLOW	0x1039#define ES8316_SYS_VSEL		0x1140#define ES8316_SYS_REF		0x1241 42/* Headphone Mixer */43#define ES8316_HPMIX_SEL	0x1344#define ES8316_HPMIX_SWITCH	0x1445#define ES8316_HPMIX_PDN	0x1546#define ES8316_HPMIX_VOL	0x1647 48/* Charge Pump Headphone driver */49#define ES8316_CPHP_OUTEN	0x1750#define ES8316_CPHP_ICAL_VOL	0x1851#define ES8316_CPHP_PDN1	0x1952#define ES8316_CPHP_PDN2	0x1a53#define ES8316_CPHP_LDOCTL	0x1b54 55/* Calibration */56#define ES8316_CAL_TYPE		0x1c57#define ES8316_CAL_SET		0x1d58#define ES8316_CAL_HPLIV	0x1e59#define ES8316_CAL_HPRIV	0x1f60#define ES8316_CAL_HPLMV	0x2061#define ES8316_CAL_HPRMV	0x2162 63/* ADC Control */64#define ES8316_ADC_PDN_LINSEL	0x2265#define ES8316_ADC_PGAGAIN	0x2366#define ES8316_ADC_D2SEPGA	0x2467#define ES8316_ADC_DMIC		0x2568#define ES8316_ADC_MUTE		0x2669#define ES8316_ADC_VOLUME	0x2770#define ES8316_ADC_ALC1		0x2971#define ES8316_ADC_ALC2		0x2a72#define ES8316_ADC_ALC3		0x2b73#define ES8316_ADC_ALC4		0x2c74#define ES8316_ADC_ALC5		0x2d75#define ES8316_ADC_ALC_NG	0x2e76 77/* DAC Control */78#define ES8316_DAC_PDN		0x2f79#define ES8316_DAC_SET1		0x3080#define ES8316_DAC_SET2		0x3181#define ES8316_DAC_SET3		0x3282#define ES8316_DAC_VOLL		0x3383#define ES8316_DAC_VOLR		0x3484 85/* GPIO */86#define ES8316_GPIO_SEL		0x4d87#define ES8316_GPIO_DEBOUNCE	0x4e88#define ES8316_GPIO_FLAG	0x4f89 90/* Test mode */91#define ES8316_TESTMODE		0x5092#define ES8316_TEST1		0x5193#define ES8316_TEST2		0x5294#define ES8316_TEST3		0x5395 96/*97 * Field definitions98 */99 100/* ES8316_RESET */101#define ES8316_RESET_CSM_ON		0x80102 103/* ES8316_CLKMGR_CLKSW */104#define ES8316_CLKMGR_CLKSW_MCLK_ON	0x40105#define ES8316_CLKMGR_CLKSW_BCLK_ON	0x20106 107/* ES8316_SERDATA1 */108#define ES8316_SERDATA1_MASTER		0x80109#define ES8316_SERDATA1_BCLK_INV	0x20110 111/* ES8316_SERDATA_ADC and _DAC */112#define ES8316_SERDATA2_FMT_MASK	0x3113#define ES8316_SERDATA2_FMT_I2S		0x00114#define ES8316_SERDATA2_FMT_LEFTJ	0x01115#define ES8316_SERDATA2_FMT_RIGHTJ	0x02116#define ES8316_SERDATA2_FMT_PCM		0x03117#define ES8316_SERDATA2_ADCLRP		0x20118#define ES8316_SERDATA2_LEN_MASK	0x1c119#define ES8316_SERDATA2_LEN_24		0x00120#define ES8316_SERDATA2_LEN_20		0x04121#define ES8316_SERDATA2_LEN_18		0x08122#define ES8316_SERDATA2_LEN_16		0x0c123#define ES8316_SERDATA2_LEN_32		0x10124 125/* ES8316_GPIO_DEBOUNCE	*/126#define ES8316_GPIO_ENABLE_INTERRUPT		0x02127 128/* ES8316_GPIO_FLAG */129#define ES8316_GPIO_FLAG_GM_NOT_SHORTED		0x02130#define ES8316_GPIO_FLAG_HP_NOT_INSERTED	0x04131 132/* ES8316_CLKMGR_CLKSW */133#define ES8316_CLKMGR_CLKSW_MCLK_DIV	0x80134 135#endif136