xref: /openbmc/linux/sound/soc/codecs/da7218.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
24d50934aSAdam Thomson /*
34d50934aSAdam Thomson  * da7218.h - DA7218 ALSA SoC Codec Driver
44d50934aSAdam Thomson  *
54d50934aSAdam Thomson  * Copyright (c) 2015 Dialog Semiconductor
64d50934aSAdam Thomson  *
74d50934aSAdam Thomson  * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
84d50934aSAdam Thomson  */
94d50934aSAdam Thomson 
104d50934aSAdam Thomson #ifndef _DA7218_H
114d50934aSAdam Thomson #define _DA7218_H
124d50934aSAdam Thomson 
134d50934aSAdam Thomson #include <linux/regmap.h>
144d50934aSAdam Thomson #include <linux/regulator/consumer.h>
154d50934aSAdam Thomson #include <sound/da7218.h>
164d50934aSAdam Thomson 
174d50934aSAdam Thomson 
184d50934aSAdam Thomson /*
194d50934aSAdam Thomson  * Registers
204d50934aSAdam Thomson  */
214d50934aSAdam Thomson #define DA7218_SYSTEM_ACTIVE			0x0
224d50934aSAdam Thomson #define DA7218_CIF_CTRL				0x1
234d50934aSAdam Thomson #define DA7218_CHIP_ID1				0x4
244d50934aSAdam Thomson #define DA7218_CHIP_ID2				0x5
254d50934aSAdam Thomson #define DA7218_CHIP_REVISION			0x6
264d50934aSAdam Thomson #define DA7218_SPARE1				0x7
274d50934aSAdam Thomson #define DA7218_STATUS1				0x8
284d50934aSAdam Thomson #define DA7218_SOFT_RESET			0x9
294d50934aSAdam Thomson #define DA7218_SR				0xB
304d50934aSAdam Thomson #define DA7218_PC_COUNT				0xC
314d50934aSAdam Thomson #define DA7218_GAIN_RAMP_CTRL			0xD
324d50934aSAdam Thomson #define DA7218_CIF_TIMEOUT_CTRL			0x10
334d50934aSAdam Thomson #define DA7218_SYSTEM_MODES_INPUT		0x14
344d50934aSAdam Thomson #define DA7218_SYSTEM_MODES_OUTPUT		0x15
354d50934aSAdam Thomson #define DA7218_SYSTEM_STATUS			0x16
364d50934aSAdam Thomson #define DA7218_IN_1L_FILTER_CTRL		0x18
374d50934aSAdam Thomson #define DA7218_IN_1R_FILTER_CTRL		0x19
384d50934aSAdam Thomson #define DA7218_IN_2L_FILTER_CTRL		0x1A
394d50934aSAdam Thomson #define DA7218_IN_2R_FILTER_CTRL		0x1B
404d50934aSAdam Thomson #define DA7218_OUT_1L_FILTER_CTRL		0x20
414d50934aSAdam Thomson #define DA7218_OUT_1R_FILTER_CTRL		0x21
424d50934aSAdam Thomson #define DA7218_OUT_1_HPF_FILTER_CTRL		0x24
434d50934aSAdam Thomson #define DA7218_OUT_1_EQ_12_FILTER_CTRL		0x25
444d50934aSAdam Thomson #define DA7218_OUT_1_EQ_34_FILTER_CTRL		0x26
454d50934aSAdam Thomson #define DA7218_OUT_1_EQ_5_FILTER_CTRL		0x27
464d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_CTRL		0x28
474d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_DATA		0x29
484d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_ADDR		0x2A
494d50934aSAdam Thomson #define DA7218_MIXIN_1_CTRL			0x2C
504d50934aSAdam Thomson #define DA7218_MIXIN_1_GAIN			0x2D
514d50934aSAdam Thomson #define DA7218_MIXIN_2_CTRL			0x2E
524d50934aSAdam Thomson #define DA7218_MIXIN_2_GAIN			0x2F
534d50934aSAdam Thomson #define DA7218_ALC_CTRL1			0x30
544d50934aSAdam Thomson #define DA7218_ALC_CTRL2			0x31
554d50934aSAdam Thomson #define DA7218_ALC_CTRL3			0x32
564d50934aSAdam Thomson #define DA7218_ALC_NOISE			0x33
574d50934aSAdam Thomson #define DA7218_ALC_TARGET_MIN			0x34
584d50934aSAdam Thomson #define DA7218_ALC_TARGET_MAX			0x35
594d50934aSAdam Thomson #define DA7218_ALC_GAIN_LIMITS			0x36
604d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_LIMITS		0x37
614d50934aSAdam Thomson #define DA7218_ALC_ANTICLIP_CTRL		0x38
624d50934aSAdam Thomson #define DA7218_AGS_ENABLE			0x3C
634d50934aSAdam Thomson #define DA7218_AGS_TRIGGER			0x3D
644d50934aSAdam Thomson #define DA7218_AGS_ATT_MAX			0x3E
654d50934aSAdam Thomson #define DA7218_AGS_TIMEOUT			0x3F
664d50934aSAdam Thomson #define DA7218_AGS_ANTICLIP_CTRL		0x40
674d50934aSAdam Thomson #define DA7218_CALIB_CTRL			0x44
684d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_M_1		0x45
694d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_U_1		0x46
704d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_M_2		0x47
714d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_U_2		0x48
724d50934aSAdam Thomson #define DA7218_ENV_TRACK_CTRL			0x4C
734d50934aSAdam Thomson #define DA7218_LVL_DET_CTRL			0x50
744d50934aSAdam Thomson #define DA7218_LVL_DET_LEVEL			0x51
754d50934aSAdam Thomson #define DA7218_DGS_TRIGGER			0x54
764d50934aSAdam Thomson #define DA7218_DGS_ENABLE			0x55
774d50934aSAdam Thomson #define DA7218_DGS_RISE_FALL			0x56
784d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY			0x57
794d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY2			0x58
804d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY3			0x59
814d50934aSAdam Thomson #define DA7218_DGS_LEVELS			0x5A
824d50934aSAdam Thomson #define DA7218_DGS_GAIN_CTRL			0x5B
834d50934aSAdam Thomson #define DA7218_DROUTING_OUTDAI_1L		0x5C
844d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_INFILT_1L_GAIN	0x5D
854d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_INFILT_1R_GAIN	0x5E
864d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_INFILT_2L_GAIN	0x5F
874d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_INFILT_2R_GAIN	0x60
884d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_TONEGEN_GAIN	0x61
894d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_INDAI_1L_GAIN	0x62
904d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1L_INDAI_1R_GAIN	0x63
914d50934aSAdam Thomson #define DA7218_DROUTING_OUTDAI_1R		0x64
924d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_INFILT_1L_GAIN	0x65
934d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_INFILT_1R_GAIN	0x66
944d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_INFILT_2L_GAIN	0x67
954d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_INFILT_2R_GAIN	0x68
964d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_TONEGEN_GAIN	0x69
974d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_INDAI_1L_GAIN	0x6A
984d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_1R_INDAI_1R_GAIN	0x6B
994d50934aSAdam Thomson #define DA7218_DROUTING_OUTFILT_1L		0x6C
1004d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_INFILT_1L_GAIN	0x6D
1014d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_INFILT_1R_GAIN	0x6E
1024d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_INFILT_2L_GAIN	0x6F
1034d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_INFILT_2R_GAIN	0x70
1044d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_TONEGEN_GAIN	0x71
1054d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_INDAI_1L_GAIN	0x72
1064d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1L_INDAI_1R_GAIN	0x73
1074d50934aSAdam Thomson #define DA7218_DROUTING_OUTFILT_1R		0x74
1084d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_INFILT_1L_GAIN	0x75
1094d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_INFILT_1R_GAIN	0x76
1104d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_INFILT_2L_GAIN	0x77
1114d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_INFILT_2R_GAIN	0x78
1124d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_TONEGEN_GAIN	0x79
1134d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_INDAI_1L_GAIN	0x7A
1144d50934aSAdam Thomson #define DA7218_DMIX_OUTFILT_1R_INDAI_1R_GAIN	0x7B
1154d50934aSAdam Thomson #define DA7218_DROUTING_OUTDAI_2L		0x7C
1164d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_INFILT_1L_GAIN	0x7D
1174d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_INFILT_1R_GAIN	0x7E
1184d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_INFILT_2L_GAIN	0x7F
1194d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_INFILT_2R_GAIN	0x80
1204d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_TONEGEN_GAIN	0x81
1214d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_INDAI_1L_GAIN	0x82
1224d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2L_INDAI_1R_GAIN	0x83
1234d50934aSAdam Thomson #define DA7218_DROUTING_OUTDAI_2R		0x84
1244d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_INFILT_1L_GAIN	0x85
1254d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_INFILT_1R_GAIN	0x86
1264d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_INFILT_2L_GAIN	0x87
1274d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_INFILT_2R_GAIN	0x88
1284d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_TONEGEN_GAIN	0x89
1294d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_INDAI_1L_GAIN	0x8A
1304d50934aSAdam Thomson #define DA7218_DMIX_OUTDAI_2R_INDAI_1R_GAIN	0x8B
1314d50934aSAdam Thomson #define DA7218_DAI_CTRL				0x8C
1324d50934aSAdam Thomson #define DA7218_DAI_TDM_CTRL			0x8D
1334d50934aSAdam Thomson #define DA7218_DAI_OFFSET_LOWER			0x8E
1344d50934aSAdam Thomson #define DA7218_DAI_OFFSET_UPPER			0x8F
1354d50934aSAdam Thomson #define DA7218_DAI_CLK_MODE			0x90
1364d50934aSAdam Thomson #define DA7218_PLL_CTRL				0x91
1374d50934aSAdam Thomson #define DA7218_PLL_FRAC_TOP			0x92
1384d50934aSAdam Thomson #define DA7218_PLL_FRAC_BOT			0x93
1394d50934aSAdam Thomson #define DA7218_PLL_INTEGER			0x94
1404d50934aSAdam Thomson #define DA7218_PLL_STATUS			0x95
1414d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL			0x98
1424d50934aSAdam Thomson #define DA7218_DAC_NG_CTRL			0x9C
1434d50934aSAdam Thomson #define DA7218_DAC_NG_SETUP_TIME		0x9D
1444d50934aSAdam Thomson #define DA7218_DAC_NG_OFF_THRESH		0x9E
1454d50934aSAdam Thomson #define DA7218_DAC_NG_ON_THRESH			0x9F
1464d50934aSAdam Thomson #define DA7218_TONE_GEN_CFG1			0xA0
1474d50934aSAdam Thomson #define DA7218_TONE_GEN_CFG2			0xA1
1484d50934aSAdam Thomson #define DA7218_TONE_GEN_FREQ1_L			0xA2
1494d50934aSAdam Thomson #define DA7218_TONE_GEN_FREQ1_U			0xA3
1504d50934aSAdam Thomson #define DA7218_TONE_GEN_FREQ2_L			0xA4
1514d50934aSAdam Thomson #define DA7218_TONE_GEN_FREQ2_U			0xA5
1524d50934aSAdam Thomson #define DA7218_TONE_GEN_CYCLES			0xA6
1534d50934aSAdam Thomson #define DA7218_TONE_GEN_ON_PER			0xA7
1544d50934aSAdam Thomson #define DA7218_TONE_GEN_OFF_PER			0xA8
1554d50934aSAdam Thomson #define DA7218_CP_CTRL				0xAC
1564d50934aSAdam Thomson #define DA7218_CP_DELAY				0xAD
1574d50934aSAdam Thomson #define DA7218_CP_VOL_THRESHOLD1		0xAE
1584d50934aSAdam Thomson #define DA7218_MIC_1_CTRL			0xB4
1594d50934aSAdam Thomson #define DA7218_MIC_1_GAIN			0xB5
1604d50934aSAdam Thomson #define DA7218_MIC_1_SELECT			0xB7
1614d50934aSAdam Thomson #define DA7218_MIC_2_CTRL			0xB8
1624d50934aSAdam Thomson #define DA7218_MIC_2_GAIN			0xB9
1634d50934aSAdam Thomson #define DA7218_MIC_2_SELECT			0xBB
1644d50934aSAdam Thomson #define DA7218_IN_1_HPF_FILTER_CTRL		0xBC
1654d50934aSAdam Thomson #define DA7218_IN_2_HPF_FILTER_CTRL		0xBD
1664d50934aSAdam Thomson #define DA7218_ADC_1_CTRL			0xC0
1674d50934aSAdam Thomson #define DA7218_ADC_2_CTRL			0xC1
1684d50934aSAdam Thomson #define DA7218_ADC_MODE				0xC2
1694d50934aSAdam Thomson #define DA7218_MIXOUT_L_CTRL			0xCC
1704d50934aSAdam Thomson #define DA7218_MIXOUT_L_GAIN			0xCD
1714d50934aSAdam Thomson #define DA7218_MIXOUT_R_CTRL			0xCE
1724d50934aSAdam Thomson #define DA7218_MIXOUT_R_GAIN			0xCF
1734d50934aSAdam Thomson #define DA7218_HP_L_CTRL			0xD0
1744d50934aSAdam Thomson #define DA7218_HP_L_GAIN			0xD1
1754d50934aSAdam Thomson #define DA7218_HP_R_CTRL			0xD2
1764d50934aSAdam Thomson #define DA7218_HP_R_GAIN			0xD3
1774d50934aSAdam Thomson #define DA7218_HP_SNGL_CTRL			0xD4
1784d50934aSAdam Thomson #define DA7218_HP_DIFF_CTRL			0xD5
1794d50934aSAdam Thomson #define DA7218_HP_DIFF_UNLOCK			0xD7
1804d50934aSAdam Thomson #define DA7218_HPLDET_JACK			0xD8
1814d50934aSAdam Thomson #define DA7218_HPLDET_CTRL			0xD9
1824d50934aSAdam Thomson #define DA7218_HPLDET_TEST			0xDA
1834d50934aSAdam Thomson #define DA7218_REFERENCES			0xDC
1844d50934aSAdam Thomson #define DA7218_IO_CTRL				0xE0
1854d50934aSAdam Thomson #define DA7218_LDO_CTRL				0xE1
1864d50934aSAdam Thomson #define DA7218_SIDETONE_CTRL			0xE4
1874d50934aSAdam Thomson #define DA7218_SIDETONE_IN_SELECT		0xE5
1884d50934aSAdam Thomson #define DA7218_SIDETONE_GAIN			0xE6
1894d50934aSAdam Thomson #define DA7218_DROUTING_ST_OUTFILT_1L		0xE8
1904d50934aSAdam Thomson #define DA7218_DROUTING_ST_OUTFILT_1R		0xE9
1914d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_DATA		0xEA
1924d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_ADDR		0xEB
1934d50934aSAdam Thomson #define DA7218_EVENT_STATUS			0xEC
1944d50934aSAdam Thomson #define DA7218_EVENT				0xED
1954d50934aSAdam Thomson #define DA7218_EVENT_MASK			0xEE
1964d50934aSAdam Thomson #define DA7218_DMIC_1_CTRL			0xF0
1974d50934aSAdam Thomson #define DA7218_DMIC_2_CTRL			0xF1
1984d50934aSAdam Thomson #define DA7218_IN_1L_GAIN			0xF4
1994d50934aSAdam Thomson #define DA7218_IN_1R_GAIN			0xF5
2004d50934aSAdam Thomson #define DA7218_IN_2L_GAIN			0xF6
2014d50934aSAdam Thomson #define DA7218_IN_2R_GAIN			0xF7
2024d50934aSAdam Thomson #define DA7218_OUT_1L_GAIN			0xF8
2034d50934aSAdam Thomson #define DA7218_OUT_1R_GAIN			0xF9
2044d50934aSAdam Thomson #define DA7218_MICBIAS_CTRL			0xFC
2054d50934aSAdam Thomson #define DA7218_MICBIAS_EN			0xFD
2064d50934aSAdam Thomson 
2074d50934aSAdam Thomson 
2084d50934aSAdam Thomson /*
2094d50934aSAdam Thomson  * Bit Fields
2104d50934aSAdam Thomson  */
2114d50934aSAdam Thomson 
2124d50934aSAdam Thomson #define DA7218_SWITCH_EN_MAX		0x1
2134d50934aSAdam Thomson 
2144d50934aSAdam Thomson /* DA7218_SYSTEM_ACTIVE = 0x0 */
2154d50934aSAdam Thomson #define DA7218_SYSTEM_ACTIVE_SHIFT	0
2164d50934aSAdam Thomson #define DA7218_SYSTEM_ACTIVE_MASK	(0x1 << 0)
2174d50934aSAdam Thomson 
2184d50934aSAdam Thomson /* DA7218_CIF_CTRL = 0x1 */
2194d50934aSAdam Thomson #define DA7218_CIF_I2C_WRITE_MODE_SHIFT	0
2204d50934aSAdam Thomson #define DA7218_CIF_I2C_WRITE_MODE_MASK	(0x1 << 0)
2214d50934aSAdam Thomson 
2224d50934aSAdam Thomson /* DA7218_CHIP_ID1 = 0x4 */
2234d50934aSAdam Thomson #define DA7218_CHIP_ID1_SHIFT	0
2244d50934aSAdam Thomson #define DA7218_CHIP_ID1_MASK	(0xFF << 0)
2254d50934aSAdam Thomson 
2264d50934aSAdam Thomson /* DA7218_CHIP_ID2 = 0x5 */
2274d50934aSAdam Thomson #define DA7218_CHIP_ID2_SHIFT	0
2284d50934aSAdam Thomson #define DA7218_CHIP_ID2_MASK	(0xFF << 0)
2294d50934aSAdam Thomson 
2304d50934aSAdam Thomson /* DA7218_CHIP_REVISION = 0x6 */
2314d50934aSAdam Thomson #define DA7218_CHIP_MINOR_SHIFT	0
2324d50934aSAdam Thomson #define DA7218_CHIP_MINOR_MASK	(0xF << 0)
2334d50934aSAdam Thomson #define DA7218_CHIP_MAJOR_SHIFT	4
2344d50934aSAdam Thomson #define DA7218_CHIP_MAJOR_MASK	(0xF << 4)
2354d50934aSAdam Thomson 
2364d50934aSAdam Thomson /* DA7218_SPARE1 = 0x7 */
2374d50934aSAdam Thomson #define DA7218_SPARE1_SHIFT	0
2384d50934aSAdam Thomson #define DA7218_SPARE1_MASK	(0xFF << 0)
2394d50934aSAdam Thomson 
2404d50934aSAdam Thomson /* DA7218_STATUS1 = 0x8 */
2414d50934aSAdam Thomson #define DA7218_STATUS_SPARE1_SHIFT	0
2424d50934aSAdam Thomson #define DA7218_STATUS_SPARE1_MASK	(0xFF << 0)
2434d50934aSAdam Thomson 
2444d50934aSAdam Thomson /* DA7218_SOFT_RESET = 0x9 */
2454d50934aSAdam Thomson #define DA7218_CIF_REG_SOFT_RESET_SHIFT	7
2464d50934aSAdam Thomson #define DA7218_CIF_REG_SOFT_RESET_MASK	(0x1 << 7)
2474d50934aSAdam Thomson 
2484d50934aSAdam Thomson /* DA7218_SR = 0xB */
2494d50934aSAdam Thomson #define DA7218_SR_ADC_SHIFT	0
2504d50934aSAdam Thomson #define DA7218_SR_ADC_MASK	(0xF << 0)
2514d50934aSAdam Thomson #define DA7218_SR_DAC_SHIFT	4
2524d50934aSAdam Thomson #define DA7218_SR_DAC_MASK	(0xF << 4)
2534d50934aSAdam Thomson #define DA7218_SR_8000		0x01
2544d50934aSAdam Thomson #define DA7218_SR_11025		0x02
2554d50934aSAdam Thomson #define DA7218_SR_12000		0x03
2564d50934aSAdam Thomson #define DA7218_SR_16000		0x05
2574d50934aSAdam Thomson #define DA7218_SR_22050		0x06
2584d50934aSAdam Thomson #define DA7218_SR_24000		0x07
2594d50934aSAdam Thomson #define DA7218_SR_32000		0x09
2604d50934aSAdam Thomson #define DA7218_SR_44100		0x0A
2614d50934aSAdam Thomson #define DA7218_SR_48000		0x0B
2624d50934aSAdam Thomson #define DA7218_SR_88200		0x0E
2634d50934aSAdam Thomson #define DA7218_SR_96000		0x0F
2644d50934aSAdam Thomson 
2654d50934aSAdam Thomson /* DA7218_PC_COUNT = 0xC */
2664d50934aSAdam Thomson #define DA7218_PC_FREERUN_SHIFT		0
2674d50934aSAdam Thomson #define DA7218_PC_FREERUN_MASK		(0x1 << 0)
2684d50934aSAdam Thomson #define DA7218_PC_RESYNC_AUTO_SHIFT	1
2694d50934aSAdam Thomson #define DA7218_PC_RESYNC_AUTO_MASK	(0x1 << 1)
2704d50934aSAdam Thomson 
2714d50934aSAdam Thomson /* DA7218_GAIN_RAMP_CTRL = 0xD */
2724d50934aSAdam Thomson #define DA7218_GAIN_RAMP_RATE_SHIFT	0
2734d50934aSAdam Thomson #define DA7218_GAIN_RAMP_RATE_MASK	(0x3 << 0)
2744d50934aSAdam Thomson #define DA7218_GAIN_RAMP_RATE_MAX	4
2754d50934aSAdam Thomson 
2764d50934aSAdam Thomson /* DA7218_CIF_TIMEOUT_CTRL = 0x10 */
2774d50934aSAdam Thomson #define DA7218_I2C_TIMEOUT_EN_SHIFT	0
2784d50934aSAdam Thomson #define DA7218_I2C_TIMEOUT_EN_MASK	(0x1 << 0)
2794d50934aSAdam Thomson 
2804d50934aSAdam Thomson /* DA7218_SYSTEM_MODES_INPUT = 0x14 */
2814d50934aSAdam Thomson #define DA7218_MODE_SUBMIT_SHIFT	0
2824d50934aSAdam Thomson #define DA7218_MODE_SUBMIT_MASK		(0x1 << 0)
2834d50934aSAdam Thomson #define DA7218_ADC_MODE_SHIFT		1
2844d50934aSAdam Thomson #define DA7218_ADC_MODE_MASK		(0x7F << 1)
2854d50934aSAdam Thomson 
2864d50934aSAdam Thomson /* DA7218_SYSTEM_MODES_OUTPUT = 0x15 */
2874d50934aSAdam Thomson #define DA7218_MODE_SUBMIT_SHIFT	0
2884d50934aSAdam Thomson #define DA7218_MODE_SUBMIT_MASK		(0x1 << 0)
2894d50934aSAdam Thomson #define DA7218_DAC_MODE_SHIFT		1
2904d50934aSAdam Thomson #define DA7218_DAC_MODE_MASK		(0x7F << 1)
2914d50934aSAdam Thomson 
2924d50934aSAdam Thomson /* DA7218_SYSTEM_STATUS = 0x16 */
2934d50934aSAdam Thomson #define DA7218_SC1_BUSY_SHIFT	0
2944d50934aSAdam Thomson #define DA7218_SC1_BUSY_MASK	(0x1 << 0)
2954d50934aSAdam Thomson #define DA7218_SC2_BUSY_SHIFT	1
2964d50934aSAdam Thomson #define DA7218_SC2_BUSY_MASK	(0x1 << 1)
2974d50934aSAdam Thomson 
2984d50934aSAdam Thomson /* DA7218_IN_1L_FILTER_CTRL = 0x18 */
2994d50934aSAdam Thomson #define DA7218_IN_1L_RAMP_EN_SHIFT	5
3004d50934aSAdam Thomson #define DA7218_IN_1L_RAMP_EN_MASK	(0x1 << 5)
3014d50934aSAdam Thomson #define DA7218_IN_1L_MUTE_EN_SHIFT	6
3024d50934aSAdam Thomson #define DA7218_IN_1L_MUTE_EN_MASK	(0x1 << 6)
3034d50934aSAdam Thomson #define DA7218_IN_1L_FILTER_EN_SHIFT	7
3044d50934aSAdam Thomson #define DA7218_IN_1L_FILTER_EN_MASK	(0x1 << 7)
3054d50934aSAdam Thomson 
3064d50934aSAdam Thomson /* DA7218_IN_1R_FILTER_CTRL = 0x19 */
3074d50934aSAdam Thomson #define DA7218_IN_1R_RAMP_EN_SHIFT	5
3084d50934aSAdam Thomson #define DA7218_IN_1R_RAMP_EN_MASK	(0x1 << 5)
3094d50934aSAdam Thomson #define DA7218_IN_1R_MUTE_EN_SHIFT	6
3104d50934aSAdam Thomson #define DA7218_IN_1R_MUTE_EN_MASK	(0x1 << 6)
3114d50934aSAdam Thomson #define DA7218_IN_1R_FILTER_EN_SHIFT	7
3124d50934aSAdam Thomson #define DA7218_IN_1R_FILTER_EN_MASK	(0x1 << 7)
3134d50934aSAdam Thomson 
3144d50934aSAdam Thomson /* DA7218_IN_2L_FILTER_CTRL = 0x1A */
3154d50934aSAdam Thomson #define DA7218_IN_2L_RAMP_EN_SHIFT	5
3164d50934aSAdam Thomson #define DA7218_IN_2L_RAMP_EN_MASK	(0x1 << 5)
3174d50934aSAdam Thomson #define DA7218_IN_2L_MUTE_EN_SHIFT	6
3184d50934aSAdam Thomson #define DA7218_IN_2L_MUTE_EN_MASK	(0x1 << 6)
3194d50934aSAdam Thomson #define DA7218_IN_2L_FILTER_EN_SHIFT	7
3204d50934aSAdam Thomson #define DA7218_IN_2L_FILTER_EN_MASK	(0x1 << 7)
3214d50934aSAdam Thomson 
3224d50934aSAdam Thomson /* DA7218_IN_2R_FILTER_CTRL = 0x1B */
3234d50934aSAdam Thomson #define DA7218_IN_2R_RAMP_EN_SHIFT	5
3244d50934aSAdam Thomson #define DA7218_IN_2R_RAMP_EN_MASK	(0x1 << 5)
3254d50934aSAdam Thomson #define DA7218_IN_2R_MUTE_EN_SHIFT	6
3264d50934aSAdam Thomson #define DA7218_IN_2R_MUTE_EN_MASK	(0x1 << 6)
3274d50934aSAdam Thomson #define DA7218_IN_2R_FILTER_EN_SHIFT	7
3284d50934aSAdam Thomson #define DA7218_IN_2R_FILTER_EN_MASK	(0x1 << 7)
3294d50934aSAdam Thomson 
3304d50934aSAdam Thomson /* DA7218_OUT_1L_FILTER_CTRL = 0x20 */
3314d50934aSAdam Thomson #define DA7218_OUT_1L_BIQ_5STAGE_SEL_SHIFT	3
3324d50934aSAdam Thomson #define DA7218_OUT_1L_BIQ_5STAGE_SEL_MASK	(0x1 << 3)
3334d50934aSAdam Thomson #define DA7218_OUT_BIQ_5STAGE_SEL_MAX		2
3344d50934aSAdam Thomson #define DA7218_OUT_1L_SUBRANGE_EN_SHIFT		4
3354d50934aSAdam Thomson #define DA7218_OUT_1L_SUBRANGE_EN_MASK		(0x1 << 4)
3364d50934aSAdam Thomson #define DA7218_OUT_1L_RAMP_EN_SHIFT		5
3374d50934aSAdam Thomson #define DA7218_OUT_1L_RAMP_EN_MASK		(0x1 << 5)
3384d50934aSAdam Thomson #define DA7218_OUT_1L_MUTE_EN_SHIFT		6
3394d50934aSAdam Thomson #define DA7218_OUT_1L_MUTE_EN_MASK		(0x1 << 6)
3404d50934aSAdam Thomson #define DA7218_OUT_1L_FILTER_EN_SHIFT		7
3414d50934aSAdam Thomson #define DA7218_OUT_1L_FILTER_EN_MASK		(0x1 << 7)
3424d50934aSAdam Thomson 
3434d50934aSAdam Thomson /* DA7218_OUT_1R_FILTER_CTRL = 0x21 */
3444d50934aSAdam Thomson #define DA7218_OUT_1R_BIQ_5STAGE_SEL_SHIFT	3
3454d50934aSAdam Thomson #define DA7218_OUT_1R_BIQ_5STAGE_SEL_MASK	(0x1 << 3)
3464d50934aSAdam Thomson #define DA7218_OUT_1R_SUBRANGE_EN_SHIFT		4
3474d50934aSAdam Thomson #define DA7218_OUT_1R_SUBRANGE_EN_MASK		(0x1 << 4)
3484d50934aSAdam Thomson #define DA7218_OUT_1R_RAMP_EN_SHIFT		5
3494d50934aSAdam Thomson #define DA7218_OUT_1R_RAMP_EN_MASK		(0x1 << 5)
3504d50934aSAdam Thomson #define DA7218_OUT_1R_MUTE_EN_SHIFT		6
3514d50934aSAdam Thomson #define DA7218_OUT_1R_MUTE_EN_MASK		(0x1 << 6)
3524d50934aSAdam Thomson #define DA7218_OUT_1R_FILTER_EN_SHIFT		7
3534d50934aSAdam Thomson #define DA7218_OUT_1R_FILTER_EN_MASK		(0x1 << 7)
3544d50934aSAdam Thomson 
3554d50934aSAdam Thomson /* DA7218_OUT_1_HPF_FILTER_CTRL = 0x24 */
3564d50934aSAdam Thomson #define DA7218_OUT_1_VOICE_HPF_CORNER_SHIFT	0
3574d50934aSAdam Thomson #define DA7218_OUT_1_VOICE_HPF_CORNER_MASK	(0x7 << 0)
3584d50934aSAdam Thomson #define DA7218_VOICE_HPF_CORNER_MAX		8
3594d50934aSAdam Thomson #define DA7218_OUT_1_VOICE_EN_SHIFT		3
3604d50934aSAdam Thomson #define DA7218_OUT_1_VOICE_EN_MASK		(0x1 << 3)
3614d50934aSAdam Thomson #define DA7218_OUT_1_AUDIO_HPF_CORNER_SHIFT	4
3624d50934aSAdam Thomson #define DA7218_OUT_1_AUDIO_HPF_CORNER_MASK	(0x3 << 4)
3634d50934aSAdam Thomson #define DA7218_AUDIO_HPF_CORNER_MAX		4
3644d50934aSAdam Thomson #define DA7218_OUT_1_HPF_EN_SHIFT		7
3654d50934aSAdam Thomson #define DA7218_OUT_1_HPF_EN_MASK		(0x1 << 7)
3664d50934aSAdam Thomson #define DA7218_HPF_MODE_SHIFT			0
3674d50934aSAdam Thomson #define DA7218_HPF_DISABLED			((0x0 << 3) | (0x0 << 7))
3684d50934aSAdam Thomson #define DA7218_HPF_AUDIO_EN			((0x0 << 3) | (0x1 << 7))
3694d50934aSAdam Thomson #define DA7218_HPF_VOICE_EN			((0x1 << 3) | (0x1 << 7))
3704d50934aSAdam Thomson #define DA7218_HPF_MODE_MASK			((0x1 << 3) | (0x1 << 7))
3714d50934aSAdam Thomson #define DA7218_HPF_MODE_MAX			3
3724d50934aSAdam Thomson 
3734d50934aSAdam Thomson /* DA7218_OUT_1_EQ_12_FILTER_CTRL = 0x25 */
3744d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND1_SHIFT	0
3754d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND1_MASK	(0xF << 0)
3764d50934aSAdam Thomson #define DA7218_OUT_EQ_BAND_MAX		0xF
3774d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND2_SHIFT	4
3784d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND2_MASK	(0xF << 4)
3794d50934aSAdam Thomson 
3804d50934aSAdam Thomson /* DA7218_OUT_1_EQ_34_FILTER_CTRL = 0x26 */
3814d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND3_SHIFT	0
3824d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND3_MASK	(0xF << 0)
3834d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND4_SHIFT	4
3844d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND4_MASK	(0xF << 4)
3854d50934aSAdam Thomson 
3864d50934aSAdam Thomson /* DA7218_OUT_1_EQ_5_FILTER_CTRL = 0x27 */
3874d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND5_SHIFT	0
3884d50934aSAdam Thomson #define DA7218_OUT_1_EQ_BAND5_MASK	(0xF << 0)
3894d50934aSAdam Thomson #define DA7218_OUT_1_EQ_EN_SHIFT	7
3904d50934aSAdam Thomson #define DA7218_OUT_1_EQ_EN_MASK		(0x1 << 7)
3914d50934aSAdam Thomson 
3924d50934aSAdam Thomson /* DA7218_OUT_1_BIQ_5STAGE_CTRL = 0x28 */
3934d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_MUTE_EN_SHIFT	6
3944d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_MUTE_EN_MASK	(0x1 << 6)
3954d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_FILTER_EN_SHIFT	7
3964d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_FILTER_EN_MASK	(0x1 << 7)
3974d50934aSAdam Thomson 
3984d50934aSAdam Thomson /* DA7218_OUT_1_BIQ_5STAGE_DATA = 0x29 */
3994d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_DATA_SHIFT	0
4004d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_DATA_MASK	(0xFF << 0)
4014d50934aSAdam Thomson 
4024d50934aSAdam Thomson /* DA7218_OUT_1_BIQ_5STAGE_ADDR = 0x2A */
4034d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_ADDR_SHIFT	0
4044d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_ADDR_MASK	(0x3F << 0)
4054d50934aSAdam Thomson #define DA7218_OUT_1_BIQ_5STAGE_CFG_SIZE	50
4064d50934aSAdam Thomson 
4074d50934aSAdam Thomson /* DA7218_MIXIN_1_CTRL = 0x2C */
4084d50934aSAdam Thomson #define DA7218_MIXIN_1_MIX_SEL_SHIFT		3
4094d50934aSAdam Thomson #define DA7218_MIXIN_1_MIX_SEL_MASK		(0x1 << 3)
4104d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_ZC_EN_SHIFT		4
4114d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_ZC_EN_MASK		(0x1 << 4)
4124d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_RAMP_EN_SHIFT	5
4134d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_RAMP_EN_MASK		(0x1 << 5)
4144d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_MUTE_EN_SHIFT	6
4154d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_MUTE_EN_MASK		(0x1 << 6)
4164d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_EN_SHIFT		7
4174d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_EN_MASK		(0x1 << 7)
4184d50934aSAdam Thomson 
4194d50934aSAdam Thomson /* DA7218_MIXIN_1_GAIN = 0x2D */
4204d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_GAIN_SHIFT	0
4214d50934aSAdam Thomson #define DA7218_MIXIN_1_AMP_GAIN_MASK	(0xF << 0)
4224d50934aSAdam Thomson #define DA7218_MIXIN_AMP_GAIN_MAX	0xF
4234d50934aSAdam Thomson 
4244d50934aSAdam Thomson /* DA7218_MIXIN_2_CTRL = 0x2E */
4254d50934aSAdam Thomson #define DA7218_MIXIN_2_MIX_SEL_SHIFT		3
4264d50934aSAdam Thomson #define DA7218_MIXIN_2_MIX_SEL_MASK		(0x1 << 3)
4274d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_ZC_EN_SHIFT		4
4284d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_ZC_EN_MASK		(0x1 << 4)
4294d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_RAMP_EN_SHIFT	5
4304d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_RAMP_EN_MASK		(0x1 << 5)
4314d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_MUTE_EN_SHIFT	6
4324d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_MUTE_EN_MASK		(0x1 << 6)
4334d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_EN_SHIFT		7
4344d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_EN_MASK		(0x1 << 7)
4354d50934aSAdam Thomson 
4364d50934aSAdam Thomson /* DA7218_MIXIN_2_GAIN = 0x2F */
4374d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_GAIN_SHIFT	0
4384d50934aSAdam Thomson #define DA7218_MIXIN_2_AMP_GAIN_MASK	(0xF << 0)
4394d50934aSAdam Thomson 
4404d50934aSAdam Thomson /* DA7218_ALC_CTRL1 = 0x30 */
4414d50934aSAdam Thomson #define DA7218_ALC_EN_SHIFT		0
4424d50934aSAdam Thomson #define DA7218_ALC_EN_MASK		(0xF << 0)
4434d50934aSAdam Thomson #define DA7218_ALC_CHAN1_L_EN_SHIFT	0
4444d50934aSAdam Thomson #define DA7218_ALC_CHAN1_R_EN_SHIFT	1
4454d50934aSAdam Thomson #define DA7218_ALC_CHAN2_L_EN_SHIFT	2
4464d50934aSAdam Thomson #define DA7218_ALC_CHAN2_R_EN_SHIFT	3
4474d50934aSAdam Thomson #define DA7218_ALC_SYNC_MODE_SHIFT	4
4484d50934aSAdam Thomson #define DA7218_ALC_SYNC_MODE_MASK	(0xF << 4)
4494d50934aSAdam Thomson #define DA7218_ALC_SYNC_MODE_CH1	(0x1 << 4)
4504d50934aSAdam Thomson #define DA7218_ALC_SYNC_MODE_CH2	(0x4 << 4)
4514d50934aSAdam Thomson 
4524d50934aSAdam Thomson /* DA7218_ALC_CTRL2 = 0x31 */
4534d50934aSAdam Thomson #define DA7218_ALC_ATTACK_SHIFT		0
4544d50934aSAdam Thomson #define DA7218_ALC_ATTACK_MASK		(0xF << 0)
4554d50934aSAdam Thomson #define DA7218_ALC_ATTACK_MAX		13
4564d50934aSAdam Thomson #define DA7218_ALC_RELEASE_SHIFT	4
4574d50934aSAdam Thomson #define DA7218_ALC_RELEASE_MASK		(0xF << 4)
4584d50934aSAdam Thomson #define DA7218_ALC_RELEASE_MAX		11
4594d50934aSAdam Thomson 
4604d50934aSAdam Thomson /* DA7218_ALC_CTRL3 = 0x32 */
4614d50934aSAdam Thomson #define DA7218_ALC_HOLD_SHIFT	0
4624d50934aSAdam Thomson #define DA7218_ALC_HOLD_MASK	(0xF << 0)
4634d50934aSAdam Thomson #define DA7218_ALC_HOLD_MAX	16
4644d50934aSAdam Thomson 
4654d50934aSAdam Thomson /* DA7218_ALC_NOISE = 0x33 */
4664d50934aSAdam Thomson #define DA7218_ALC_NOISE_SHIFT		0
4674d50934aSAdam Thomson #define DA7218_ALC_NOISE_MASK		(0x3F << 0)
4684d50934aSAdam Thomson #define DA7218_ALC_THRESHOLD_MAX	0x3F
4694d50934aSAdam Thomson 
4704d50934aSAdam Thomson /* DA7218_ALC_TARGET_MIN = 0x34 */
4714d50934aSAdam Thomson #define DA7218_ALC_THRESHOLD_MIN_SHIFT	0
4724d50934aSAdam Thomson #define DA7218_ALC_THRESHOLD_MIN_MASK	(0x3F << 0)
4734d50934aSAdam Thomson 
4744d50934aSAdam Thomson /* DA7218_ALC_TARGET_MAX = 0x35 */
4754d50934aSAdam Thomson #define DA7218_ALC_THRESHOLD_MAX_SHIFT	0
4764d50934aSAdam Thomson #define DA7218_ALC_THRESHOLD_MAX_MASK	(0x3F << 0)
4774d50934aSAdam Thomson 
4784d50934aSAdam Thomson /* DA7218_ALC_GAIN_LIMITS = 0x36 */
4794d50934aSAdam Thomson #define DA7218_ALC_ATTEN_MAX_SHIFT	0
4804d50934aSAdam Thomson #define DA7218_ALC_ATTEN_MAX_MASK	(0xF << 0)
4814d50934aSAdam Thomson #define DA7218_ALC_ATTEN_GAIN_MAX	0xF
4824d50934aSAdam Thomson #define DA7218_ALC_GAIN_MAX_SHIFT	4
4834d50934aSAdam Thomson #define DA7218_ALC_GAIN_MAX_MASK	(0xF << 4)
4844d50934aSAdam Thomson 
4854d50934aSAdam Thomson /* DA7218_ALC_ANA_GAIN_LIMITS = 0x37 */
4864d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_MIN_SHIFT	0
4874d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_MIN_MASK	(0x7 << 0)
4884d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_MIN		0x1
4894d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_MAX		0x7
4904d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_MAX_SHIFT	4
4914d50934aSAdam Thomson #define DA7218_ALC_ANA_GAIN_MAX_MASK	(0x7 << 4)
4924d50934aSAdam Thomson 
4934d50934aSAdam Thomson /* DA7218_ALC_ANTICLIP_CTRL = 0x38 */
4944d50934aSAdam Thomson #define DA7218_ALC_ANTICLIP_STEP_SHIFT	0
4954d50934aSAdam Thomson #define DA7218_ALC_ANTICLIP_STEP_MASK	(0x3 << 0)
4964d50934aSAdam Thomson #define DA7218_ALC_ANTICLIP_STEP_MAX	4
4974d50934aSAdam Thomson #define DA7218_ALC_ANTICLIP_EN_SHIFT	7
4984d50934aSAdam Thomson #define DA7218_ALC_ANTICLIP_EN_MASK	(0x1 << 7)
4994d50934aSAdam Thomson 
5004d50934aSAdam Thomson /* DA7218_AGS_ENABLE = 0x3C */
5014d50934aSAdam Thomson #define DA7218_AGS_ENABLE_SHIFT		0
5024d50934aSAdam Thomson #define DA7218_AGS_ENABLE_MASK		(0x3 << 0)
5034d50934aSAdam Thomson #define DA7218_AGS_ENABLE_CHAN1_SHIFT	0
5044d50934aSAdam Thomson #define DA7218_AGS_ENABLE_CHAN2_SHIFT	1
5054d50934aSAdam Thomson 
5064d50934aSAdam Thomson /* DA7218_AGS_TRIGGER = 0x3D */
5074d50934aSAdam Thomson #define DA7218_AGS_TRIGGER_SHIFT	0
5084d50934aSAdam Thomson #define DA7218_AGS_TRIGGER_MASK		(0xF << 0)
5094d50934aSAdam Thomson #define DA7218_AGS_TRIGGER_MAX		0xF
5104d50934aSAdam Thomson 
5114d50934aSAdam Thomson /* DA7218_AGS_ATT_MAX = 0x3E */
5124d50934aSAdam Thomson #define DA7218_AGS_ATT_MAX_SHIFT	0
5134d50934aSAdam Thomson #define DA7218_AGS_ATT_MAX_MASK		(0x7 << 0)
5144d50934aSAdam Thomson #define DA7218_AGS_ATT_MAX_MAX		0x7
5154d50934aSAdam Thomson 
5164d50934aSAdam Thomson /* DA7218_AGS_TIMEOUT = 0x3F */
5174d50934aSAdam Thomson #define DA7218_AGS_TIMEOUT_EN_SHIFT	0
5184d50934aSAdam Thomson #define DA7218_AGS_TIMEOUT_EN_MASK	(0x1 << 0)
5194d50934aSAdam Thomson 
5204d50934aSAdam Thomson /* DA7218_AGS_ANTICLIP_CTRL = 0x40 */
5214d50934aSAdam Thomson #define DA7218_AGS_ANTICLIP_EN_SHIFT	7
5224d50934aSAdam Thomson #define DA7218_AGS_ANTICLIP_EN_MASK	(0x1 << 7)
5234d50934aSAdam Thomson 
5244d50934aSAdam Thomson /* DA7218_CALIB_CTRL = 0x44 */
5254d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_EN_SHIFT	0
5264d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_EN_MASK	(0x1 << 0)
5274d50934aSAdam Thomson #define DA7218_CALIB_AUTO_EN_SHIFT	2
5284d50934aSAdam Thomson #define DA7218_CALIB_AUTO_EN_MASK	(0x1 << 2)
5294d50934aSAdam Thomson #define DA7218_CALIB_OVERFLOW_SHIFT	3
5304d50934aSAdam Thomson #define DA7218_CALIB_OVERFLOW_MASK	(0x1 << 3)
5314d50934aSAdam Thomson 
5324d50934aSAdam Thomson /* DA7218_CALIB_OFFSET_AUTO_M_1 = 0x45 */
5334d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_M_1_SHIFT	0
5344d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_M_1_MASK	(0xFF << 0)
5354d50934aSAdam Thomson 
5364d50934aSAdam Thomson /* DA7218_CALIB_OFFSET_AUTO_U_1 = 0x46 */
5374d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_U_1_SHIFT	0
5384d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_U_1_MASK	(0xF << 0)
5394d50934aSAdam Thomson 
5404d50934aSAdam Thomson /* DA7218_CALIB_OFFSET_AUTO_M_2 = 0x47 */
5414d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_M_2_SHIFT	0
5424d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_M_2_MASK	(0xFF << 0)
5434d50934aSAdam Thomson 
5444d50934aSAdam Thomson /* DA7218_CALIB_OFFSET_AUTO_U_2 = 0x48 */
5454d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_U_2_SHIFT	0
5464d50934aSAdam Thomson #define DA7218_CALIB_OFFSET_AUTO_U_2_MASK	(0xF << 0)
5474d50934aSAdam Thomson 
5484d50934aSAdam Thomson /* DA7218_ENV_TRACK_CTRL = 0x4C */
5494d50934aSAdam Thomson #define DA7218_INTEG_ATTACK_SHIFT	0
5504d50934aSAdam Thomson #define DA7218_INTEG_ATTACK_MASK	(0x3 << 0)
5514d50934aSAdam Thomson #define DA7218_INTEG_RELEASE_SHIFT	4
5524d50934aSAdam Thomson #define DA7218_INTEG_RELEASE_MASK	(0x3 << 4)
5534d50934aSAdam Thomson #define DA7218_INTEG_MAX		4
5544d50934aSAdam Thomson 
5554d50934aSAdam Thomson /* DA7218_LVL_DET_CTRL = 0x50 */
5564d50934aSAdam Thomson #define DA7218_LVL_DET_EN_SHIFT		0
5574d50934aSAdam Thomson #define DA7218_LVL_DET_EN_MASK		(0xF << 0)
5584d50934aSAdam Thomson #define DA7218_LVL_DET_EN_CHAN1L_SHIFT	0
5594d50934aSAdam Thomson #define DA7218_LVL_DET_EN_CHAN1R_SHIFT	1
5604d50934aSAdam Thomson #define DA7218_LVL_DET_EN_CHAN2L_SHIFT	2
5614d50934aSAdam Thomson #define DA7218_LVL_DET_EN_CHAN2R_SHIFT	3
5624d50934aSAdam Thomson 
5634d50934aSAdam Thomson /* DA7218_LVL_DET_LEVEL = 0x51 */
5644d50934aSAdam Thomson #define DA7218_LVL_DET_LEVEL_SHIFT	0
5654d50934aSAdam Thomson #define DA7218_LVL_DET_LEVEL_MASK	(0x7F << 0)
5664d50934aSAdam Thomson #define DA7218_LVL_DET_LEVEL_MAX	0x7F
5674d50934aSAdam Thomson 
5684d50934aSAdam Thomson /* DA7218_DGS_TRIGGER = 0x54 */
5694d50934aSAdam Thomson #define DA7218_DGS_TRIGGER_LVL_SHIFT	0
5704d50934aSAdam Thomson #define DA7218_DGS_TRIGGER_LVL_MASK	(0x3F << 0)
5714d50934aSAdam Thomson #define DA7218_DGS_TRIGGER_MAX		0x3F
5724d50934aSAdam Thomson 
5734d50934aSAdam Thomson /* DA7218_DGS_ENABLE = 0x55 */
5744d50934aSAdam Thomson #define DA7218_DGS_ENABLE_SHIFT		0
5754d50934aSAdam Thomson #define DA7218_DGS_ENABLE_MASK		(0x3 << 0)
5764d50934aSAdam Thomson #define DA7218_DGS_ENABLE_L_SHIFT	0
5774d50934aSAdam Thomson #define DA7218_DGS_ENABLE_R_SHIFT	1
5784d50934aSAdam Thomson 
5794d50934aSAdam Thomson /* DA7218_DGS_RISE_FALL = 0x56 */
5804d50934aSAdam Thomson #define DA7218_DGS_RISE_COEFF_SHIFT	0
5814d50934aSAdam Thomson #define DA7218_DGS_RISE_COEFF_MASK	(0x7 << 0)
5824d50934aSAdam Thomson #define DA7218_DGS_RISE_COEFF_MAX	7
5834d50934aSAdam Thomson #define DA7218_DGS_FALL_COEFF_SHIFT	4
5844d50934aSAdam Thomson #define DA7218_DGS_FALL_COEFF_MASK	(0x7 << 4)
5854d50934aSAdam Thomson #define DA7218_DGS_FALL_COEFF_MAX	8
5864d50934aSAdam Thomson 
5874d50934aSAdam Thomson /* DA7218_DGS_SYNC_DELAY = 0x57 */
5884d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY_SHIFT	0
5894d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY_MASK	(0xFF << 0)
5904d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY_MAX	0xFF
5914d50934aSAdam Thomson 
5924d50934aSAdam Thomson /* DA7218_DGS_SYNC_DELAY2 = 0x58 */
5934d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY2_SHIFT	0
5944d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY2_MASK	(0xFF << 0)
5954d50934aSAdam Thomson 
5964d50934aSAdam Thomson /* DA7218_DGS_SYNC_DELAY3 = 0x59 */
5974d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY3_SHIFT	0
5984d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY3_MASK	(0x7F << 0)
5994d50934aSAdam Thomson #define DA7218_DGS_SYNC_DELAY3_MAX	0x7F
6004d50934aSAdam Thomson 
6014d50934aSAdam Thomson /* DA7218_DGS_LEVELS = 0x5A */
6024d50934aSAdam Thomson #define DA7218_DGS_ANTICLIP_LVL_SHIFT	0
6034d50934aSAdam Thomson #define DA7218_DGS_ANTICLIP_LVL_MASK	(0x7 << 0)
6044d50934aSAdam Thomson #define DA7218_DGS_ANTICLIP_LVL_MAX	0x7
6054d50934aSAdam Thomson #define DA7218_DGS_SIGNAL_LVL_SHIFT	4
6064d50934aSAdam Thomson #define DA7218_DGS_SIGNAL_LVL_MASK	(0xF << 4)
6074d50934aSAdam Thomson #define DA7218_DGS_SIGNAL_LVL_MAX	0xF
6084d50934aSAdam Thomson 
6094d50934aSAdam Thomson /* DA7218_DGS_GAIN_CTRL = 0x5B */
6104d50934aSAdam Thomson #define DA7218_DGS_STEPS_SHIFT		0
6114d50934aSAdam Thomson #define DA7218_DGS_STEPS_MASK		(0x1F << 0)
6124d50934aSAdam Thomson #define DA7218_DGS_STEPS_MAX		0x1F
6134d50934aSAdam Thomson #define DA7218_DGS_RAMP_EN_SHIFT	5
6144d50934aSAdam Thomson #define DA7218_DGS_RAMP_EN_MASK		(0x1 << 5)
6154d50934aSAdam Thomson #define DA7218_DGS_SUBR_EN_SHIFT	6
6164d50934aSAdam Thomson #define DA7218_DGS_SUBR_EN_MASK		(0x1 << 6)
6174d50934aSAdam Thomson 
6184d50934aSAdam Thomson /* DA7218_DROUTING_OUTDAI_1L = 0x5C */
6194d50934aSAdam Thomson #define DA7218_OUTDAI_1L_SRC_SHIFT	0
6204d50934aSAdam Thomson #define DA7218_OUTDAI_1L_SRC_MASK	(0x7F << 0)
6214d50934aSAdam Thomson #define DA7218_DMIX_SRC_INFILT1L	0
6224d50934aSAdam Thomson #define DA7218_DMIX_SRC_INFILT1R	1
6234d50934aSAdam Thomson #define DA7218_DMIX_SRC_INFILT2L	2
6244d50934aSAdam Thomson #define DA7218_DMIX_SRC_INFILT2R	3
6254d50934aSAdam Thomson #define DA7218_DMIX_SRC_TONEGEN		4
6264d50934aSAdam Thomson #define DA7218_DMIX_SRC_DAIL		5
6274d50934aSAdam Thomson #define DA7218_DMIX_SRC_DAIR		6
6284d50934aSAdam Thomson 
6294d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_INFILT_1L_GAIN = 0x5D */
6304d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_1L_GAIN_SHIFT	0
6314d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_1L_GAIN_MASK	(0x1F << 0)
6324d50934aSAdam Thomson #define DA7218_DMIX_GAIN_MAX			0x1F
6334d50934aSAdam Thomson 
6344d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_INFILT_1R_GAIN = 0x5E */
6354d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_1R_GAIN_SHIFT	0
6364d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_1R_GAIN_MASK	(0x1F << 0)
6374d50934aSAdam Thomson 
6384d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_INFILT_2L_GAIN = 0x5F */
6394d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_2L_GAIN_SHIFT	0
6404d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_2L_GAIN_MASK	(0x1F << 0)
6414d50934aSAdam Thomson 
6424d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_INFILT_2R_GAIN = 0x60 */
6434d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_2R_GAIN_SHIFT	0
6444d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INFILT_2R_GAIN_MASK	(0x1F << 0)
6454d50934aSAdam Thomson 
6464d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_TONEGEN_GAIN = 0x61 */
6474d50934aSAdam Thomson #define DA7218_OUTDAI_1L_TONEGEN_GAIN_SHIFT	0
6484d50934aSAdam Thomson #define DA7218_OUTDAI_1L_TONEGEN_GAIN_MASK	(0x1F << 0)
6494d50934aSAdam Thomson 
6504d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_INDAI_1L_GAIN = 0x62 */
6514d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INDAI_1L_GAIN_SHIFT	0
6524d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INDAI_1L_GAIN_MASK	(0x1F << 0)
6534d50934aSAdam Thomson 
6544d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1L_INDAI_1R_GAIN = 0x63 */
6554d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INDAI_1R_GAIN_SHIFT	0
6564d50934aSAdam Thomson #define DA7218_OUTDAI_1L_INDAI_1R_GAIN_MASK	(0x1F << 0)
6574d50934aSAdam Thomson 
6584d50934aSAdam Thomson /* DA7218_DROUTING_OUTDAI_1R = 0x64 */
6594d50934aSAdam Thomson #define DA7218_OUTDAI_1R_SRC_SHIFT	0
6604d50934aSAdam Thomson #define DA7218_OUTDAI_1R_SRC_MASK	(0x7F << 0)
6614d50934aSAdam Thomson 
6624d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_INFILT_1L_GAIN = 0x65 */
6634d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_1L_GAIN_SHIFT	0
6644d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_1L_GAIN_MASK	(0x1F << 0)
6654d50934aSAdam Thomson 
6664d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_INFILT_1R_GAIN = 0x66 */
6674d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_1R_GAIN_SHIFT	0
6684d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_1R_GAIN_MASK	(0x1F << 0)
6694d50934aSAdam Thomson 
6704d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_INFILT_2L_GAIN = 0x67 */
6714d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_2L_GAIN_SHIFT	0
6724d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_2L_GAIN_MASK	(0x1F << 0)
6734d50934aSAdam Thomson 
6744d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_INFILT_2R_GAIN = 0x68 */
6754d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_2R_GAIN_SHIFT	0
6764d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INFILT_2R_GAIN_MASK	(0x1F << 0)
6774d50934aSAdam Thomson 
6784d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_TONEGEN_GAIN = 0x69 */
6794d50934aSAdam Thomson #define DA7218_OUTDAI_1R_TONEGEN_GAIN_SHIFT	0
6804d50934aSAdam Thomson #define DA7218_OUTDAI_1R_TONEGEN_GAIN_MASK	(0x1F << 0)
6814d50934aSAdam Thomson 
6824d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_INDAI_1L_GAIN = 0x6A */
6834d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INDAI_1L_GAIN_SHIFT	0
6844d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INDAI_1L_GAIN_MASK	(0x1F << 0)
6854d50934aSAdam Thomson 
6864d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_1R_INDAI_1R_GAIN = 0x6B */
6874d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INDAI_1R_GAIN_SHIFT	0
6884d50934aSAdam Thomson #define DA7218_OUTDAI_1R_INDAI_1R_GAIN_MASK	(0x1F << 0)
6894d50934aSAdam Thomson 
6904d50934aSAdam Thomson /* DA7218_DROUTING_OUTFILT_1L = 0x6C */
6914d50934aSAdam Thomson #define DA7218_OUTFILT_1L_SRC_SHIFT	0
6924d50934aSAdam Thomson #define DA7218_OUTFILT_1L_SRC_MASK	(0x7F << 0)
6934d50934aSAdam Thomson 
6944d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_INFILT_1L_GAIN = 0x6D */
6954d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_1L_GAIN_SHIFT	0
6964d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_1L_GAIN_MASK	(0x1F << 0)
6974d50934aSAdam Thomson 
6984d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_INFILT_1R_GAIN = 0x6E */
6994d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_1R_GAIN_SHIFT	0
7004d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_1R_GAIN_MASK	(0x1F << 0)
7014d50934aSAdam Thomson 
7024d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_INFILT_2L_GAIN = 0x6F */
7034d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_2L_GAIN_SHIFT	0
7044d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_2L_GAIN_MASK	(0x1F << 0)
7054d50934aSAdam Thomson 
7064d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_INFILT_2R_GAIN = 0x70 */
7074d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_2R_GAIN_SHIFT	0
7084d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INFILT_2R_GAIN_MASK	(0x1F << 0)
7094d50934aSAdam Thomson 
7104d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_TONEGEN_GAIN = 0x71 */
7114d50934aSAdam Thomson #define DA7218_OUTFILT_1L_TONEGEN_GAIN_SHIFT	0
7124d50934aSAdam Thomson #define DA7218_OUTFILT_1L_TONEGEN_GAIN_MASK	(0x1F << 0)
7134d50934aSAdam Thomson 
7144d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_INDAI_1L_GAIN = 0x72 */
7154d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INDAI_1L_GAIN_SHIFT	0
7164d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INDAI_1L_GAIN_MASK	(0x1F << 0)
7174d50934aSAdam Thomson 
7184d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1L_INDAI_1R_GAIN = 0x73 */
7194d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INDAI_1R_GAIN_SHIFT	0
7204d50934aSAdam Thomson #define DA7218_OUTFILT_1L_INDAI_1R_GAIN_MASK	(0x1F << 0)
7214d50934aSAdam Thomson 
7224d50934aSAdam Thomson /* DA7218_DROUTING_OUTFILT_1R = 0x74 */
7234d50934aSAdam Thomson #define DA7218_OUTFILT_1R_SRC_SHIFT	0
7244d50934aSAdam Thomson #define DA7218_OUTFILT_1R_SRC_MASK	(0x7F << 0)
7254d50934aSAdam Thomson 
7264d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_INFILT_1L_GAIN = 0x75 */
7274d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_1L_GAIN_SHIFT	0
7284d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_1L_GAIN_MASK	(0x1F << 0)
7294d50934aSAdam Thomson 
7304d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_INFILT_1R_GAIN = 0x76 */
7314d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_1R_GAIN_SHIFT	0
7324d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_1R_GAIN_MASK	(0x1F << 0)
7334d50934aSAdam Thomson 
7344d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_INFILT_2L_GAIN = 0x77 */
7354d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_2L_GAIN_SHIFT	0
7364d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_2L_GAIN_MASK	(0x1F << 0)
7374d50934aSAdam Thomson 
7384d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_INFILT_2R_GAIN = 0x78 */
7394d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_2R_GAIN_SHIFT	0
7404d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INFILT_2R_GAIN_MASK	(0x1F << 0)
7414d50934aSAdam Thomson 
7424d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_TONEGEN_GAIN = 0x79 */
7434d50934aSAdam Thomson #define DA7218_OUTFILT_1R_TONEGEN_GAIN_SHIFT	0
7444d50934aSAdam Thomson #define DA7218_OUTFILT_1R_TONEGEN_GAIN_MASK	(0x1F << 0)
7454d50934aSAdam Thomson 
7464d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_INDAI_1L_GAIN = 0x7A */
7474d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INDAI_1L_GAIN_SHIFT	0
7484d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INDAI_1L_GAIN_MASK	(0x1F << 0)
7494d50934aSAdam Thomson 
7504d50934aSAdam Thomson /* DA7218_DMIX_OUTFILT_1R_INDAI_1R_GAIN = 0x7B */
7514d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INDAI_1R_GAIN_SHIFT	0
7524d50934aSAdam Thomson #define DA7218_OUTFILT_1R_INDAI_1R_GAIN_MASK	(0x1F << 0)
7534d50934aSAdam Thomson 
7544d50934aSAdam Thomson /* DA7218_DROUTING_OUTDAI_2L = 0x7C */
7554d50934aSAdam Thomson #define DA7218_OUTDAI_2L_SRC_SHIFT	0
7564d50934aSAdam Thomson #define DA7218_OUTDAI_2L_SRC_MASK	(0x7F << 0)
7574d50934aSAdam Thomson 
7584d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_INFILT_1L_GAIN = 0x7D */
7594d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_1L_GAIN_SHIFT	0
7604d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_1L_GAIN_MASK	(0x1F << 0)
7614d50934aSAdam Thomson 
7624d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_INFILT_1R_GAIN = 0x7E */
7634d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_1R_GAIN_SHIFT	0
7644d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_1R_GAIN_MASK	(0x1F << 0)
7654d50934aSAdam Thomson 
7664d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_INFILT_2L_GAIN = 0x7F */
7674d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_2L_GAIN_SHIFT	0
7684d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_2L_GAIN_MASK	(0x1F << 0)
7694d50934aSAdam Thomson 
7704d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_INFILT_2R_GAIN = 0x80 */
7714d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_2R_GAIN_SHIFT	0
7724d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INFILT_2R_GAIN_MASK	(0x1F << 0)
7734d50934aSAdam Thomson 
7744d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_TONEGEN_GAIN = 0x81 */
7754d50934aSAdam Thomson #define DA7218_OUTDAI_2L_TONEGEN_GAIN_SHIFT	0
7764d50934aSAdam Thomson #define DA7218_OUTDAI_2L_TONEGEN_GAIN_MASK	(0x1F << 0)
7774d50934aSAdam Thomson 
7784d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_INDAI_1L_GAIN = 0x82 */
7794d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INDAI_1L_GAIN_SHIFT	0
7804d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INDAI_1L_GAIN_MASK	(0x1F << 0)
7814d50934aSAdam Thomson 
7824d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2L_INDAI_1R_GAIN = 0x83 */
7834d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INDAI_1R_GAIN_SHIFT	0
7844d50934aSAdam Thomson #define DA7218_OUTDAI_2L_INDAI_1R_GAIN_MASK	(0x1F << 0)
7854d50934aSAdam Thomson 
7864d50934aSAdam Thomson /* DA7218_DROUTING_OUTDAI_2R = 0x84 */
7874d50934aSAdam Thomson #define DA7218_OUTDAI_2R_SRC_SHIFT	0
7884d50934aSAdam Thomson #define DA7218_OUTDAI_2R_SRC_MASK	(0x7F << 0)
7894d50934aSAdam Thomson 
7904d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_INFILT_1L_GAIN = 0x85 */
7914d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_1L_GAIN_SHIFT	0
7924d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_1L_GAIN_MASK	(0x1F << 0)
7934d50934aSAdam Thomson 
7944d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_INFILT_1R_GAIN = 0x86 */
7954d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_1R_GAIN_SHIFT	0
7964d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_1R_GAIN_MASK	(0x1F << 0)
7974d50934aSAdam Thomson 
7984d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_INFILT_2L_GAIN = 0x87 */
7994d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_2L_GAIN_SHIFT	0
8004d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_2L_GAIN_MASK	(0x1F << 0)
8014d50934aSAdam Thomson 
8024d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_INFILT_2R_GAIN = 0x88 */
8034d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_2R_GAIN_SHIFT	0
8044d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INFILT_2R_GAIN_MASK	(0x1F << 0)
8054d50934aSAdam Thomson 
8064d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_TONEGEN_GAIN = 0x89 */
8074d50934aSAdam Thomson #define DA7218_OUTDAI_2R_TONEGEN_GAIN_SHIFT	0
8084d50934aSAdam Thomson #define DA7218_OUTDAI_2R_TONEGEN_GAIN_MASK	(0x1F << 0)
8094d50934aSAdam Thomson 
8104d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_INDAI_1L_GAIN = 0x8A */
8114d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INDAI_1L_GAIN_SHIFT	0
8124d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INDAI_1L_GAIN_MASK	(0x1F << 0)
8134d50934aSAdam Thomson 
8144d50934aSAdam Thomson /* DA7218_DMIX_OUTDAI_2R_INDAI_1R_GAIN = 0x8B */
8154d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INDAI_1R_GAIN_SHIFT	0
8164d50934aSAdam Thomson #define DA7218_OUTDAI_2R_INDAI_1R_GAIN_MASK	(0x1F << 0)
8174d50934aSAdam Thomson 
8184d50934aSAdam Thomson /* DA7218_DAI_CTRL = 0x8C */
8194d50934aSAdam Thomson #define DA7218_DAI_FORMAT_SHIFT		0
8204d50934aSAdam Thomson #define DA7218_DAI_FORMAT_MASK		(0x3 << 0)
8214d50934aSAdam Thomson #define DA7218_DAI_FORMAT_I2S		(0x0 << 0)
8224d50934aSAdam Thomson #define DA7218_DAI_FORMAT_LEFT_J	(0x1 << 0)
8234d50934aSAdam Thomson #define DA7218_DAI_FORMAT_RIGHT_J	(0x2 << 0)
8244d50934aSAdam Thomson #define DA7218_DAI_FORMAT_DSP		(0x3 << 0)
8254d50934aSAdam Thomson #define DA7218_DAI_WORD_LENGTH_SHIFT	2
8264d50934aSAdam Thomson #define DA7218_DAI_WORD_LENGTH_MASK	(0x3 << 2)
8274d50934aSAdam Thomson #define DA7218_DAI_WORD_LENGTH_S16_LE	(0x0 << 2)
8284d50934aSAdam Thomson #define DA7218_DAI_WORD_LENGTH_S20_LE	(0x1 << 2)
8294d50934aSAdam Thomson #define DA7218_DAI_WORD_LENGTH_S24_LE	(0x2 << 2)
8304d50934aSAdam Thomson #define DA7218_DAI_WORD_LENGTH_S32_LE	(0x3 << 2)
8314d50934aSAdam Thomson #define DA7218_DAI_CH_NUM_SHIFT		4
8324d50934aSAdam Thomson #define DA7218_DAI_CH_NUM_MASK		(0x7 << 4)
8334d50934aSAdam Thomson #define DA7218_DAI_CH_NUM_MAX		4
8344d50934aSAdam Thomson #define DA7218_DAI_EN_SHIFT		7
8354d50934aSAdam Thomson #define DA7218_DAI_EN_MASK		(0x1 << 7)
8364d50934aSAdam Thomson 
8374d50934aSAdam Thomson /* DA7218_DAI_TDM_CTRL = 0x8D */
8384d50934aSAdam Thomson #define DA7218_DAI_TDM_CH_EN_SHIFT	0
8394d50934aSAdam Thomson #define DA7218_DAI_TDM_CH_EN_MASK	(0xF << 0)
8404d50934aSAdam Thomson #define DA7218_DAI_TDM_MAX_SLOTS	4
8414d50934aSAdam Thomson #define DA7218_DAI_OE_SHIFT		6
8424d50934aSAdam Thomson #define DA7218_DAI_OE_MASK		(0x1 << 6)
8434d50934aSAdam Thomson #define DA7218_DAI_TDM_MODE_EN_SHIFT	7
8444d50934aSAdam Thomson #define DA7218_DAI_TDM_MODE_EN_MASK	(0x1 << 7)
8454d50934aSAdam Thomson 
8464d50934aSAdam Thomson /* DA7218_DAI_OFFSET_LOWER = 0x8E */
8474d50934aSAdam Thomson #define DA7218_DAI_OFFSET_LOWER_SHIFT	0
8484d50934aSAdam Thomson #define DA7218_DAI_OFFSET_LOWER_MASK	(0xFF << 0)
8494d50934aSAdam Thomson 
8504d50934aSAdam Thomson /* DA7218_DAI_OFFSET_UPPER = 0x8F */
8514d50934aSAdam Thomson #define DA7218_DAI_OFFSET_UPPER_SHIFT	0
8524d50934aSAdam Thomson #define DA7218_DAI_OFFSET_UPPER_MASK	(0x7 << 0)
8534d50934aSAdam Thomson 
8544d50934aSAdam Thomson /* DA7218_DAI_CLK_MODE = 0x90 */
8554d50934aSAdam Thomson #define DA7218_DAI_BCLKS_PER_WCLK_SHIFT	0
8564d50934aSAdam Thomson #define DA7218_DAI_BCLKS_PER_WCLK_MASK	(0x3 << 0)
8574d50934aSAdam Thomson #define DA7218_DAI_BCLKS_PER_WCLK_32	(0x0 << 0)
8584d50934aSAdam Thomson #define DA7218_DAI_BCLKS_PER_WCLK_64	(0x1 << 0)
8594d50934aSAdam Thomson #define DA7218_DAI_BCLKS_PER_WCLK_128	(0x2 << 0)
8604d50934aSAdam Thomson #define DA7218_DAI_BCLKS_PER_WCLK_256	(0x3 << 0)
8614d50934aSAdam Thomson #define DA7218_DAI_CLK_POL_SHIFT	2
8624d50934aSAdam Thomson #define DA7218_DAI_CLK_POL_MASK		(0x1 << 2)
8634d50934aSAdam Thomson #define DA7218_DAI_CLK_POL_INV		(0x1 << 2)
8644d50934aSAdam Thomson #define DA7218_DAI_WCLK_POL_SHIFT	3
8654d50934aSAdam Thomson #define DA7218_DAI_WCLK_POL_MASK	(0x1 << 3)
8664d50934aSAdam Thomson #define DA7218_DAI_WCLK_POL_INV		(0x1 << 3)
8674d50934aSAdam Thomson #define DA7218_DAI_WCLK_TRI_STATE_SHIFT	4
8684d50934aSAdam Thomson #define DA7218_DAI_WCLK_TRI_STATE_MASK	(0x1 << 4)
8694d50934aSAdam Thomson #define DA7218_DAI_CLK_EN_SHIFT		7
8704d50934aSAdam Thomson #define DA7218_DAI_CLK_EN_MASK		(0x1 << 7)
8714d50934aSAdam Thomson 
8724d50934aSAdam Thomson /* DA7218_PLL_CTRL = 0x91 */
8734d50934aSAdam Thomson #define DA7218_PLL_INDIV_SHIFT		0
8744d50934aSAdam Thomson #define DA7218_PLL_INDIV_MASK		(0x7 << 0)
875ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_2_TO_4_5_MHZ	(0x0 << 0)
876ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_4_5_TO_9_MHZ	(0x1 << 0)
877ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_9_TO_18_MHZ	(0x2 << 0)
878ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_18_TO_36_MHZ	(0x3 << 0)
879ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_36_TO_54_MHZ	(0x4 << 0)
8804d50934aSAdam Thomson #define DA7218_PLL_MCLK_SQR_EN_SHIFT	4
8814d50934aSAdam Thomson #define DA7218_PLL_MCLK_SQR_EN_MASK	(0x1 << 4)
8824d50934aSAdam Thomson #define DA7218_PLL_MODE_SHIFT		6
8834d50934aSAdam Thomson #define DA7218_PLL_MODE_MASK		(0x3 << 6)
8844d50934aSAdam Thomson #define DA7218_PLL_MODE_BYPASS		(0x0 << 6)
8854d50934aSAdam Thomson #define DA7218_PLL_MODE_NORMAL		(0x1 << 6)
8864d50934aSAdam Thomson #define DA7218_PLL_MODE_SRM		(0x2 << 6)
8874d50934aSAdam Thomson 
8884d50934aSAdam Thomson /* DA7218_PLL_FRAC_TOP = 0x92 */
8894d50934aSAdam Thomson #define DA7218_PLL_FBDIV_FRAC_TOP_SHIFT	0
8904d50934aSAdam Thomson #define DA7218_PLL_FBDIV_FRAC_TOP_MASK	(0x1F << 0)
8914d50934aSAdam Thomson 
8924d50934aSAdam Thomson /* DA7218_PLL_FRAC_BOT = 0x93 */
8934d50934aSAdam Thomson #define DA7218_PLL_FBDIV_FRAC_BOT_SHIFT	0
8944d50934aSAdam Thomson #define DA7218_PLL_FBDIV_FRAC_BOT_MASK	(0xFF << 0)
8954d50934aSAdam Thomson 
8964d50934aSAdam Thomson /* DA7218_PLL_INTEGER = 0x94 */
8974d50934aSAdam Thomson #define DA7218_PLL_FBDIV_INTEGER_SHIFT	0
8984d50934aSAdam Thomson #define DA7218_PLL_FBDIV_INTEGER_MASK	(0x7F << 0)
8994d50934aSAdam Thomson 
9004d50934aSAdam Thomson /* DA7218_PLL_STATUS = 0x95 */
9014d50934aSAdam Thomson #define DA7218_PLL_SRM_STATUS_SHIFT	0
9024d50934aSAdam Thomson #define DA7218_PLL_SRM_STATUS_MASK	(0xFF << 0)
9034d50934aSAdam Thomson #define DA7218_PLL_SRM_STATUS_SRM_LOCK	(0x1 << 7)
9044d50934aSAdam Thomson 
9054d50934aSAdam Thomson /* DA7218_PLL_REFOSC_CAL = 0x98 */
9064d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL_CTRL_SHIFT	0
9074d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL_CTRL_MASK		(0x1F << 0)
9084d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL_START_SHIFT	6
9094d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL_START_MASK	(0x1 << 6)
9104d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL_EN_SHIFT		7
9114d50934aSAdam Thomson #define DA7218_PLL_REFOSC_CAL_EN_MASK		(0x1 << 7)
9124d50934aSAdam Thomson 
9134d50934aSAdam Thomson /* DA7218_DAC_NG_CTRL = 0x9C */
9144d50934aSAdam Thomson #define DA7218_DAC_NG_EN_SHIFT	7
9154d50934aSAdam Thomson #define DA7218_DAC_NG_EN_MASK	(0x1 << 7)
9164d50934aSAdam Thomson 
9174d50934aSAdam Thomson /* DA7218_DAC_NG_SETUP_TIME = 0x9D */
9184d50934aSAdam Thomson #define DA7218_DAC_NG_SETUP_TIME_SHIFT	0
9194d50934aSAdam Thomson #define DA7218_DAC_NG_SETUP_TIME_MASK	(0x3 << 0)
9204d50934aSAdam Thomson #define DA7218_DAC_NG_SETUP_TIME_MAX	4
9214d50934aSAdam Thomson #define DA7218_DAC_NG_RAMPUP_RATE_SHIFT	2
9224d50934aSAdam Thomson #define DA7218_DAC_NG_RAMPUP_RATE_MASK	(0x1 << 2)
9234d50934aSAdam Thomson #define DA7218_DAC_NG_RAMPUP_RATE_MAX	2
9244d50934aSAdam Thomson #define DA7218_DAC_NG_RAMPDN_RATE_SHIFT	3
9254d50934aSAdam Thomson #define DA7218_DAC_NG_RAMPDN_RATE_MASK	(0x1 << 3)
9264d50934aSAdam Thomson #define DA7218_DAC_NG_RAMPDN_RATE_MAX	2
9274d50934aSAdam Thomson 
9284d50934aSAdam Thomson /* DA7218_DAC_NG_OFF_THRESH = 0x9E */
9294d50934aSAdam Thomson #define DA7218_DAC_NG_OFF_THRESHOLD_SHIFT	0
9304d50934aSAdam Thomson #define DA7218_DAC_NG_OFF_THRESHOLD_MASK	(0x7 << 0)
9314d50934aSAdam Thomson #define DA7218_DAC_NG_THRESHOLD_MAX		0x7
9324d50934aSAdam Thomson 
9334d50934aSAdam Thomson /* DA7218_DAC_NG_ON_THRESH = 0x9F */
9344d50934aSAdam Thomson #define DA7218_DAC_NG_ON_THRESHOLD_SHIFT	0
9354d50934aSAdam Thomson #define DA7218_DAC_NG_ON_THRESHOLD_MASK		(0x7 << 0)
9364d50934aSAdam Thomson 
9374d50934aSAdam Thomson /* DA7218_TONE_GEN_CFG1 = 0xA0 */
9384d50934aSAdam Thomson #define DA7218_DTMF_REG_SHIFT		0
9394d50934aSAdam Thomson #define DA7218_DTMF_REG_MASK		(0xF << 0)
9404d50934aSAdam Thomson #define DA7218_DTMF_REG_MAX		16
9414d50934aSAdam Thomson #define DA7218_DTMF_EN_SHIFT		4
9424d50934aSAdam Thomson #define DA7218_DTMF_EN_MASK		(0x1 << 4)
9434d50934aSAdam Thomson #define DA7218_START_STOPN_SHIFT	7
9444d50934aSAdam Thomson #define DA7218_START_STOPN_MASK		(0x1 << 7)
9454d50934aSAdam Thomson 
9464d50934aSAdam Thomson /* DA7218_TONE_GEN_CFG2 = 0xA1 */
9474d50934aSAdam Thomson #define DA7218_SWG_SEL_SHIFT	0
9484d50934aSAdam Thomson #define DA7218_SWG_SEL_MASK	(0x3 << 0)
9494d50934aSAdam Thomson #define DA7218_SWG_SEL_MAX	4
9504d50934aSAdam Thomson 
9514d50934aSAdam Thomson /* DA7218_TONE_GEN_FREQ1_L = 0xA2 */
9524d50934aSAdam Thomson #define DA7218_FREQ1_L_SHIFT	0
9534d50934aSAdam Thomson #define DA7218_FREQ1_L_MASK	(0xFF << 0)
9544d50934aSAdam Thomson #define DA7218_FREQ_MAX		0xFFFF
9554d50934aSAdam Thomson 
9564d50934aSAdam Thomson /* DA7218_TONE_GEN_FREQ1_U = 0xA3 */
9574d50934aSAdam Thomson #define DA7218_FREQ1_U_SHIFT	0
9584d50934aSAdam Thomson #define DA7218_FREQ1_U_MASK	(0xFF << 0)
9594d50934aSAdam Thomson 
9604d50934aSAdam Thomson /* DA7218_TONE_GEN_FREQ2_L = 0xA4 */
9614d50934aSAdam Thomson #define DA7218_FREQ2_L_SHIFT	0
9624d50934aSAdam Thomson #define DA7218_FREQ2_L_MASK	(0xFF << 0)
9634d50934aSAdam Thomson 
9644d50934aSAdam Thomson /* DA7218_TONE_GEN_FREQ2_U = 0xA5 */
9654d50934aSAdam Thomson #define DA7218_FREQ2_U_SHIFT	0
9664d50934aSAdam Thomson #define DA7218_FREQ2_U_MASK	(0xFF << 0)
9674d50934aSAdam Thomson 
9684d50934aSAdam Thomson /* DA7218_TONE_GEN_CYCLES = 0xA6 */
9694d50934aSAdam Thomson #define DA7218_BEEP_CYCLES_SHIFT	0
9704d50934aSAdam Thomson #define DA7218_BEEP_CYCLES_MASK		(0x7 << 0)
9714d50934aSAdam Thomson 
9724d50934aSAdam Thomson /* DA7218_TONE_GEN_ON_PER = 0xA7 */
9734d50934aSAdam Thomson #define DA7218_BEEP_ON_PER_SHIFT	0
9744d50934aSAdam Thomson #define DA7218_BEEP_ON_PER_MASK		(0x3F << 0)
9754d50934aSAdam Thomson 
9764d50934aSAdam Thomson /* DA7218_TONE_GEN_OFF_PER = 0xA8 */
9774d50934aSAdam Thomson #define DA7218_BEEP_OFF_PER_SHIFT	0
9784d50934aSAdam Thomson #define DA7218_BEEP_OFF_PER_MASK	(0x3F << 0)
9794d50934aSAdam Thomson #define DA7218_BEEP_ON_OFF_MAX		0x3F
9804d50934aSAdam Thomson 
9814d50934aSAdam Thomson /* DA7218_CP_CTRL = 0xAC */
9824d50934aSAdam Thomson #define DA7218_CP_MOD_SHIFT			2
9834d50934aSAdam Thomson #define DA7218_CP_MOD_MASK			(0x3 << 2)
9844d50934aSAdam Thomson #define DA7218_CP_MCHANGE_SHIFT			4
9854d50934aSAdam Thomson #define DA7218_CP_MCHANGE_MASK			(0x3 << 4)
9864d50934aSAdam Thomson #define DA7218_CP_MCHANGE_REL_MASK		0x3
9874d50934aSAdam Thomson #define DA7218_CP_MCHANGE_MAX			3
9884d50934aSAdam Thomson #define DA7218_CP_MCHANGE_LARGEST_VOL		0x1
9894d50934aSAdam Thomson #define DA7218_CP_MCHANGE_DAC_VOL		0x2
9904d50934aSAdam Thomson #define DA7218_CP_MCHANGE_SIG_MAG		0x3
9914d50934aSAdam Thomson #define DA7218_CP_SMALL_SWITCH_FREQ_EN_SHIFT	6
9924d50934aSAdam Thomson #define DA7218_CP_SMALL_SWITCH_FREQ_EN_MASK	(0x1 << 6)
9934d50934aSAdam Thomson #define DA7218_CP_EN_SHIFT			7
9944d50934aSAdam Thomson #define DA7218_CP_EN_MASK			(0x1 << 7)
9954d50934aSAdam Thomson 
9964d50934aSAdam Thomson /* DA7218_CP_DELAY = 0xAD */
9974d50934aSAdam Thomson #define DA7218_CP_FCONTROL_SHIFT	0
9984d50934aSAdam Thomson #define DA7218_CP_FCONTROL_MASK		(0x7 << 0)
9994d50934aSAdam Thomson #define DA7218_CP_FCONTROL_MAX		6
10004d50934aSAdam Thomson #define DA7218_CP_TAU_DELAY_SHIFT	3
10014d50934aSAdam Thomson #define DA7218_CP_TAU_DELAY_MASK	(0x7 << 3)
10024d50934aSAdam Thomson #define DA7218_CP_TAU_DELAY_MAX		8
10034d50934aSAdam Thomson 
10044d50934aSAdam Thomson /* DA7218_CP_VOL_THRESHOLD1 = 0xAE */
10054d50934aSAdam Thomson #define DA7218_CP_THRESH_VDD2_SHIFT	0
10064d50934aSAdam Thomson #define DA7218_CP_THRESH_VDD2_MASK	(0x3F << 0)
10074d50934aSAdam Thomson #define DA7218_CP_THRESH_VDD2_MAX	0x3F
10084d50934aSAdam Thomson 
10094d50934aSAdam Thomson /* DA7218_MIC_1_CTRL = 0xB4 */
10104d50934aSAdam Thomson #define DA7218_MIC_1_AMP_MUTE_EN_SHIFT	6
10114d50934aSAdam Thomson #define DA7218_MIC_1_AMP_MUTE_EN_MASK	(0x1 << 6)
10124d50934aSAdam Thomson #define DA7218_MIC_1_AMP_EN_SHIFT	7
10134d50934aSAdam Thomson #define DA7218_MIC_1_AMP_EN_MASK	(0x1 << 7)
10144d50934aSAdam Thomson 
10154d50934aSAdam Thomson /* DA7218_MIC_1_GAIN = 0xB5 */
10164d50934aSAdam Thomson #define DA7218_MIC_1_AMP_GAIN_SHIFT	0
10174d50934aSAdam Thomson #define DA7218_MIC_1_AMP_GAIN_MASK	(0x7 << 0)
10184d50934aSAdam Thomson #define DA7218_MIC_AMP_GAIN_MAX		0x7
10194d50934aSAdam Thomson 
10204d50934aSAdam Thomson /* DA7218_MIC_1_SELECT = 0xB7 */
10214d50934aSAdam Thomson #define DA7218_MIC_1_AMP_IN_SEL_SHIFT	0
10224d50934aSAdam Thomson #define DA7218_MIC_1_AMP_IN_SEL_MASK	(0x3 << 0)
10234d50934aSAdam Thomson 
10244d50934aSAdam Thomson /* DA7218_MIC_2_CTRL = 0xB8 */
10254d50934aSAdam Thomson #define DA7218_MIC_2_AMP_MUTE_EN_SHIFT	6
10264d50934aSAdam Thomson #define DA7218_MIC_2_AMP_MUTE_EN_MASK	(0x1 << 6)
10274d50934aSAdam Thomson #define DA7218_MIC_2_AMP_EN_SHIFT	7
10284d50934aSAdam Thomson #define DA7218_MIC_2_AMP_EN_MASK	(0x1 << 7)
10294d50934aSAdam Thomson 
10304d50934aSAdam Thomson /* DA7218_MIC_2_GAIN = 0xB9 */
10314d50934aSAdam Thomson #define DA7218_MIC_2_AMP_GAIN_SHIFT	0
10324d50934aSAdam Thomson #define DA7218_MIC_2_AMP_GAIN_MASK	(0x7 << 0)
10334d50934aSAdam Thomson 
10344d50934aSAdam Thomson /* DA7218_MIC_2_SELECT = 0xBB */
10354d50934aSAdam Thomson #define DA7218_MIC_2_AMP_IN_SEL_SHIFT	0
10364d50934aSAdam Thomson #define DA7218_MIC_2_AMP_IN_SEL_MASK	(0x3 << 0)
10374d50934aSAdam Thomson 
10384d50934aSAdam Thomson /* DA7218_IN_1_HPF_FILTER_CTRL = 0xBC */
10394d50934aSAdam Thomson #define DA7218_IN_1_VOICE_HPF_CORNER_SHIFT	0
10404d50934aSAdam Thomson #define DA7218_IN_1_VOICE_HPF_CORNER_MASK	(0x7 << 0)
10414d50934aSAdam Thomson #define DA7218_IN_VOICE_HPF_CORNER_MAX		8
10424d50934aSAdam Thomson #define DA7218_IN_1_VOICE_EN_SHIFT		3
10434d50934aSAdam Thomson #define DA7218_IN_1_VOICE_EN_MASK		(0x1 << 3)
10444d50934aSAdam Thomson #define DA7218_IN_1_AUDIO_HPF_CORNER_SHIFT	4
10454d50934aSAdam Thomson #define DA7218_IN_1_AUDIO_HPF_CORNER_MASK	(0x3 << 4)
10464d50934aSAdam Thomson #define DA7218_IN_1_HPF_EN_SHIFT		7
10474d50934aSAdam Thomson #define DA7218_IN_1_HPF_EN_MASK			(0x1 << 7)
10484d50934aSAdam Thomson 
10494d50934aSAdam Thomson /* DA7218_IN_2_HPF_FILTER_CTRL = 0xBD */
10504d50934aSAdam Thomson #define DA7218_IN_2_VOICE_HPF_CORNER_SHIFT	0
10514d50934aSAdam Thomson #define DA7218_IN_2_VOICE_HPF_CORNER_MASK	(0x7 << 0)
10524d50934aSAdam Thomson #define DA7218_IN_2_VOICE_EN_SHIFT		3
10534d50934aSAdam Thomson #define DA7218_IN_2_VOICE_EN_MASK		(0x1 << 3)
10544d50934aSAdam Thomson #define DA7218_IN_2_AUDIO_HPF_CORNER_SHIFT	4
10554d50934aSAdam Thomson #define DA7218_IN_2_AUDIO_HPF_CORNER_MASK	(0x3 << 4)
10564d50934aSAdam Thomson #define DA7218_IN_2_HPF_EN_SHIFT		7
10574d50934aSAdam Thomson #define DA7218_IN_2_HPF_EN_MASK			(0x1 << 7)
10584d50934aSAdam Thomson 
10594d50934aSAdam Thomson /* DA7218_ADC_1_CTRL = 0xC0 */
10604d50934aSAdam Thomson #define DA7218_ADC_1_AAF_EN_SHIFT	2
10614d50934aSAdam Thomson #define DA7218_ADC_1_AAF_EN_MASK	(0x1 << 2)
10624d50934aSAdam Thomson 
10634d50934aSAdam Thomson /* DA7218_ADC_2_CTRL = 0xC1 */
10644d50934aSAdam Thomson #define DA7218_ADC_2_AAF_EN_SHIFT	2
10654d50934aSAdam Thomson #define DA7218_ADC_2_AAF_EN_MASK	(0x1 << 2)
10664d50934aSAdam Thomson 
10674d50934aSAdam Thomson /* DA7218_ADC_MODE = 0xC2 */
10684d50934aSAdam Thomson #define DA7218_ADC_LP_MODE_SHIFT		0
10694d50934aSAdam Thomson #define DA7218_ADC_LP_MODE_MASK			(0x1 << 0)
10704d50934aSAdam Thomson #define DA7218_ADC_LVLDET_MODE_SHIFT		1
10714d50934aSAdam Thomson #define DA7218_ADC_LVLDET_MODE_MASK		(0x1 << 1)
10724d50934aSAdam Thomson #define DA7218_ADC_LVLDET_AUTO_EXIT_SHIFT	2
10734d50934aSAdam Thomson #define DA7218_ADC_LVLDET_AUTO_EXIT_MASK	(0x1 << 2)
10744d50934aSAdam Thomson 
10754d50934aSAdam Thomson /* DA7218_MIXOUT_L_CTRL = 0xCC */
10764d50934aSAdam Thomson #define DA7218_MIXOUT_L_AMP_EN_SHIFT	7
10774d50934aSAdam Thomson #define DA7218_MIXOUT_L_AMP_EN_MASK	(0x1 << 7)
10784d50934aSAdam Thomson 
10794d50934aSAdam Thomson /* DA7218_MIXOUT_L_GAIN = 0xCD */
10804d50934aSAdam Thomson #define DA7218_MIXOUT_L_AMP_GAIN_SHIFT	0
10814d50934aSAdam Thomson #define DA7218_MIXOUT_L_AMP_GAIN_MASK	(0x3 << 0)
10824d50934aSAdam Thomson #define DA7218_MIXOUT_AMP_GAIN_MIN	0x1
10834d50934aSAdam Thomson #define DA7218_MIXOUT_AMP_GAIN_MAX	0x3
10844d50934aSAdam Thomson 
10854d50934aSAdam Thomson /* DA7218_MIXOUT_R_CTRL = 0xCE */
10864d50934aSAdam Thomson #define DA7218_MIXOUT_R_AMP_EN_SHIFT	7
10874d50934aSAdam Thomson #define DA7218_MIXOUT_R_AMP_EN_MASK	(0x1 << 7)
10884d50934aSAdam Thomson 
10894d50934aSAdam Thomson /* DA7218_MIXOUT_R_GAIN = 0xCF */
10904d50934aSAdam Thomson #define DA7218_MIXOUT_R_AMP_GAIN_SHIFT	0
10914d50934aSAdam Thomson #define DA7218_MIXOUT_R_AMP_GAIN_MASK	(0x3 << 0)
10924d50934aSAdam Thomson 
10934d50934aSAdam Thomson /* DA7218_HP_L_CTRL = 0xD0 */
10944d50934aSAdam Thomson #define DA7218_HP_L_AMP_MIN_GAIN_EN_SHIFT	2
10954d50934aSAdam Thomson #define DA7218_HP_L_AMP_MIN_GAIN_EN_MASK	(0x1 << 2)
10964d50934aSAdam Thomson #define DA7218_HP_L_AMP_OE_SHIFT		3
10974d50934aSAdam Thomson #define DA7218_HP_L_AMP_OE_MASK			(0x1 << 3)
10984d50934aSAdam Thomson #define DA7218_HP_L_AMP_ZC_EN_SHIFT		4
10994d50934aSAdam Thomson #define DA7218_HP_L_AMP_ZC_EN_MASK		(0x1 << 4)
11004d50934aSAdam Thomson #define DA7218_HP_L_AMP_RAMP_EN_SHIFT		5
11014d50934aSAdam Thomson #define DA7218_HP_L_AMP_RAMP_EN_MASK		(0x1 << 5)
11024d50934aSAdam Thomson #define DA7218_HP_L_AMP_MUTE_EN_SHIFT		6
11034d50934aSAdam Thomson #define DA7218_HP_L_AMP_MUTE_EN_MASK		(0x1 << 6)
11044d50934aSAdam Thomson #define DA7218_HP_L_AMP_EN_SHIFT		7
11054d50934aSAdam Thomson #define DA7218_HP_L_AMP_EN_MASK			(0x1 << 7)
11064d50934aSAdam Thomson #define DA7218_HP_AMP_OE_MASK			(0x1 << 3)
11074d50934aSAdam Thomson 
11084d50934aSAdam Thomson /* DA7218_HP_L_GAIN = 0xD1 */
11094d50934aSAdam Thomson #define DA7218_HP_L_AMP_GAIN_SHIFT	0
11104d50934aSAdam Thomson #define DA7218_HP_L_AMP_GAIN_MASK	(0x3F << 0)
11114d50934aSAdam Thomson #define DA7218_HP_AMP_GAIN_MIN		0x15
11124d50934aSAdam Thomson #define DA7218_HP_AMP_GAIN_MAX		0x3F
11134d50934aSAdam Thomson 
11144d50934aSAdam Thomson /* DA7218_HP_R_CTRL = 0xD2 */
11154d50934aSAdam Thomson #define DA7218_HP_R_AMP_MIN_GAIN_EN_SHIFT	2
11164d50934aSAdam Thomson #define DA7218_HP_R_AMP_MIN_GAIN_EN_MASK	(0x1 << 2)
11174d50934aSAdam Thomson #define DA7218_HP_R_AMP_OE_SHIFT		3
11184d50934aSAdam Thomson #define DA7218_HP_R_AMP_OE_MASK			(0x1 << 3)
11194d50934aSAdam Thomson #define DA7218_HP_R_AMP_ZC_EN_SHIFT		4
11204d50934aSAdam Thomson #define DA7218_HP_R_AMP_ZC_EN_MASK		(0x1 << 4)
11214d50934aSAdam Thomson #define DA7218_HP_R_AMP_RAMP_EN_SHIFT		5
11224d50934aSAdam Thomson #define DA7218_HP_R_AMP_RAMP_EN_MASK		(0x1 << 5)
11234d50934aSAdam Thomson #define DA7218_HP_R_AMP_MUTE_EN_SHIFT		6
11244d50934aSAdam Thomson #define DA7218_HP_R_AMP_MUTE_EN_MASK		(0x1 << 6)
11254d50934aSAdam Thomson #define DA7218_HP_R_AMP_EN_SHIFT		7
11264d50934aSAdam Thomson #define DA7218_HP_R_AMP_EN_MASK			(0x1 << 7)
11274d50934aSAdam Thomson 
11284d50934aSAdam Thomson /* DA7218_HP_R_GAIN = 0xD3 */
11294d50934aSAdam Thomson #define DA7218_HP_R_AMP_GAIN_SHIFT	0
11304d50934aSAdam Thomson #define DA7218_HP_R_AMP_GAIN_MASK	(0x3F << 0)
11314d50934aSAdam Thomson 
11324d50934aSAdam Thomson /* DA7218_HP_SNGL_CTRL = 0xD4 */
11334d50934aSAdam Thomson #define DA7218_HP_AMP_STEREO_DETECT_STATUS_SHIFT	0
11344d50934aSAdam Thomson #define DA7218_HP_AMP_STEREO_DETECT_STATUS_MASK		(0x1 << 0)
11354d50934aSAdam Thomson #define DA7218_HPL_AMP_LOAD_DETECT_STATUS_SHIFT		1
11364d50934aSAdam Thomson #define DA7218_HPL_AMP_LOAD_DETECT_STATUS_MASK		(0x1 << 1)
11374d50934aSAdam Thomson #define DA7218_HPR_AMP_LOAD_DETECT_STATUS_SHIFT		2
11384d50934aSAdam Thomson #define DA7218_HPR_AMP_LOAD_DETECT_STATUS_MASK		(0x1 << 2)
11394d50934aSAdam Thomson #define DA7218_HP_AMP_LOAD_DETECT_EN_SHIFT		6
11404d50934aSAdam Thomson #define DA7218_HP_AMP_LOAD_DETECT_EN_MASK		(0x1 << 6)
11414d50934aSAdam Thomson #define DA7218_HP_AMP_STEREO_DETECT_EN_SHIFT		7
11424d50934aSAdam Thomson #define DA7218_HP_AMP_STEREO_DETECT_EN_MASK		(0x1 << 7)
11434d50934aSAdam Thomson 
11444d50934aSAdam Thomson /* DA7218_HP_DIFF_CTRL = 0xD5 */
11454d50934aSAdam Thomson #define DA7218_HP_AMP_DIFF_MODE_EN_SHIFT	0
11464d50934aSAdam Thomson #define DA7218_HP_AMP_DIFF_MODE_EN_MASK		(0x1 << 0)
11474d50934aSAdam Thomson #define DA7218_HP_AMP_SINGLE_SUPPLY_EN_SHIFT	4
11484d50934aSAdam Thomson #define DA7218_HP_AMP_SINGLE_SUPPLY_EN_MASK	(0x1 << 4)
11494d50934aSAdam Thomson 
11504d50934aSAdam Thomson /* DA7218_HP_DIFF_UNLOCK = 0xD7 */
11514d50934aSAdam Thomson #define DA7218_HP_DIFF_UNLOCK_SHIFT	0
11524d50934aSAdam Thomson #define DA7218_HP_DIFF_UNLOCK_MASK	(0x1 << 0)
11534d50934aSAdam Thomson #define DA7218_HP_DIFF_UNLOCK_VAL	0xC3
11544d50934aSAdam Thomson 
11554d50934aSAdam Thomson /* DA7218_HPLDET_JACK = 0xD8 */
11564d50934aSAdam Thomson #define DA7218_HPLDET_JACK_RATE_SHIFT		0
11574d50934aSAdam Thomson #define DA7218_HPLDET_JACK_RATE_MASK		(0x7 << 0)
11584d50934aSAdam Thomson #define DA7218_HPLDET_JACK_DEBOUNCE_SHIFT	3
11594d50934aSAdam Thomson #define DA7218_HPLDET_JACK_DEBOUNCE_MASK	(0x3 << 3)
11604d50934aSAdam Thomson #define DA7218_HPLDET_JACK_THR_SHIFT		5
11614d50934aSAdam Thomson #define DA7218_HPLDET_JACK_THR_MASK		(0x3 << 5)
11624d50934aSAdam Thomson #define DA7218_HPLDET_JACK_EN_SHIFT		7
11634d50934aSAdam Thomson #define DA7218_HPLDET_JACK_EN_MASK		(0x1 << 7)
11644d50934aSAdam Thomson 
11654d50934aSAdam Thomson /* DA7218_HPLDET_CTRL = 0xD9 */
11664d50934aSAdam Thomson #define DA7218_HPLDET_COMP_INV_SHIFT		0
11674d50934aSAdam Thomson #define DA7218_HPLDET_COMP_INV_MASK		(0x1 << 0)
11684d50934aSAdam Thomson #define DA7218_HPLDET_HYST_EN_SHIFT		1
11694d50934aSAdam Thomson #define DA7218_HPLDET_HYST_EN_MASK		(0x1 << 1)
11704d50934aSAdam Thomson #define DA7218_HPLDET_DISCHARGE_EN_SHIFT	7
11714d50934aSAdam Thomson #define DA7218_HPLDET_DISCHARGE_EN_MASK		(0x1 << 7)
11724d50934aSAdam Thomson 
11734d50934aSAdam Thomson /* DA7218_HPLDET_TEST = 0xDA */
11744d50934aSAdam Thomson #define DA7218_HPLDET_COMP_STS_SHIFT	4
11754d50934aSAdam Thomson #define DA7218_HPLDET_COMP_STS_MASK	(0x1 << 4)
11764d50934aSAdam Thomson 
11774d50934aSAdam Thomson /* DA7218_REFERENCES = 0xDC */
11784d50934aSAdam Thomson #define DA7218_BIAS_EN_SHIFT	3
11794d50934aSAdam Thomson #define DA7218_BIAS_EN_MASK	(0x1 << 3)
11804d50934aSAdam Thomson 
11814d50934aSAdam Thomson /* DA7218_IO_CTRL = 0xE0 */
11824d50934aSAdam Thomson #define DA7218_IO_VOLTAGE_LEVEL_SHIFT		0
11834d50934aSAdam Thomson #define DA7218_IO_VOLTAGE_LEVEL_MASK		(0x1 << 0)
11844d50934aSAdam Thomson #define DA7218_IO_VOLTAGE_LEVEL_2_5V_3_6V	0
11854d50934aSAdam Thomson #define DA7218_IO_VOLTAGE_LEVEL_1_5V_2_5V	1
11864d50934aSAdam Thomson 
11874d50934aSAdam Thomson /* DA7218_LDO_CTRL = 0xE1 */
11884d50934aSAdam Thomson #define DA7218_LDO_LEVEL_SELECT_SHIFT	4
11894d50934aSAdam Thomson #define DA7218_LDO_LEVEL_SELECT_MASK	(0x3 << 4)
11904d50934aSAdam Thomson #define DA7218_LDO_EN_SHIFT		7
11914d50934aSAdam Thomson #define DA7218_LDO_EN_MASK		(0x1 << 7)
11924d50934aSAdam Thomson 
11934d50934aSAdam Thomson /* DA7218_SIDETONE_CTRL = 0xE4 */
11944d50934aSAdam Thomson #define DA7218_SIDETONE_MUTE_EN_SHIFT	6
11954d50934aSAdam Thomson #define DA7218_SIDETONE_MUTE_EN_MASK	(0x1 << 6)
11964d50934aSAdam Thomson #define DA7218_SIDETONE_FILTER_EN_SHIFT	7
11974d50934aSAdam Thomson #define DA7218_SIDETONE_FILTER_EN_MASK	(0x1 << 7)
11984d50934aSAdam Thomson 
11994d50934aSAdam Thomson /* DA7218_SIDETONE_IN_SELECT = 0xE5 */
12004d50934aSAdam Thomson #define DA7218_SIDETONE_IN_SELECT_SHIFT	0
12014d50934aSAdam Thomson #define DA7218_SIDETONE_IN_SELECT_MASK	(0x3 << 0)
12024d50934aSAdam Thomson #define DA7218_SIDETONE_IN_SELECT_MAX	4
12034d50934aSAdam Thomson 
12044d50934aSAdam Thomson /* DA7218_SIDETONE_GAIN = 0xE6 */
12054d50934aSAdam Thomson #define DA7218_SIDETONE_GAIN_SHIFT	0
12064d50934aSAdam Thomson #define DA7218_SIDETONE_GAIN_MASK	(0x1F << 0)
12074d50934aSAdam Thomson 
12084d50934aSAdam Thomson /* DA7218_DROUTING_ST_OUTFILT_1L = 0xE8 */
12094d50934aSAdam Thomson #define DA7218_OUTFILT_ST_1L_SRC_SHIFT	0
12104d50934aSAdam Thomson #define DA7218_OUTFILT_ST_1L_SRC_MASK	(0x7 << 0)
12114d50934aSAdam Thomson #define DA7218_DMIX_ST_SRC_OUTFILT1L	0
12124d50934aSAdam Thomson #define DA7218_DMIX_ST_SRC_OUTFILT1R	1
12134d50934aSAdam Thomson #define DA7218_DMIX_ST_SRC_SIDETONE	2
12144d50934aSAdam Thomson 
12154d50934aSAdam Thomson /* DA7218_DROUTING_ST_OUTFILT_1R = 0xE9 */
12164d50934aSAdam Thomson #define DA7218_OUTFILT_ST_1R_SRC_SHIFT	0
12174d50934aSAdam Thomson #define DA7218_OUTFILT_ST_1R_SRC_MASK	(0x7 << 0)
12184d50934aSAdam Thomson 
12194d50934aSAdam Thomson /* DA7218_SIDETONE_BIQ_3STAGE_DATA = 0xEA */
12204d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_DATA_SHIFT	0
12214d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_DATA_MASK	(0xFF << 0)
12224d50934aSAdam Thomson 
12234d50934aSAdam Thomson /* DA7218_SIDETONE_BIQ_3STAGE_ADDR = 0xEB */
12244d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_ADDR_SHIFT	0
12254d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_ADDR_MASK	(0x1F << 0)
12264d50934aSAdam Thomson #define DA7218_SIDETONE_BIQ_3STAGE_CFG_SIZE	30
12274d50934aSAdam Thomson 
12284d50934aSAdam Thomson /* DA7218_EVENT_STATUS = 0xEC */
12294d50934aSAdam Thomson #define DA7218_HPLDET_JACK_STS_SHIFT	7
12304d50934aSAdam Thomson #define DA7218_HPLDET_JACK_STS_MASK	(0x1 << 7)
12314d50934aSAdam Thomson 
12324d50934aSAdam Thomson /* DA7218_EVENT = 0xED */
12334d50934aSAdam Thomson #define DA7218_LVL_DET_EVENT_SHIFT	0
12344d50934aSAdam Thomson #define DA7218_LVL_DET_EVENT_MASK	(0x1 << 0)
12354d50934aSAdam Thomson #define DA7218_HPLDET_JACK_EVENT_SHIFT	7
12364d50934aSAdam Thomson #define DA7218_HPLDET_JACK_EVENT_MASK	(0x1 << 7)
12374d50934aSAdam Thomson 
12384d50934aSAdam Thomson /* DA7218_EVENT_MASK	= 0xEE */
12394d50934aSAdam Thomson #define DA7218_LVL_DET_EVENT_MSK_SHIFT		0
12404d50934aSAdam Thomson #define DA7218_LVL_DET_EVENT_MSK_MASK		(0x1 << 0)
12414d50934aSAdam Thomson #define DA7218_HPLDET_JACK_EVENT_IRQ_MSK_SHIFT	7
12424d50934aSAdam Thomson #define DA7218_HPLDET_JACK_EVENT_IRQ_MSK_MASK	(0x1 << 7)
12434d50934aSAdam Thomson 
12444d50934aSAdam Thomson /* DA7218_DMIC_1_CTRL = 0xF0 */
12454d50934aSAdam Thomson #define DA7218_DMIC_1_DATA_SEL_SHIFT	0
12464d50934aSAdam Thomson #define DA7218_DMIC_1_DATA_SEL_MASK	(0x1 << 0)
12474d50934aSAdam Thomson #define DA7218_DMIC_1_SAMPLEPHASE_SHIFT	1
12484d50934aSAdam Thomson #define DA7218_DMIC_1_SAMPLEPHASE_MASK	(0x1 << 1)
12494d50934aSAdam Thomson #define DA7218_DMIC_1_CLK_RATE_SHIFT	2
12504d50934aSAdam Thomson #define DA7218_DMIC_1_CLK_RATE_MASK	(0x1 << 2)
12514d50934aSAdam Thomson #define DA7218_DMIC_1L_EN_SHIFT		6
12524d50934aSAdam Thomson #define DA7218_DMIC_1L_EN_MASK		(0x1 << 6)
12534d50934aSAdam Thomson #define DA7218_DMIC_1R_EN_SHIFT		7
12544d50934aSAdam Thomson #define DA7218_DMIC_1R_EN_MASK		(0x1 << 7)
12554d50934aSAdam Thomson 
12564d50934aSAdam Thomson /* DA7218_DMIC_2_CTRL = 0xF1 */
12574d50934aSAdam Thomson #define DA7218_DMIC_2_DATA_SEL_SHIFT	0
12584d50934aSAdam Thomson #define DA7218_DMIC_2_DATA_SEL_MASK	(0x1 << 0)
12594d50934aSAdam Thomson #define DA7218_DMIC_2_SAMPLEPHASE_SHIFT	1
12604d50934aSAdam Thomson #define DA7218_DMIC_2_SAMPLEPHASE_MASK	(0x1 << 1)
12614d50934aSAdam Thomson #define DA7218_DMIC_2_CLK_RATE_SHIFT	2
12624d50934aSAdam Thomson #define DA7218_DMIC_2_CLK_RATE_MASK	(0x1 << 2)
12634d50934aSAdam Thomson #define DA7218_DMIC_2L_EN_SHIFT		6
12644d50934aSAdam Thomson #define DA7218_DMIC_2L_EN_MASK		(0x1 << 6)
12654d50934aSAdam Thomson #define DA7218_DMIC_2R_EN_SHIFT		7
12664d50934aSAdam Thomson #define DA7218_DMIC_2R_EN_MASK		(0x1 << 7)
12674d50934aSAdam Thomson 
12684d50934aSAdam Thomson /* DA7218_IN_1L_GAIN = 0xF4 */
12694d50934aSAdam Thomson #define DA7218_IN_1L_DIGITAL_GAIN_SHIFT	0
12704d50934aSAdam Thomson #define DA7218_IN_1L_DIGITAL_GAIN_MASK	(0x7F << 0)
12714d50934aSAdam Thomson #define DA7218_IN_DIGITAL_GAIN_MAX	0x7F
12724d50934aSAdam Thomson 
12734d50934aSAdam Thomson /* DA7218_IN_1R_GAIN = 0xF5 */
12744d50934aSAdam Thomson #define DA7218_IN_1R_DIGITAL_GAIN_SHIFT	0
12754d50934aSAdam Thomson #define DA7218_IN_1R_DIGITAL_GAIN_MASK	(0x7F << 0)
12764d50934aSAdam Thomson 
12774d50934aSAdam Thomson /* DA7218_IN_2L_GAIN = 0xF6 */
12784d50934aSAdam Thomson #define DA7218_IN_2L_DIGITAL_GAIN_SHIFT	0
12794d50934aSAdam Thomson #define DA7218_IN_2L_DIGITAL_GAIN_MASK	(0x7F << 0)
12804d50934aSAdam Thomson 
12814d50934aSAdam Thomson /* DA7218_IN_2R_GAIN = 0xF7 */
12824d50934aSAdam Thomson #define DA7218_IN_2R_DIGITAL_GAIN_SHIFT	0
12834d50934aSAdam Thomson #define DA7218_IN_2R_DIGITAL_GAIN_MASK	(0x7F << 0)
12844d50934aSAdam Thomson 
12854d50934aSAdam Thomson /* DA7218_OUT_1L_GAIN = 0xF8 */
12864d50934aSAdam Thomson #define DA7218_OUT_1L_DIGITAL_GAIN_SHIFT	0
12874d50934aSAdam Thomson #define DA7218_OUT_1L_DIGITAL_GAIN_MASK		(0xFF << 0)
12884d50934aSAdam Thomson #define DA7218_OUT_DIGITAL_GAIN_MIN		0x0
12894d50934aSAdam Thomson #define DA7218_OUT_DIGITAL_GAIN_MAX		0x97
12904d50934aSAdam Thomson 
12914d50934aSAdam Thomson /* DA7218_OUT_1R_GAIN = 0xF9 */
12924d50934aSAdam Thomson #define DA7218_OUT_1R_DIGITAL_GAIN_SHIFT	0
12934d50934aSAdam Thomson #define DA7218_OUT_1R_DIGITAL_GAIN_MASK		(0xFF << 0)
12944d50934aSAdam Thomson 
12954d50934aSAdam Thomson /* DA7218_MICBIAS_CTRL = 0xFC */
12964d50934aSAdam Thomson #define DA7218_MICBIAS_1_LEVEL_SHIFT	0
12974d50934aSAdam Thomson #define DA7218_MICBIAS_1_LEVEL_MASK	(0x7 << 0)
12984d50934aSAdam Thomson #define DA7218_MICBIAS_1_LP_MODE_SHIFT	3
12994d50934aSAdam Thomson #define DA7218_MICBIAS_1_LP_MODE_MASK	(0x1 << 3)
13004d50934aSAdam Thomson #define DA7218_MICBIAS_2_LEVEL_SHIFT	4
13014d50934aSAdam Thomson #define DA7218_MICBIAS_2_LEVEL_MASK	(0x7 << 4)
13024d50934aSAdam Thomson #define DA7218_MICBIAS_2_LP_MODE_SHIFT	7
13034d50934aSAdam Thomson #define DA7218_MICBIAS_2_LP_MODE_MASK	(0x1 << 7)
13044d50934aSAdam Thomson 
13054d50934aSAdam Thomson /* DA7218_MICBIAS_EN = 0xFD */
13064d50934aSAdam Thomson #define DA7218_MICBIAS_1_EN_SHIFT	0
13074d50934aSAdam Thomson #define DA7218_MICBIAS_1_EN_MASK	(0x1 << 0)
13084d50934aSAdam Thomson #define DA7218_MICBIAS_2_EN_SHIFT	4
13094d50934aSAdam Thomson #define DA7218_MICBIAS_2_EN_MASK	(0x1 << 4)
13104d50934aSAdam Thomson 
13114d50934aSAdam Thomson 
13124d50934aSAdam Thomson /*
13134d50934aSAdam Thomson  * General defines & data
13144d50934aSAdam Thomson  */
13154d50934aSAdam Thomson 
13164d50934aSAdam Thomson /* Register inversion */
13174d50934aSAdam Thomson #define DA7218_NO_INVERT	0
13184d50934aSAdam Thomson #define DA7218_INVERT		1
13194d50934aSAdam Thomson 
13204d50934aSAdam Thomson /* Byte related defines */
13214d50934aSAdam Thomson #define DA7218_BYTE_SHIFT	8
13224d50934aSAdam Thomson #define DA7218_BYTE_MASK	0xFF
13234d50934aSAdam Thomson #define DA7218_2BYTE_SHIFT	16
13244d50934aSAdam Thomson #define DA7218_2BYTE_MASK	0xFFFF
13254d50934aSAdam Thomson 
13264d50934aSAdam Thomson /* PLL Output Frequencies */
13274d50934aSAdam Thomson #define DA7218_PLL_FREQ_OUT_90316	90316800
13284d50934aSAdam Thomson #define DA7218_PLL_FREQ_OUT_98304	98304000
13294d50934aSAdam Thomson 
1330ae48a35cSAdam Thomson /* PLL Frequency Dividers */
1331ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_2_TO_4_5_MHZ_VAL	1
1332ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_4_5_TO_9_MHZ_VAL	2
1333ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_9_TO_18_MHZ_VAL	4
1334ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_18_TO_36_MHZ_VAL	8
1335ae48a35cSAdam Thomson #define DA7218_PLL_INDIV_36_TO_54_MHZ_VAL	16
1336ae48a35cSAdam Thomson 
13374d50934aSAdam Thomson /* ALC Calibration */
13384d50934aSAdam Thomson #define DA7218_ALC_CALIB_DELAY_MIN	2500
13394d50934aSAdam Thomson #define DA7218_ALC_CALIB_DELAY_MAX	5000
13404d50934aSAdam Thomson #define DA7218_ALC_CALIB_MAX_TRIES	5
13414d50934aSAdam Thomson 
13424d50934aSAdam Thomson /* Ref Oscillator */
13434d50934aSAdam Thomson #define DA7218_REF_OSC_CHECK_DELAY_MIN	5000
13444d50934aSAdam Thomson #define DA7218_REF_OSC_CHECK_DELAY_MAX	10000
13454d50934aSAdam Thomson #define DA7218_REF_OSC_CHECK_TRIES	4
13464d50934aSAdam Thomson 
13474d50934aSAdam Thomson /* SRM */
13484d50934aSAdam Thomson #define DA7218_SRM_CHECK_DELAY		50
13494d50934aSAdam Thomson #define DA7218_SRM_CHECK_TRIES		8
13504d50934aSAdam Thomson 
13514d50934aSAdam Thomson /* Mic Level Detect */
13524d50934aSAdam Thomson #define DA7218_MIC_LVL_DET_DELAY	50
13534d50934aSAdam Thomson 
13544d50934aSAdam Thomson enum da7218_biq_cfg {
13554d50934aSAdam Thomson 	DA7218_BIQ_CFG_DATA = 0,
13564d50934aSAdam Thomson 	DA7218_BIQ_CFG_ADDR,
13574d50934aSAdam Thomson 	DA7218_BIQ_CFG_SIZE,
13584d50934aSAdam Thomson };
13594d50934aSAdam Thomson 
13604d50934aSAdam Thomson enum da7218_clk_src {
13614d50934aSAdam Thomson 	DA7218_CLKSRC_MCLK = 0,
13624d50934aSAdam Thomson 	DA7218_CLKSRC_MCLK_SQR,
13634d50934aSAdam Thomson };
13644d50934aSAdam Thomson 
13654d50934aSAdam Thomson enum da7218_sys_clk {
13664d50934aSAdam Thomson 	DA7218_SYSCLK_MCLK = 0,
13674d50934aSAdam Thomson 	DA7218_SYSCLK_PLL,
13684d50934aSAdam Thomson 	DA7218_SYSCLK_PLL_SRM,
13694d50934aSAdam Thomson };
13704d50934aSAdam Thomson 
13714d50934aSAdam Thomson enum da7218_dev_id {
13724d50934aSAdam Thomson 	DA7217_DEV_ID = 0,
13734d50934aSAdam Thomson 	DA7218_DEV_ID,
13744d50934aSAdam Thomson };
13754d50934aSAdam Thomson 
13764d50934aSAdam Thomson /* Regulators */
13774d50934aSAdam Thomson enum da7218_supplies {
13784d50934aSAdam Thomson 	DA7218_SUPPLY_VDD = 0,
13794d50934aSAdam Thomson 	DA7218_SUPPLY_VDDMIC,
13804d50934aSAdam Thomson 	DA7218_SUPPLY_VDDIO,
13814d50934aSAdam Thomson 	DA7218_NUM_SUPPLIES,
13824d50934aSAdam Thomson };
13834d50934aSAdam Thomson 
13844d50934aSAdam Thomson /* Private data */
13854d50934aSAdam Thomson struct da7218_priv {
13864d50934aSAdam Thomson 	struct da7218_pdata *pdata;
13874d50934aSAdam Thomson 
13884d50934aSAdam Thomson 	struct regulator_bulk_data supplies[DA7218_NUM_SUPPLIES];
13894d50934aSAdam Thomson 	struct regmap *regmap;
13904d50934aSAdam Thomson 	int dev_id;
13914d50934aSAdam Thomson 
13924d50934aSAdam Thomson 	struct snd_soc_jack *jack;
13934d50934aSAdam Thomson 	int irq;
13944d50934aSAdam Thomson 
13954d50934aSAdam Thomson 	struct clk *mclk;
13964d50934aSAdam Thomson 	unsigned int mclk_rate;
13974d50934aSAdam Thomson 
13984d50934aSAdam Thomson 	bool hp_single_supply;
13994d50934aSAdam Thomson 	bool master;
14004d50934aSAdam Thomson 	u8 alc_en;
14014d50934aSAdam Thomson 	u8 in_filt_en;
14024d50934aSAdam Thomson 	u8 mic_lvl_det_en;
14034d50934aSAdam Thomson 
14044d50934aSAdam Thomson 	u8 biq_5stage_coeff[DA7218_OUT_1_BIQ_5STAGE_CFG_SIZE];
14054d50934aSAdam Thomson 	u8 stbiq_3stage_coeff[DA7218_SIDETONE_BIQ_3STAGE_CFG_SIZE];
14064d50934aSAdam Thomson };
14074d50934aSAdam Thomson 
14084d50934aSAdam Thomson /* HP detect control */
1409bc596c42SKuninori Morimoto int da7218_hpldet(struct snd_soc_component *component, struct snd_soc_jack *jack);
14104d50934aSAdam Thomson 
14114d50934aSAdam Thomson #endif /* _DA7218_H */
1412