96 lines
2.5 KiB
C
96 lines
2.5 KiB
C
/*
|
|
* ALSA SoC ES7202 pdm adc driver
|
|
*
|
|
* Author: David Yang, <yangxiaohua@everest-semi.com>
|
|
* Copyright: (C) 2020 Everest Semiconductor Co Ltd.,
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
*/
|
|
|
|
#ifndef _ES7202_H
|
|
#define _ES7202_H
|
|
|
|
/* ES7202 register space */
|
|
#define ES7202_RESET_REG00 0x00
|
|
#define ES7202_SOFT_MODE_REG01 0x01
|
|
#define ES7202_CLK_DIV_REG02 0x02
|
|
#define ES7202_CLK_EN_REG03 0x03
|
|
#define ES7202_T1_VMID_REG04 0x04
|
|
#define ES7202_T2_VMID_REG05 0x05
|
|
#define ES7202_CHIP_STA_REG06 0x06
|
|
#define ES7202_PDM_INF_CTL_REG07 0x07
|
|
#define ES7202_MISC_CTL_REG08 0x08
|
|
#define ES7202_ANALOG_EN_REG10 0x10
|
|
#define ES7202_BIAS_VMID_REG11 0x11
|
|
#define ES7202_PGA1_BIAS_REG12 0x12
|
|
#define ES7202_PGA2_BIAS_REG13 0x13
|
|
#define ES7202_MOD1_BIAS_REG14 0x14
|
|
#define ES7202_MOD2_BIAS_REG15 0x15
|
|
#define ES7202_VREFP_BIAS_REG16 0x16
|
|
#define ES7202_VMMOD_BIAS_REG17 0x17
|
|
#define ES7202_MODS_BIAS_REG18 0x18
|
|
#define ES7202_ANALOG_LP1_REG19 0x19
|
|
#define ES7202_ANALOG_LP2_REG1A 0x1A
|
|
#define ES7202_ANALOG_MISC1_REG1B 0x1B
|
|
#define ES7202_ANALOG_MISC2_REG1C 0x1C
|
|
#define ES7202_PGA1_REG1D 0x1D
|
|
#define ES7202_PGA2_REG1E 0x1E
|
|
|
|
/* ES7202 User Marco define */
|
|
#define VDD_1V8 0
|
|
#define VDD_3V3 1
|
|
#define MAX_VOLTAGE_1_8 1980000
|
|
|
|
/*
|
|
* Select Microphone channels for mic array
|
|
*/
|
|
#define MIC_CHN_16 16
|
|
#define MIC_CHN_14 14
|
|
#define MIC_CHN_12 12
|
|
#define MIC_CHN_10 10
|
|
#define MIC_CHN_8 8
|
|
#define MIC_CHN_6 6
|
|
#define MIC_CHN_4 4
|
|
#define MIC_CHN_2 2
|
|
|
|
#define ES7202_CHANNELS_MAX CONFIG_SND_SOC_ES7202_MIC_MAX_CHANNELS
|
|
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_2
|
|
#define ADC_DEV_MAXNUM 1
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_4
|
|
#define ADC_DEV_MAXNUM 2
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_6
|
|
#define ADC_DEV_MAXNUM 3
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_8
|
|
#define ADC_DEV_MAXNUM 4
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_10
|
|
#define ADC_DEV_MAXNUM 5
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_12
|
|
#define ADC_DEV_MAXNUM 6
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_14
|
|
#define ADC_DEV_MAXNUM 7
|
|
#endif
|
|
#if ES7202_CHANNELS_MAX == MIC_CHN_16
|
|
#define ADC_DEV_MAXNUM 8
|
|
#endif
|
|
|
|
/* select I2C bus number for es7202 */
|
|
#define ES7202_I2C_BUS_NUM CONFIG_SND_SOC_ES7202_I2C_BUS
|
|
|
|
/*
|
|
* select DTS or I2C Detect method for es7202
|
|
* 0: i2c_detect, 1:of_device_id
|
|
*/
|
|
#define ES7202_MATCH_DTS_EN 1
|
|
|
|
#endif
|