xref: /OK3568_Linux_fs/kernel/sound/soc/codecs/max98925.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * max98925.h -- MAX98925 ALSA SoC Audio driver
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright 2013-2015 Maxim Integrated Products
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _MAX98925_H
9*4882a593Smuzhiyun #define _MAX98925_H
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #define	MAX98925_VERSION	0x51
12*4882a593Smuzhiyun #define	MAX98925_VERSION1	0x80
13*4882a593Smuzhiyun #define MAX98925_VBAT_DATA		0x00
14*4882a593Smuzhiyun #define MAX98925_VBST_DATA		0x01
15*4882a593Smuzhiyun #define MAX98925_LIVE_STATUS0		0x02
16*4882a593Smuzhiyun #define MAX98925_LIVE_STATUS1		0x03
17*4882a593Smuzhiyun #define MAX98925_LIVE_STATUS2		0x04
18*4882a593Smuzhiyun #define MAX98925_STATE0			0x05
19*4882a593Smuzhiyun #define MAX98925_STATE1			0x06
20*4882a593Smuzhiyun #define MAX98925_STATE2			0x07
21*4882a593Smuzhiyun #define MAX98925_FLAG0			0x08
22*4882a593Smuzhiyun #define MAX98925_FLAG1			0x09
23*4882a593Smuzhiyun #define MAX98925_FLAG2			0x0A
24*4882a593Smuzhiyun #define MAX98925_IRQ_ENABLE0		0x0B
25*4882a593Smuzhiyun #define MAX98925_IRQ_ENABLE1		0x0C
26*4882a593Smuzhiyun #define MAX98925_IRQ_ENABLE2		0x0D
27*4882a593Smuzhiyun #define MAX98925_IRQ_CLEAR0		0x0E
28*4882a593Smuzhiyun #define MAX98925_IRQ_CLEAR1		0x0F
29*4882a593Smuzhiyun #define MAX98925_IRQ_CLEAR2		0x10
30*4882a593Smuzhiyun #define MAX98925_MAP0			0x11
31*4882a593Smuzhiyun #define MAX98925_MAP1			0x12
32*4882a593Smuzhiyun #define MAX98925_MAP2			0x13
33*4882a593Smuzhiyun #define MAX98925_MAP3			0x14
34*4882a593Smuzhiyun #define MAX98925_MAP4			0x15
35*4882a593Smuzhiyun #define MAX98925_MAP5			0x16
36*4882a593Smuzhiyun #define MAX98925_MAP6			0x17
37*4882a593Smuzhiyun #define MAX98925_MAP7			0x18
38*4882a593Smuzhiyun #define MAX98925_MAP8			0x19
39*4882a593Smuzhiyun #define MAX98925_DAI_CLK_MODE1		0x1A
40*4882a593Smuzhiyun #define MAX98925_DAI_CLK_MODE2		0x1B
41*4882a593Smuzhiyun #define MAX98925_DAI_CLK_DIV_M_MSBS	0x1C
42*4882a593Smuzhiyun #define MAX98925_DAI_CLK_DIV_M_LSBS	0x1D
43*4882a593Smuzhiyun #define MAX98925_DAI_CLK_DIV_N_MSBS	0x1E
44*4882a593Smuzhiyun #define MAX98925_DAI_CLK_DIV_N_LSBS	0x1F
45*4882a593Smuzhiyun #define MAX98925_FORMAT			0x20
46*4882a593Smuzhiyun #define MAX98925_TDM_SLOT_SELECT	0x21
47*4882a593Smuzhiyun #define MAX98925_DOUT_CFG_VMON		0x22
48*4882a593Smuzhiyun #define MAX98925_DOUT_CFG_IMON		0x23
49*4882a593Smuzhiyun #define MAX98925_DOUT_CFG_VBAT		0x24
50*4882a593Smuzhiyun #define MAX98925_DOUT_CFG_VBST		0x25
51*4882a593Smuzhiyun #define MAX98925_DOUT_CFG_FLAG		0x26
52*4882a593Smuzhiyun #define MAX98925_DOUT_HIZ_CFG1		0x27
53*4882a593Smuzhiyun #define MAX98925_DOUT_HIZ_CFG2		0x28
54*4882a593Smuzhiyun #define MAX98925_DOUT_HIZ_CFG3		0x29
55*4882a593Smuzhiyun #define MAX98925_DOUT_HIZ_CFG4		0x2A
56*4882a593Smuzhiyun #define MAX98925_DOUT_DRV_STRENGTH	0x2B
57*4882a593Smuzhiyun #define MAX98925_FILTERS		0x2C
58*4882a593Smuzhiyun #define MAX98925_GAIN			0x2D
59*4882a593Smuzhiyun #define MAX98925_GAIN_RAMPING		0x2E
60*4882a593Smuzhiyun #define MAX98925_SPK_AMP		0x2F
61*4882a593Smuzhiyun #define MAX98925_THRESHOLD		0x30
62*4882a593Smuzhiyun #define MAX98925_ALC_ATTACK		0x31
63*4882a593Smuzhiyun #define MAX98925_ALC_ATTEN_RLS		0x32
64*4882a593Smuzhiyun #define MAX98925_ALC_HOLD_RLS		0x33
65*4882a593Smuzhiyun #define MAX98925_ALC_CONFIGURATION	0x34
66*4882a593Smuzhiyun #define MAX98925_BOOST_CONVERTER	0x35
67*4882a593Smuzhiyun #define MAX98925_BLOCK_ENABLE		0x36
68*4882a593Smuzhiyun #define MAX98925_CONFIGURATION		0x37
69*4882a593Smuzhiyun #define MAX98925_GLOBAL_ENABLE		0x38
70*4882a593Smuzhiyun #define MAX98925_BOOST_LIMITER		0x3A
71*4882a593Smuzhiyun #define MAX98925_REV_VERSION		0xFF
72*4882a593Smuzhiyun 
73*4882a593Smuzhiyun #define MAX98925_REG_CNT               (MAX98925_R03A_BOOST_LIMITER+1)
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun /* MAX98925 Register Bit Fields */
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun /* MAX98925_R002_LIVE_STATUS0 */
78*4882a593Smuzhiyun #define M98925_THERMWARN_STATUS_MASK			(1<<3)
79*4882a593Smuzhiyun #define M98925_THERMWARN_STATUS_SHIFT			3
80*4882a593Smuzhiyun #define M98925_THERMWARN_STATUS_WIDTH			1
81*4882a593Smuzhiyun #define M98925_THERMSHDN_STATUS_MASK			(1<<1)
82*4882a593Smuzhiyun #define M98925_THERMSHDN_STATUS_SHIFT			1
83*4882a593Smuzhiyun #define M98925_THERMSHDN_STATUS_WIDTH			1
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun /* MAX98925_R003_LIVE_STATUS1 */
86*4882a593Smuzhiyun #define M98925_SPKCURNT_STATUS_MASK			(1<<5)
87*4882a593Smuzhiyun #define M98925_SPKCURNT_STATUS_SHIFT			5
88*4882a593Smuzhiyun #define M98925_SPKCURNT_STATUS_WIDTH			1
89*4882a593Smuzhiyun #define M98925_WATCHFAIL_STATUS_MASK			(1<<4)
90*4882a593Smuzhiyun #define M98925_WATCHFAIL_STATUS_SHIFT			4
91*4882a593Smuzhiyun #define M98925_WATCHFAIL_STATUS_WIDTH			1
92*4882a593Smuzhiyun #define M98925_ALCINFH_STATUS_MASK			(1<<3)
93*4882a593Smuzhiyun #define M98925_ALCINFH_STATUS_SHIFT			3
94*4882a593Smuzhiyun #define M98925_ALCINFH_STATUS_WIDTH			1
95*4882a593Smuzhiyun #define M98925_ALCACT_STATUS_MASK			(1<<2)
96*4882a593Smuzhiyun #define M98925_ALCACT_STATUS_SHIFT			2
97*4882a593Smuzhiyun #define M98925_ALCACT_STATUS_WIDTH			1
98*4882a593Smuzhiyun #define M98925_ALCMUT_STATUS_MASK			(1<<1)
99*4882a593Smuzhiyun #define M98925_ALCMUT_STATUS_SHIFT			1
100*4882a593Smuzhiyun #define M98925_ALCMUT_STATUS_WIDTH			1
101*4882a593Smuzhiyun #define M98925_ACLP_STATUS_MASK				(1<<0)
102*4882a593Smuzhiyun #define M98925_ACLP_STATUS_SHIFT			0
103*4882a593Smuzhiyun #define M98925_ACLP_STATUS_WIDTH			1
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun /* MAX98925_R004_LIVE_STATUS2 */
106*4882a593Smuzhiyun #define M98925_SLOTOVRN_STATUS_MASK			(1<<6)
107*4882a593Smuzhiyun #define M98925_SLOTOVRN_STATUS_SHIFT			6
108*4882a593Smuzhiyun #define M98925_SLOTOVRN_STATUS_WIDTH			1
109*4882a593Smuzhiyun #define M98925_INVALSLOT_STATUS_MASK			(1<<5)
110*4882a593Smuzhiyun #define M98925_INVALSLOT_STATUS_SHIFT			5
111*4882a593Smuzhiyun #define M98925_INVALSLOT_STATUS_WIDTH			1
112*4882a593Smuzhiyun #define M98925_SLOTCNFLT_STATUS_MASK			(1<<4)
113*4882a593Smuzhiyun #define M98925_SLOTCNFLT_STATUS_SHIFT			4
114*4882a593Smuzhiyun #define M98925_SLOTCNFLT_STATUS_WIDTH			1
115*4882a593Smuzhiyun #define M98925_VBSTOVFL_STATUS_MASK			(1<<3)
116*4882a593Smuzhiyun #define M98925_VBSTOVFL_STATUS_SHIFT			3
117*4882a593Smuzhiyun #define M98925_VBSTOVFL_STATUS_WIDTH			1
118*4882a593Smuzhiyun #define M98925_VBATOVFL_STATUS_MASK			(1<<2)
119*4882a593Smuzhiyun #define M98925_VBATOVFL_STATUS_SHIFT			2
120*4882a593Smuzhiyun #define M98925_VBATOVFL_STATUS_WIDTH			1
121*4882a593Smuzhiyun #define M98925_IMONOVFL_STATUS_MASK			(1<<1)
122*4882a593Smuzhiyun #define M98925_IMONOVFL_STATUS_SHIFT			1
123*4882a593Smuzhiyun #define M98925_IMONOVFL_STATUS_WIDTH			1
124*4882a593Smuzhiyun #define M98925_VMONOVFL_STATUS_MASK			(1<<0)
125*4882a593Smuzhiyun #define M98925_VMONOVFL_STATUS_SHIFT			0
126*4882a593Smuzhiyun #define M98925_VMONOVFL_STATUS_WIDTH			1
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun /* MAX98925_R005_STATE0 */
129*4882a593Smuzhiyun #define M98925_THERMWARN_END_STATE_MASK			(1<<3)
130*4882a593Smuzhiyun #define M98925_THERMWARN_END_STATE_SHIFT		3
131*4882a593Smuzhiyun #define M98925_THERMWARN_END_STATE_WIDTH		1
132*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_STATE_MASK			(1<<2)
133*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_STATE_SHIFT		1
134*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_STATE_WIDTH		1
135*4882a593Smuzhiyun #define M98925_THERMSHDN_END_STATE_MASK			(1<<1)
136*4882a593Smuzhiyun #define M98925_THERMSHDN_END_STATE_SHIFT		1
137*4882a593Smuzhiyun #define M98925_THERMSHDN_END_STATE_WIDTH		1
138*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_STATE_MASK			(1<<0)
139*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_STATE_SHIFT		0
140*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_STATE_WIDTH		1
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun /* MAX98925_R006_STATE1 */
143*4882a593Smuzhiyun #define M98925_SPRCURNT_STATE_MASK			(1<<5)
144*4882a593Smuzhiyun #define M98925_SPRCURNT_STATE_SHIFT			5
145*4882a593Smuzhiyun #define M98925_SPRCURNT_STATE_WIDTH			1
146*4882a593Smuzhiyun #define M98925_WATCHFAIL_STATE_MASK			(1<<4)
147*4882a593Smuzhiyun #define M98925_WATCHFAIL_STATE_SHIFT			4
148*4882a593Smuzhiyun #define M98925_WATCHFAIL_STATE_WIDTH			1
149*4882a593Smuzhiyun #define M98925_ALCINFH_STATE_MASK			(1<<3)
150*4882a593Smuzhiyun #define M98925_ALCINFH_STATE_SHIFT			3
151*4882a593Smuzhiyun #define M98925_ALCINFH_STATE_WIDTH			1
152*4882a593Smuzhiyun #define M98925_ALCACT_STATE_MASK			(1<<2)
153*4882a593Smuzhiyun #define M98925_ALCACT_STATE_SHIFT			2
154*4882a593Smuzhiyun #define M98925_ALCACT_STATE_WIDTH			1
155*4882a593Smuzhiyun #define M98925_ALCMUT_STATE_MASK			(1<<1)
156*4882a593Smuzhiyun #define M98925_ALCMUT_STATE_SHIFT			1
157*4882a593Smuzhiyun #define M98925_ALCMUT_STATE_WIDTH			1
158*4882a593Smuzhiyun #define M98925_ALCP_STATE_MASK				(1<<0)
159*4882a593Smuzhiyun #define M98925_ALCP_STATE_SHIFT				0
160*4882a593Smuzhiyun #define M98925_ALCP_STATE_WIDTH				1
161*4882a593Smuzhiyun 
162*4882a593Smuzhiyun /* MAX98925_R007_STATE2 */
163*4882a593Smuzhiyun #define M98925_SLOTOVRN_STATE_MASK			(1<<6)
164*4882a593Smuzhiyun #define M98925_SLOTOVRN_STATE_SHIFT			6
165*4882a593Smuzhiyun #define M98925_SLOTOVRN_STATE_WIDTH			1
166*4882a593Smuzhiyun #define M98925_INVALSLOT_STATE_MASK			(1<<5)
167*4882a593Smuzhiyun #define M98925_INVALSLOT_STATE_SHIFT			5
168*4882a593Smuzhiyun #define M98925_INVALSLOT_STATE_WIDTH			1
169*4882a593Smuzhiyun #define M98925_SLOTCNFLT_STATE_MASK			(1<<4)
170*4882a593Smuzhiyun #define M98925_SLOTCNFLT_STATE_SHIFT			4
171*4882a593Smuzhiyun #define M98925_SLOTCNFLT_STATE_WIDTH			1
172*4882a593Smuzhiyun #define M98925_VBSTOVFL_STATE_MASK			(1<<3)
173*4882a593Smuzhiyun #define M98925_VBSTOVFL_STATE_SHIFT			3
174*4882a593Smuzhiyun #define M98925_VBSTOVFL_STATE_WIDTH			1
175*4882a593Smuzhiyun #define M98925_VBATOVFL_STATE_MASK			(1<<2)
176*4882a593Smuzhiyun #define M98925_VBATOVFL_STATE_SHIFT			2
177*4882a593Smuzhiyun #define M98925_VBATOVFL_STATE_WIDTH			1
178*4882a593Smuzhiyun #define M98925_IMONOVFL_STATE_MASK			(1<<1)
179*4882a593Smuzhiyun #define M98925_IMONOVFL_STATE_SHIFT			1
180*4882a593Smuzhiyun #define M98925_IMONOVFL_STATE_WIDTH			1
181*4882a593Smuzhiyun #define M98925_VMONOVFL_STATE_MASK			(1<<0)
182*4882a593Smuzhiyun #define M98925_VMONOVFL_STATE_SHIFT			0
183*4882a593Smuzhiyun #define M98925_VMONOVFL_STATE_WIDTH			1
184*4882a593Smuzhiyun 
185*4882a593Smuzhiyun /* MAX98925_R008_FLAG0 */
186*4882a593Smuzhiyun #define M98925_THERMWARN_END_FLAG_MASK			(1<<3)
187*4882a593Smuzhiyun #define M98925_THERMWARN_END_FLAG_SHIFT			3
188*4882a593Smuzhiyun #define M98925_THERMWARN_END_FLAG_WIDTH			1
189*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_FLAG_MASK			(1<<2)
190*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_FLAG_SHIFT			2
191*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_FLAG_WIDTH			1
192*4882a593Smuzhiyun #define M98925_THERMSHDN_END_FLAG_MASK			(1<<1)
193*4882a593Smuzhiyun #define M98925_THERMSHDN_END_FLAG_SHIFT			1
194*4882a593Smuzhiyun #define M98925_THERMSHDN_END_FLAG_WIDTH			1
195*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_FLAG_MASK			(1<<0)
196*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_FLAG_SHIFT			0
197*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_FLAG_WIDTH			1
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun /* MAX98925_R009_FLAG1 */
200*4882a593Smuzhiyun #define M98925_SPKCURNT_FLAG_MASK			(1<<5)
201*4882a593Smuzhiyun #define M98925_SPKCURNT_FLAG_SHIFT			5
202*4882a593Smuzhiyun #define M98925_SPKCURNT_FLAG_WIDTH			1
203*4882a593Smuzhiyun #define M98925_WATCHFAIL_FLAG_MASK			(1<<4)
204*4882a593Smuzhiyun #define M98925_WATCHFAIL_FLAG_SHIFT			4
205*4882a593Smuzhiyun #define M98925_WATCHFAIL_FLAG_WIDTH			1
206*4882a593Smuzhiyun #define M98925_ALCINFH_FLAG_MASK			(1<<3)
207*4882a593Smuzhiyun #define M98925_ALCINFH_FLAG_SHIFT			3
208*4882a593Smuzhiyun #define M98925_ALCINFH_FLAG_WIDTH			1
209*4882a593Smuzhiyun #define M98925_ALCACT_FLAG_MASK				(1<<2)
210*4882a593Smuzhiyun #define M98925_ALCACT_FLAG_SHIFT			2
211*4882a593Smuzhiyun #define M98925_ALCACT_FLAG_WIDTH			1
212*4882a593Smuzhiyun #define M98925_ALCMUT_FLAG_MASK				(1<<1)
213*4882a593Smuzhiyun #define M98925_ALCMUT_FLAG_SHIFT			1
214*4882a593Smuzhiyun #define M98925_ALCMUT_FLAG_WIDTH			1
215*4882a593Smuzhiyun #define M98925_ALCP_FLAG_MASK				(1<<0)
216*4882a593Smuzhiyun #define M98925_ALCP_FLAG_SHIFT				0
217*4882a593Smuzhiyun #define M98925_ALCP_FLAG_WIDTH				1
218*4882a593Smuzhiyun 
219*4882a593Smuzhiyun /* MAX98925_R00A_FLAG2 */
220*4882a593Smuzhiyun #define M98925_SLOTOVRN_FLAG_MASK			(1<<6)
221*4882a593Smuzhiyun #define M98925_SLOTOVRN_FLAG_SHIFT			6
222*4882a593Smuzhiyun #define M98925_SLOTOVRN_FLAG_WIDTH			1
223*4882a593Smuzhiyun #define M98925_INVALSLOT_FLAG_MASK			(1<<5)
224*4882a593Smuzhiyun #define M98925_INVALSLOT_FLAG_SHIFT			5
225*4882a593Smuzhiyun #define M98925_INVALSLOT_FLAG_WIDTH			1
226*4882a593Smuzhiyun #define M98925_SLOTCNFLT_FLAG_MASK			(1<<4)
227*4882a593Smuzhiyun #define M98925_SLOTCNFLT_FLAG_SHIFT			4
228*4882a593Smuzhiyun #define M98925_SLOTCNFLT_FLAG_WIDTH			1
229*4882a593Smuzhiyun #define M98925_VBSTOVFL_FLAG_MASK			(1<<3)
230*4882a593Smuzhiyun #define M98925_VBSTOVFL_FLAG_SHIFT			3
231*4882a593Smuzhiyun #define M98925_VBSTOVFL_FLAG_WIDTH			1
232*4882a593Smuzhiyun #define M98925_VBATOVFL_FLAG_MASK			(1<<2)
233*4882a593Smuzhiyun #define M98925_VBATOVFL_FLAG_SHIFT			2
234*4882a593Smuzhiyun #define M98925_VBATOVFL_FLAG_WIDTH			1
235*4882a593Smuzhiyun #define M98925_IMONOVFL_FLAG_MASK			(1<<1)
236*4882a593Smuzhiyun #define M98925_IMONOVFL_FLAG_SHIFT			1
237*4882a593Smuzhiyun #define M98925_IMONOVFL_FLAG_WIDTH			1
238*4882a593Smuzhiyun #define M98925_VMONOVFL_FLAG_MASK			(1<<0)
239*4882a593Smuzhiyun #define M98925_VMONOVFL_FLAG_SHIFT			0
240*4882a593Smuzhiyun #define M98925_VMONOVFL_FLAG_WIDTH			1
241*4882a593Smuzhiyun 
242*4882a593Smuzhiyun /* MAX98925_R00B_IRQ_ENABLE0 */
243*4882a593Smuzhiyun #define M98925_THERMWARN_END_EN_MASK			(1<<3)
244*4882a593Smuzhiyun #define M98925_THERMWARN_END_EN_SHIFT			3
245*4882a593Smuzhiyun #define M98925_THERMWARN_END_EN_WIDTH			1
246*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_EN_MASK			(1<<2)
247*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_EN_SHIFT			2
248*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_EN_WIDTH			1
249*4882a593Smuzhiyun #define M98925_THERMSHDN_END_EN_MASK			(1<<1)
250*4882a593Smuzhiyun #define M98925_THERMSHDN_END_EN_SHIFT			1
251*4882a593Smuzhiyun #define M98925_THERMSHDN_END_EN_WIDTH			1
252*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_EN_MASK			(1<<0)
253*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_EN_SHIFT			0
254*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_EN_WIDTH			1
255*4882a593Smuzhiyun 
256*4882a593Smuzhiyun /* MAX98925_R00C_IRQ_ENABLE1 */
257*4882a593Smuzhiyun #define M98925_SPKCURNT_EN_MASK				(1<<5)
258*4882a593Smuzhiyun #define M98925_SPKCURNT_EN_SHIFT			5
259*4882a593Smuzhiyun #define M98925_SPKCURNT_EN_WIDTH			1
260*4882a593Smuzhiyun #define M98925_WATCHFAIL_EN_MASK			(1<<4)
261*4882a593Smuzhiyun #define M98925_WATCHFAIL_EN_SHIFT			4
262*4882a593Smuzhiyun #define M98925_WATCHFAIL_EN_WIDTH			1
263*4882a593Smuzhiyun #define M98925_ALCINFH_EN_MASK				(1<<3)
264*4882a593Smuzhiyun #define M98925_ALCINFH_EN_SHIFT				3
265*4882a593Smuzhiyun #define M98925_ALCINFH_EN_WIDTH				1
266*4882a593Smuzhiyun #define M98925_ALCACT_EN_MASK				(1<<2)
267*4882a593Smuzhiyun #define M98925_ALCACT_EN_SHIFT				2
268*4882a593Smuzhiyun #define M98925_ALCACT_EN_WIDTH				1
269*4882a593Smuzhiyun #define M98925_ALCMUT_EN_MASK				(1<<1)
270*4882a593Smuzhiyun #define M98925_ALCMUT_EN_SHIFT				1
271*4882a593Smuzhiyun #define M98925_ALCMUT_EN_WIDTH				1
272*4882a593Smuzhiyun #define M98925_ALCP_EN_MASK					(1<<0)
273*4882a593Smuzhiyun #define M98925_ALCP_EN_SHIFT				0
274*4882a593Smuzhiyun #define M98925_ALCP_EN_WIDTH				1
275*4882a593Smuzhiyun 
276*4882a593Smuzhiyun /* MAX98925_R00D_IRQ_ENABLE2 */
277*4882a593Smuzhiyun #define M98925_SLOTOVRN_EN_MASK					(1<<6)
278*4882a593Smuzhiyun #define M98925_SLOTOVRN_EN_SHIFT				6
279*4882a593Smuzhiyun #define M98925_SLOTOVRN_EN_WIDTH				1
280*4882a593Smuzhiyun #define M98925_INVALSLOT_EN_MASK				(1<<5)
281*4882a593Smuzhiyun #define M98925_INVALSLOT_EN_SHIFT				5
282*4882a593Smuzhiyun #define M98925_INVALSLOT_EN_WIDTH				1
283*4882a593Smuzhiyun #define M98925_SLOTCNFLT_EN_MASK				(1<<4)
284*4882a593Smuzhiyun #define M98925_SLOTCNFLT_EN_SHIFT				4
285*4882a593Smuzhiyun #define M98925_SLOTCNFLT_EN_WIDTH				1
286*4882a593Smuzhiyun #define M98925_VBSTOVFL_EN_MASK					(1<<3)
287*4882a593Smuzhiyun #define M98925_VBSTOVFL_EN_SHIFT				3
288*4882a593Smuzhiyun #define M98925_VBSTOVFL_EN_WIDTH				1
289*4882a593Smuzhiyun #define M98925_VBATOVFL_EN_MASK					(1<<2)
290*4882a593Smuzhiyun #define M98925_VBATOVFL_EN_SHIFT				2
291*4882a593Smuzhiyun #define M98925_VBATOVFL_EN_WIDTH				1
292*4882a593Smuzhiyun #define M98925_IMONOVFL_EN_MASK					(1<<1)
293*4882a593Smuzhiyun #define M98925_IMONOVFL_EN_SHIFT				1
294*4882a593Smuzhiyun #define M98925_IMONOVFL_EN_WIDTH				1
295*4882a593Smuzhiyun #define M98925_VMONOVFL_EN_MASK					(1<<0)
296*4882a593Smuzhiyun #define M98925_VMONOVFL_EN_SHIFT				0
297*4882a593Smuzhiyun #define M98925_VMONOVFL_EN_WIDTH				1
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun /* MAX98925_R00E_IRQ_CLEAR0 */
300*4882a593Smuzhiyun #define M98925_THERMWARN_END_CLR_MASK			(1<<3)
301*4882a593Smuzhiyun #define M98925_THERMWARN_END_CLR_SHIFT			3
302*4882a593Smuzhiyun #define M98925_THERMWARN_END_CLR_WIDTH			1
303*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_CLR_MASK			(1<<2)
304*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_CLR_SHIFT			2
305*4882a593Smuzhiyun #define M98925_THERMWARN_BGN_CLR_WIDTH			1
306*4882a593Smuzhiyun #define M98925_THERMSHDN_END_CLR_MASK			(1<<1)
307*4882a593Smuzhiyun #define M98925_THERMSHDN_END_CLR_SHIFT			1
308*4882a593Smuzhiyun #define M98925_THERMSHDN_END_CLR_WIDTH			1
309*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_CLR_MASK			(1<<0)
310*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_CLR_SHIFT			0
311*4882a593Smuzhiyun #define M98925_THERMSHDN_BGN_CLR_WIDTH			1
312*4882a593Smuzhiyun 
313*4882a593Smuzhiyun /* MAX98925_R00F_IRQ_CLEAR1 */
314*4882a593Smuzhiyun #define M98925_SPKCURNT_CLR_MASK				(1<<5)
315*4882a593Smuzhiyun #define M98925_SPKCURNT_CLR_SHIFT				5
316*4882a593Smuzhiyun #define M98925_SPKCURNT_CLR_WIDTH				1
317*4882a593Smuzhiyun #define M98925_WATCHFAIL_CLR_MASK				(1<<4)
318*4882a593Smuzhiyun #define M98925_WATCHFAIL_CLR_SHIFT				4
319*4882a593Smuzhiyun #define M98925_WATCHFAIL_CLR_WIDTH				1
320*4882a593Smuzhiyun #define M98925_ALCINFH_CLR_MASK					(1<<3)
321*4882a593Smuzhiyun #define M98925_ALCINFH_CLR_SHIFT				3
322*4882a593Smuzhiyun #define M98925_ALCINFH_CLR_WIDTH				1
323*4882a593Smuzhiyun #define M98925_ALCACT_CLR_MASK					(1<<2)
324*4882a593Smuzhiyun #define M98925_ALCACT_CLR_SHIFT					2
325*4882a593Smuzhiyun #define M98925_ALCACT_CLR_WIDTH					1
326*4882a593Smuzhiyun #define M98925_ALCMUT_CLR_MASK					(1<<1)
327*4882a593Smuzhiyun #define M98925_ALCMUT_CLR_SHIFT					1
328*4882a593Smuzhiyun #define M98925_ALCMUT_CLR_WIDTH					1
329*4882a593Smuzhiyun #define M98925_ALCP_CLR_MASK					(1<<0)
330*4882a593Smuzhiyun #define M98925_ALCP_CLR_SHIFT					0
331*4882a593Smuzhiyun #define M98925_ALCP_CLR_WIDTH					1
332*4882a593Smuzhiyun 
333*4882a593Smuzhiyun /* MAX98925_R010_IRQ_CLEAR2 */
334*4882a593Smuzhiyun #define M98925_SLOTOVRN_CLR_MASK				(1<<6)
335*4882a593Smuzhiyun #define M98925_SLOTOVRN_CLR_SHIFT				6
336*4882a593Smuzhiyun #define M98925_SLOTOVRN_CLR_WIDTH				1
337*4882a593Smuzhiyun #define M98925_INVALSLOT_CLR_MASK				(1<<5)
338*4882a593Smuzhiyun #define M98925_INVALSLOT_CLR_SHIFT				5
339*4882a593Smuzhiyun #define M98925_INVALSLOT_CLR_WIDTH				1
340*4882a593Smuzhiyun #define M98925_SLOTCNFLT_CLR_MASK				(1<<4)
341*4882a593Smuzhiyun #define M98925_SLOTCNFLT_CLR_SHIFT				4
342*4882a593Smuzhiyun #define M98925_SLOTCNFLT_CLR_WIDTH				1
343*4882a593Smuzhiyun #define M98925_VBSTOVFL_CLR_MASK				(1<<3)
344*4882a593Smuzhiyun #define M98925_VBSTOVFL_CLR_SHIFT				3
345*4882a593Smuzhiyun #define M98925_VBSTOVFL_CLR_WIDTH				1
346*4882a593Smuzhiyun #define M98925_VBATOVFL_CLR_MASK				(1<<2)
347*4882a593Smuzhiyun #define M98925_VBATOVFL_CLR_SHIFT				2
348*4882a593Smuzhiyun #define M98925_VBATOVFL_CLR_WIDTH				1
349*4882a593Smuzhiyun #define M98925_IMONOVFL_CLR_MASK				(1<<1)
350*4882a593Smuzhiyun #define M98925_IMONOVFL_CLR_SHIFT				1
351*4882a593Smuzhiyun #define M98925_IMONOVFL_CLR_WIDTH				1
352*4882a593Smuzhiyun #define M98925_VMONOVFL_CLR_MASK				(1<<0)
353*4882a593Smuzhiyun #define M98925_VMONOVFL_CLR_SHIFT				0
354*4882a593Smuzhiyun #define M98925_VMONOVFL_CLR_WIDTH				1
355*4882a593Smuzhiyun 
356*4882a593Smuzhiyun /* MAX98925_R011_MAP0 */
357*4882a593Smuzhiyun #define M98925_ER_THERMWARN_EN_MASK				(1<<7)
358*4882a593Smuzhiyun #define M98925_ER_THERMWARN_EN_SHIFT			7
359*4882a593Smuzhiyun #define M98925_ER_THERMWARN_EN_WIDTH			1
360*4882a593Smuzhiyun #define M98925_ER_THERMWARN_MAP_MASK			(0x07<<4)
361*4882a593Smuzhiyun #define M98925_ER_THERMWARN_MAP_SHIFT			4
362*4882a593Smuzhiyun #define M98925_ER_THERMWARN_MAP_WIDTH			3
363*4882a593Smuzhiyun 
364*4882a593Smuzhiyun /* MAX98925_R012_MAP1 */
365*4882a593Smuzhiyun #define M98925_ER_ALCMUT_EN_MASK				(1<<7)
366*4882a593Smuzhiyun #define M98925_ER_ALCMUT_EN_SHIFT				7
367*4882a593Smuzhiyun #define M98925_ER_ALCMUT_EN_WIDTH				1
368*4882a593Smuzhiyun #define M98925_ER_ALCMUT_MAP_MASK				(0x07<<4)
369*4882a593Smuzhiyun #define M98925_ER_ALCMUT_MAP_SHIFT				4
370*4882a593Smuzhiyun #define M98925_ER_ALCMUT_MAP_WIDTH				3
371*4882a593Smuzhiyun #define M98925_ER_ALCP_EN_MASK					(1<<3)
372*4882a593Smuzhiyun #define M98925_ER_ALCP_EN_SHIFT					3
373*4882a593Smuzhiyun #define M98925_ER_ALCP_EN_WIDTH					1
374*4882a593Smuzhiyun #define M98925_ER_ALCP_MAP_MASK					(0x07<<0)
375*4882a593Smuzhiyun #define M98925_ER_ALCP_MAP_SHIFT				0
376*4882a593Smuzhiyun #define M98925_ER_ALCP_MAP_WIDTH				3
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun /* MAX98925_R013_MAP2 */
379*4882a593Smuzhiyun #define M98925_ER_ALCINFH_EN_MASK				(1<<7)
380*4882a593Smuzhiyun #define M98925_ER_ALCINFH_EN_SHIFT				7
381*4882a593Smuzhiyun #define M98925_ER_ALCINFH_EN_WIDTH				1
382*4882a593Smuzhiyun #define M98925_ER_ALCINFH_MAP_MASK				(0x07<<4)
383*4882a593Smuzhiyun #define M98925_ER_ALCINFH_MAP_SHIFT				4
384*4882a593Smuzhiyun #define M98925_ER_ALCINFH_MAP_WIDTH				3
385*4882a593Smuzhiyun #define M98925_ER_ALCACT_EN_MASK				(1<<3)
386*4882a593Smuzhiyun #define M98925_ER_ALCACT_EN_SHIFT				3
387*4882a593Smuzhiyun #define M98925_ER_ALCACT_EN_WIDTH				1
388*4882a593Smuzhiyun #define M98925_ER_ALCACT_MAP_MASK				(0x07<<0)
389*4882a593Smuzhiyun #define M98925_ER_ALCACT_MAP_SHIFT				0
390*4882a593Smuzhiyun #define M98925_ER_ALCACT_MAP_WIDTH				3
391*4882a593Smuzhiyun 
392*4882a593Smuzhiyun /* MAX98925_R014_MAP3 */
393*4882a593Smuzhiyun #define M98925_ER_SPKCURNT_EN_MASK				(1<<7)
394*4882a593Smuzhiyun #define M98925_ER_SPKCURNT_EN_SHIFT				7
395*4882a593Smuzhiyun #define M98925_ER_SPKCURNT_EN_WIDTH				1
396*4882a593Smuzhiyun #define M98925_ER_SPKCURNT_MAP_MASK				(0x07<<4)
397*4882a593Smuzhiyun #define M98925_ER_SPKCURNT_MAP_SHIFT			4
398*4882a593Smuzhiyun #define M98925_ER_SPKCURNT_MAP_WIDTH			3
399*4882a593Smuzhiyun 
400*4882a593Smuzhiyun /* MAX98925_R015_MAP4 */
401*4882a593Smuzhiyun /* RESERVED */
402*4882a593Smuzhiyun 
403*4882a593Smuzhiyun /* MAX98925_R016_MAP5 */
404*4882a593Smuzhiyun #define M98925_ER_IMONOVFL_EN_MASK				(1<<7)
405*4882a593Smuzhiyun #define M98925_ER_IMONOVFL_EN_SHIFT				7
406*4882a593Smuzhiyun #define M98925_ER_IMONOVFL_EN_WIDTH				1
407*4882a593Smuzhiyun #define M98925_ER_IMONOVFL_MAP_MASK				(0x07<<4)
408*4882a593Smuzhiyun #define M98925_ER_IMONOVFL_MAP_SHIFT			4
409*4882a593Smuzhiyun #define M98925_ER_IMONOVFL_MAP_WIDTH			3
410*4882a593Smuzhiyun #define M98925_ER_VMONOVFL_EN_MASK				(1<<3)
411*4882a593Smuzhiyun #define M98925_ER_VMONOVFL_EN_SHIFT				3
412*4882a593Smuzhiyun #define M98925_ER_VMONOVFL_EN_WIDTH				1
413*4882a593Smuzhiyun #define M98925_ER_VMONOVFL_MAP_MASK				(0x07<<0)
414*4882a593Smuzhiyun #define M98925_ER_VMONOVFL_MAP_SHIFT			0
415*4882a593Smuzhiyun #define M98925_ER_VMONOVFL_MAP_WIDTH			3
416*4882a593Smuzhiyun 
417*4882a593Smuzhiyun /* MAX98925_R017_MAP6 */
418*4882a593Smuzhiyun #define M98925_ER_VBSTOVFL_EN_MASK				(1<<7)
419*4882a593Smuzhiyun #define M98925_ER_VBSTOVFL_EN_SHIFT				7
420*4882a593Smuzhiyun #define M98925_ER_VBSTOVFL_EN_WIDTH				1
421*4882a593Smuzhiyun #define M98925_ER_VBSTOVFL_MAP_MASK				(0x07<<4)
422*4882a593Smuzhiyun #define M98925_ER_VBSTOVFL_MAP_SHIFT			4
423*4882a593Smuzhiyun #define M98925_ER_VBSTOVFL_MAP_WIDTH			3
424*4882a593Smuzhiyun #define M98925_ER_VBATOVFL_EN_MASK				(1<<3)
425*4882a593Smuzhiyun #define M98925_ER_VBATOVFL_EN_SHIFT				3
426*4882a593Smuzhiyun #define M98925_ER_VBATOVFL_EN_WIDTH				1
427*4882a593Smuzhiyun #define M98925_ER_VBATOVFL_MAP_MASK				(0x07<<0)
428*4882a593Smuzhiyun #define M98925_ER_VBATOVFL_MAP_SHIFT			0
429*4882a593Smuzhiyun #define M98925_ER_VBATOVFL_MAP_WIDTH			3
430*4882a593Smuzhiyun 
431*4882a593Smuzhiyun /* MAX98925_R018_MAP7 */
432*4882a593Smuzhiyun #define M98925_ER_INVALSLOT_EN_MASK				(1<<7)
433*4882a593Smuzhiyun #define M98925_ER_INVALSLOT_EN_SHIFT			7
434*4882a593Smuzhiyun #define M98925_ER_INVALSLOT_EN_WIDTH			1
435*4882a593Smuzhiyun #define M98925_ER_INVALSLOT_MAP_MASK			(0x07<<4)
436*4882a593Smuzhiyun #define M98925_ER_INVALSLOT_MAP_SHIFT			4
437*4882a593Smuzhiyun #define M98925_ER_INVALSLOT_MAP_WIDTH			3
438*4882a593Smuzhiyun #define M98925_ER_SLOTCNFLT_EN_MASK				(1<<3)
439*4882a593Smuzhiyun #define M98925_ER_SLOTCNFLT_EN_SHIFT			3
440*4882a593Smuzhiyun #define M98925_ER_SLOTCNFLT_EN_WIDTH			1
441*4882a593Smuzhiyun #define M98925_ER_SLOTCNFLT_MAP_MASK			(0x07<<0)
442*4882a593Smuzhiyun #define M98925_ER_SLOTCNFLT_MAP_SHIFT			0
443*4882a593Smuzhiyun #define M98925_ER_SLOTCNFLT_MAP_WIDTH			3
444*4882a593Smuzhiyun 
445*4882a593Smuzhiyun /* MAX98925_R019_MAP8 */
446*4882a593Smuzhiyun #define M98925_ER_SLOTOVRN_EN_MASK	(1<<3)
447*4882a593Smuzhiyun #define M98925_ER_SLOTOVRN_EN_SHIFT	3
448*4882a593Smuzhiyun #define M98925_ER_SLOTOVRN_EN_WIDTH	1
449*4882a593Smuzhiyun #define M98925_ER_SLOTOVRN_MAP_MASK	(0x07<<0)
450*4882a593Smuzhiyun #define M98925_ER_SLOTOVRN_MAP_SHIFT	0
451*4882a593Smuzhiyun #define M98925_ER_SLOTOVRN_MAP_WIDTH	3
452*4882a593Smuzhiyun 
453*4882a593Smuzhiyun /* MAX98925_R01A_DAI_CLK_MODE1 */
454*4882a593Smuzhiyun #define M98925_DAI_CLK_SOURCE_MASK	(1<<6)
455*4882a593Smuzhiyun #define M98925_DAI_CLK_SOURCE_SHIFT	6
456*4882a593Smuzhiyun #define M98925_DAI_CLK_SOURCE_WIDTH	1
457*4882a593Smuzhiyun #define M98925_MDLL_MULT_MASK		(0x0F<<0)
458*4882a593Smuzhiyun #define M98925_MDLL_MULT_SHIFT		0
459*4882a593Smuzhiyun #define M98925_MDLL_MULT_WIDTH		4
460*4882a593Smuzhiyun 
461*4882a593Smuzhiyun #define M98925_MDLL_MULT_MCLKx8		6
462*4882a593Smuzhiyun #define M98925_MDLL_MULT_MCLKx16	8
463*4882a593Smuzhiyun 
464*4882a593Smuzhiyun /* MAX98925_R01B_DAI_CLK_MODE2 */
465*4882a593Smuzhiyun #define M98925_DAI_SR_MASK			(0x0F<<4)
466*4882a593Smuzhiyun #define M98925_DAI_SR_SHIFT			4
467*4882a593Smuzhiyun #define M98925_DAI_SR_WIDTH			4
468*4882a593Smuzhiyun #define M98925_DAI_MAS_MASK			(1<<3)
469*4882a593Smuzhiyun #define M98925_DAI_MAS_SHIFT			3
470*4882a593Smuzhiyun #define M98925_DAI_MAS_WIDTH			1
471*4882a593Smuzhiyun #define M98925_DAI_BSEL_MASK			(0x07<<0)
472*4882a593Smuzhiyun #define M98925_DAI_BSEL_SHIFT			0
473*4882a593Smuzhiyun #define M98925_DAI_BSEL_WIDTH			3
474*4882a593Smuzhiyun 
475*4882a593Smuzhiyun #define M98925_DAI_BSEL_32 (0 << M98925_DAI_BSEL_SHIFT)
476*4882a593Smuzhiyun #define M98925_DAI_BSEL_48 (1 << M98925_DAI_BSEL_SHIFT)
477*4882a593Smuzhiyun #define M98925_DAI_BSEL_64 (2 << M98925_DAI_BSEL_SHIFT)
478*4882a593Smuzhiyun #define M98925_DAI_BSEL_256 (6 << M98925_DAI_BSEL_SHIFT)
479*4882a593Smuzhiyun 
480*4882a593Smuzhiyun /* MAX98925_R01C_DAI_CLK_DIV_M_MSBS */
481*4882a593Smuzhiyun #define M98925_DAI_M_MSBS_MASK					(0xFF<<0)
482*4882a593Smuzhiyun #define M98925_DAI_M_MSBS_SHIFT					0
483*4882a593Smuzhiyun #define M98925_DAI_M_MSBS_WIDTH					8
484*4882a593Smuzhiyun 
485*4882a593Smuzhiyun /* MAX98925_R01D_DAI_CLK_DIV_M_LSBS */
486*4882a593Smuzhiyun #define M98925_DAI_M_LSBS_MASK					(0xFF<<0)
487*4882a593Smuzhiyun #define M98925_DAI_M_LSBS_SHIFT					0
488*4882a593Smuzhiyun #define M98925_DAI_M_LSBS_WIDTH					8
489*4882a593Smuzhiyun 
490*4882a593Smuzhiyun /* MAX98925_R01E_DAI_CLK_DIV_N_MSBS */
491*4882a593Smuzhiyun #define M98925_DAI_N_MSBS_MASK					(0x7F<<0)
492*4882a593Smuzhiyun #define M98925_DAI_N_MSBS_SHIFT					0
493*4882a593Smuzhiyun #define M98925_DAI_N_MSBS_WIDTH					7
494*4882a593Smuzhiyun 
495*4882a593Smuzhiyun /* MAX98925_R01F_DAI_CLK_DIV_N_LSBS */
496*4882a593Smuzhiyun #define M98925_DAI_N_LSBS_MASK					(0xFF<<0)
497*4882a593Smuzhiyun #define M98925_DAI_N_LSBS_SHIFT					0
498*4882a593Smuzhiyun #define M98925_DAI_N_LSBS_WIDTH					8
499*4882a593Smuzhiyun 
500*4882a593Smuzhiyun /* MAX98925_R020_FORMAT */
501*4882a593Smuzhiyun #define M98925_DAI_CHANSZ_MASK					(0x03<<6)
502*4882a593Smuzhiyun #define M98925_DAI_CHANSZ_SHIFT					6
503*4882a593Smuzhiyun #define M98925_DAI_CHANSZ_WIDTH					2
504*4882a593Smuzhiyun #define M98925_DAI_EXTBCLK_HIZ_MASK				(1<<4)
505*4882a593Smuzhiyun #define M98925_DAI_EXTBCLK_HIZ_SHIFT			4
506*4882a593Smuzhiyun #define M98925_DAI_EXTBCLK_HIZ_WIDTH			1
507*4882a593Smuzhiyun #define M98925_DAI_WCI_MASK						(1<<3)
508*4882a593Smuzhiyun #define M98925_DAI_WCI_SHIFT					3
509*4882a593Smuzhiyun #define M98925_DAI_WCI_WIDTH					1
510*4882a593Smuzhiyun #define M98925_DAI_BCI_MASK						(1<<2)
511*4882a593Smuzhiyun #define M98925_DAI_BCI_SHIFT					2
512*4882a593Smuzhiyun #define M98925_DAI_BCI_WIDTH					1
513*4882a593Smuzhiyun #define M98925_DAI_DLY_MASK						(1<<1)
514*4882a593Smuzhiyun #define M98925_DAI_DLY_SHIFT					1
515*4882a593Smuzhiyun #define M98925_DAI_DLY_WIDTH					1
516*4882a593Smuzhiyun #define M98925_DAI_TDM_MASK						(1<<0)
517*4882a593Smuzhiyun #define M98925_DAI_TDM_SHIFT					0
518*4882a593Smuzhiyun #define M98925_DAI_TDM_WIDTH					1
519*4882a593Smuzhiyun 
520*4882a593Smuzhiyun #define M98925_DAI_CHANSZ_16 (1 << M98925_DAI_CHANSZ_SHIFT)
521*4882a593Smuzhiyun #define M98925_DAI_CHANSZ_24 (2 << M98925_DAI_CHANSZ_SHIFT)
522*4882a593Smuzhiyun #define M98925_DAI_CHANSZ_32 (3 << M98925_DAI_CHANSZ_SHIFT)
523*4882a593Smuzhiyun 
524*4882a593Smuzhiyun /* MAX98925_R021_TDM_SLOT_SELECT */
525*4882a593Smuzhiyun #define M98925_DAI_DO_EN_MASK					(1<<7)
526*4882a593Smuzhiyun #define M98925_DAI_DO_EN_SHIFT					7
527*4882a593Smuzhiyun #define M98925_DAI_DO_EN_WIDTH					1
528*4882a593Smuzhiyun #define M98925_DAI_DIN_EN_MASK					(1<<6)
529*4882a593Smuzhiyun #define M98925_DAI_DIN_EN_SHIFT					6
530*4882a593Smuzhiyun #define M98925_DAI_DIN_EN_WIDTH					1
531*4882a593Smuzhiyun #define M98925_DAI_INR_SOURCE_MASK				(0x07<<3)
532*4882a593Smuzhiyun #define M98925_DAI_INR_SOURCE_SHIFT				3
533*4882a593Smuzhiyun #define M98925_DAI_INR_SOURCE_WIDTH				3
534*4882a593Smuzhiyun #define M98925_DAI_INL_SOURCE_MASK				(0x07<<0)
535*4882a593Smuzhiyun #define M98925_DAI_INL_SOURCE_SHIFT				0
536*4882a593Smuzhiyun #define M98925_DAI_INL_SOURCE_WIDTH				3
537*4882a593Smuzhiyun 
538*4882a593Smuzhiyun /* MAX98925_R022_DOUT_CFG_VMON */
539*4882a593Smuzhiyun #define M98925_DAI_VMON_EN_MASK					(1<<5)
540*4882a593Smuzhiyun #define M98925_DAI_VMON_EN_SHIFT				5
541*4882a593Smuzhiyun #define M98925_DAI_VMON_EN_WIDTH				1
542*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_MASK				(0x1F<<0)
543*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_SHIFT				0
544*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_WIDTH				5
545*4882a593Smuzhiyun 
546*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_00_01 (0 << M98925_DAI_VMON_SLOT_SHIFT)
547*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_01_02 (1 << M98925_DAI_VMON_SLOT_SHIFT)
548*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_02_03 (2 << M98925_DAI_VMON_SLOT_SHIFT)
549*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_03_04 (3 << M98925_DAI_VMON_SLOT_SHIFT)
550*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_04_05 (4 << M98925_DAI_VMON_SLOT_SHIFT)
551*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_05_06 (5 << M98925_DAI_VMON_SLOT_SHIFT)
552*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_06_07 (6 << M98925_DAI_VMON_SLOT_SHIFT)
553*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_07_08 (7 << M98925_DAI_VMON_SLOT_SHIFT)
554*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_08_09 (8 << M98925_DAI_VMON_SLOT_SHIFT)
555*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_09_0A (9 << M98925_DAI_VMON_SLOT_SHIFT)
556*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_0A_0B (10 << M98925_DAI_VMON_SLOT_SHIFT)
557*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_0B_0C (11 << M98925_DAI_VMON_SLOT_SHIFT)
558*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_0C_0D (12 << M98925_DAI_VMON_SLOT_SHIFT)
559*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_0D_0E (13 << M98925_DAI_VMON_SLOT_SHIFT)
560*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_0E_0F (14 << M98925_DAI_VMON_SLOT_SHIFT)
561*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_0F_10 (15 << M98925_DAI_VMON_SLOT_SHIFT)
562*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_10_11 (16 << M98925_DAI_VMON_SLOT_SHIFT)
563*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_11_12 (17 << M98925_DAI_VMON_SLOT_SHIFT)
564*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_12_13 (18 << M98925_DAI_VMON_SLOT_SHIFT)
565*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_13_14 (19 << M98925_DAI_VMON_SLOT_SHIFT)
566*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_14_15 (20 << M98925_DAI_VMON_SLOT_SHIFT)
567*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_15_16 (21 << M98925_DAI_VMON_SLOT_SHIFT)
568*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_16_17 (22 << M98925_DAI_VMON_SLOT_SHIFT)
569*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_17_18 (23 << M98925_DAI_VMON_SLOT_SHIFT)
570*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_18_19 (24 << M98925_DAI_VMON_SLOT_SHIFT)
571*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_19_1A (25 << M98925_DAI_VMON_SLOT_SHIFT)
572*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_1A_1B (26 << M98925_DAI_VMON_SLOT_SHIFT)
573*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_1B_1C (27 << M98925_DAI_VMON_SLOT_SHIFT)
574*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_1C_1D (28 << M98925_DAI_VMON_SLOT_SHIFT)
575*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_1D_1E (29 << M98925_DAI_VMON_SLOT_SHIFT)
576*4882a593Smuzhiyun #define M98925_DAI_VMON_SLOT_1E_1F (30 << M98925_DAI_VMON_SLOT_SHIFT)
577*4882a593Smuzhiyun 
578*4882a593Smuzhiyun /* MAX98925_R023_DOUT_CFG_IMON */
579*4882a593Smuzhiyun #define M98925_DAI_IMON_EN_MASK					(1<<5)
580*4882a593Smuzhiyun #define M98925_DAI_IMON_EN_SHIFT				5
581*4882a593Smuzhiyun #define M98925_DAI_IMON_EN_WIDTH				1
582*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_MASK				(0x1F<<0)
583*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_SHIFT				0
584*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_WIDTH				5
585*4882a593Smuzhiyun 
586*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_00_01 (0 << M98925_DAI_IMON_SLOT_SHIFT)
587*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_01_02 (1 << M98925_DAI_IMON_SLOT_SHIFT)
588*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_02_03 (2 << M98925_DAI_IMON_SLOT_SHIFT)
589*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_03_04 (3 << M98925_DAI_IMON_SLOT_SHIFT)
590*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_04_05 (4 << M98925_DAI_IMON_SLOT_SHIFT)
591*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_05_06 (5 << M98925_DAI_IMON_SLOT_SHIFT)
592*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_06_07 (6 << M98925_DAI_IMON_SLOT_SHIFT)
593*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_07_08 (7 << M98925_DAI_IMON_SLOT_SHIFT)
594*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_08_09 (8 << M98925_DAI_IMON_SLOT_SHIFT)
595*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_09_0A (9 << M98925_DAI_IMON_SLOT_SHIFT)
596*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_0A_0B (10 << M98925_DAI_IMON_SLOT_SHIFT)
597*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_0B_0C (11 << M98925_DAI_IMON_SLOT_SHIFT)
598*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_0C_0D (12 << M98925_DAI_IMON_SLOT_SHIFT)
599*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_0D_0E (13 << M98925_DAI_IMON_SLOT_SHIFT)
600*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_0E_0F (14 << M98925_DAI_IMON_SLOT_SHIFT)
601*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_0F_10 (15 << M98925_DAI_IMON_SLOT_SHIFT)
602*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_10_11 (16 << M98925_DAI_IMON_SLOT_SHIFT)
603*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_11_12 (17 << M98925_DAI_IMON_SLOT_SHIFT)
604*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_12_13 (18 << M98925_DAI_IMON_SLOT_SHIFT)
605*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_13_14 (19 << M98925_DAI_IMON_SLOT_SHIFT)
606*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_14_15 (20 << M98925_DAI_IMON_SLOT_SHIFT)
607*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_15_16 (21 << M98925_DAI_IMON_SLOT_SHIFT)
608*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_16_17 (22 << M98925_DAI_IMON_SLOT_SHIFT)
609*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_17_18 (23 << M98925_DAI_IMON_SLOT_SHIFT)
610*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_18_19 (24 << M98925_DAI_IMON_SLOT_SHIFT)
611*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_19_1A (25 << M98925_DAI_IMON_SLOT_SHIFT)
612*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_1A_1B (26 << M98925_DAI_IMON_SLOT_SHIFT)
613*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_1B_1C (27 << M98925_DAI_IMON_SLOT_SHIFT)
614*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_1C_1D (28 << M98925_DAI_IMON_SLOT_SHIFT)
615*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_1D_1E (29 << M98925_DAI_IMON_SLOT_SHIFT)
616*4882a593Smuzhiyun #define M98925_DAI_IMON_SLOT_1E_1F (30 << M98925_DAI_IMON_SLOT_SHIFT)
617*4882a593Smuzhiyun 
618*4882a593Smuzhiyun /* MAX98925_R024_DOUT_CFG_VBAT */
619*4882a593Smuzhiyun #define M98925_DAI_VBAT_EN_MASK					(1<<5)
620*4882a593Smuzhiyun #define M98925_DAI_VBAT_EN_SHIFT				5
621*4882a593Smuzhiyun #define M98925_DAI_VBAT_EN_WIDTH				1
622*4882a593Smuzhiyun #define M98925_DAI_VBAT_SLOT_MASK				(0x1F<<0)
623*4882a593Smuzhiyun #define M98925_DAI_VBAT_SLOT_SHIFT				0
624*4882a593Smuzhiyun #define M98925_DAI_VBAT_SLOT_WIDTH				5
625*4882a593Smuzhiyun 
626*4882a593Smuzhiyun /* MAX98925_R025_DOUT_CFG_VBST */
627*4882a593Smuzhiyun #define M98925_DAI_VBST_EN_MASK					(1<<5)
628*4882a593Smuzhiyun #define M98925_DAI_VBST_EN_SHIFT				5
629*4882a593Smuzhiyun #define M98925_DAI_VBST_EN_WIDTH				1
630*4882a593Smuzhiyun #define M98925_DAI_VBST_SLOT_MASK				(0x1F<<0)
631*4882a593Smuzhiyun #define M98925_DAI_VBST_SLOT_SHIFT				0
632*4882a593Smuzhiyun #define M98925_DAI_VBST_SLOT_WIDTH				5
633*4882a593Smuzhiyun 
634*4882a593Smuzhiyun /* MAX98925_R026_DOUT_CFG_FLAG */
635*4882a593Smuzhiyun #define M98925_DAI_FLAG_EN_MASK					(1<<5)
636*4882a593Smuzhiyun #define M98925_DAI_FLAG_EN_SHIFT				5
637*4882a593Smuzhiyun #define M98925_DAI_FLAG_EN_WIDTH				1
638*4882a593Smuzhiyun #define M98925_DAI_FLAG_SLOT_MASK				(0x1F<<0)
639*4882a593Smuzhiyun #define M98925_DAI_FLAG_SLOT_SHIFT				0
640*4882a593Smuzhiyun #define M98925_DAI_FLAG_SLOT_WIDTH				5
641*4882a593Smuzhiyun 
642*4882a593Smuzhiyun /* MAX98925_R027_DOUT_HIZ_CFG1 */
643*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG1_MASK			(0xFF<<0)
644*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG1_SHIFT			0
645*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG1_WIDTH			8
646*4882a593Smuzhiyun 
647*4882a593Smuzhiyun /* MAX98925_R028_DOUT_HIZ_CFG2 */
648*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG2_MASK			(0xFF<<0)
649*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG2_SHIFT			0
650*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG2_WIDTH			8
651*4882a593Smuzhiyun 
652*4882a593Smuzhiyun /* MAX98925_R029_DOUT_HIZ_CFG3 */
653*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG3_MASK			(0xFF<<0)
654*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG3_SHIFT			0
655*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG3_WIDTH			8
656*4882a593Smuzhiyun 
657*4882a593Smuzhiyun /* MAX98925_R02A_DOUT_HIZ_CFG4 */
658*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG4_MASK			(0xFF<<0)
659*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG4_SHIFT			0
660*4882a593Smuzhiyun #define M98925_DAI_SLOT_HIZ_CFG4_WIDTH			8
661*4882a593Smuzhiyun 
662*4882a593Smuzhiyun /* MAX98925_R02B_DOUT_DRV_STRENGTH */
663*4882a593Smuzhiyun #define M98925_DAI_OUT_DRIVE_MASK				(0x03<<0)
664*4882a593Smuzhiyun #define M98925_DAI_OUT_DRIVE_SHIFT				0
665*4882a593Smuzhiyun #define M98925_DAI_OUT_DRIVE_WIDTH				2
666*4882a593Smuzhiyun 
667*4882a593Smuzhiyun /* MAX98925_R02C_FILTERS */
668*4882a593Smuzhiyun #define M98925_ADC_DITHER_EN_MASK				(1<<7)
669*4882a593Smuzhiyun #define M98925_ADC_DITHER_EN_SHIFT				7
670*4882a593Smuzhiyun #define M98925_ADC_DITHER_EN_WIDTH				1
671*4882a593Smuzhiyun #define M98925_IV_DCB_EN_MASK					(1<<6)
672*4882a593Smuzhiyun #define M98925_IV_DCB_EN_SHIFT					6
673*4882a593Smuzhiyun #define M98925_IV_DCB_EN_WIDTH					1
674*4882a593Smuzhiyun #define M98925_DAC_DITHER_EN_MASK				(1<<4)
675*4882a593Smuzhiyun #define M98925_DAC_DITHER_EN_SHIFT				4
676*4882a593Smuzhiyun #define M98925_DAC_DITHER_EN_WIDTH				1
677*4882a593Smuzhiyun #define M98925_DAC_FILTER_MODE_MASK				(1<<3)
678*4882a593Smuzhiyun #define M98925_DAC_FILTER_MODE_SHIFT			3
679*4882a593Smuzhiyun #define M98925_DAC_FILTER_MODE_WIDTH			1
680*4882a593Smuzhiyun #define M98925_DAC_HPF_MASK				(0x07<<0)
681*4882a593Smuzhiyun #define M98925_DAC_HPF_SHIFT					0
682*4882a593Smuzhiyun #define M98925_DAC_HPF_WIDTH					3
683*4882a593Smuzhiyun #define M98925_DAC_HPF_DISABLE		(0 << M98925_DAC_HPF_SHIFT)
684*4882a593Smuzhiyun #define M98925_DAC_HPF_DC_BLOCK		(1 << M98925_DAC_HPF_SHIFT)
685*4882a593Smuzhiyun #define M98925_DAC_HPF_EN_100		(2 << M98925_DAC_HPF_SHIFT)
686*4882a593Smuzhiyun #define M98925_DAC_HPF_EN_200		(3 << M98925_DAC_HPF_SHIFT)
687*4882a593Smuzhiyun #define M98925_DAC_HPF_EN_400		(4 << M98925_DAC_HPF_SHIFT)
688*4882a593Smuzhiyun #define M98925_DAC_HPF_EN_800		(5 << M98925_DAC_HPF_SHIFT)
689*4882a593Smuzhiyun 
690*4882a593Smuzhiyun /* MAX98925_R02D_GAIN */
691*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_MASK					(0x03<<5)
692*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_SHIFT					5
693*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_WIDTH					2
694*4882a593Smuzhiyun #define M98925_SPK_GAIN_MASK					(0x1F<<0)
695*4882a593Smuzhiyun #define M98925_SPK_GAIN_SHIFT					0
696*4882a593Smuzhiyun #define M98925_SPK_GAIN_WIDTH					5
697*4882a593Smuzhiyun 
698*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_LEFT_DAI (0 << M98925_DAC_IN_SEL_SHIFT)
699*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_RIGHT_DAI (1 << M98925_DAC_IN_SEL_SHIFT)
700*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_SUMMED_DAI (2 << M98925_DAC_IN_SEL_SHIFT)
701*4882a593Smuzhiyun #define M98925_DAC_IN_SEL_DIV2_SUMMED_DAI (3 << M98925_DAC_IN_SEL_SHIFT)
702*4882a593Smuzhiyun 
703*4882a593Smuzhiyun /* MAX98925_R02E_GAIN_RAMPING */
704*4882a593Smuzhiyun #define M98925_SPK_RMP_EN_MASK		(1<<1)
705*4882a593Smuzhiyun #define M98925_SPK_RMP_EN_SHIFT		1
706*4882a593Smuzhiyun #define M98925_SPK_RMP_EN_WIDTH		1
707*4882a593Smuzhiyun #define M98925_SPK_ZCD_EN_MASK		(1<<0)
708*4882a593Smuzhiyun #define M98925_SPK_ZCD_EN_SHIFT		0
709*4882a593Smuzhiyun #define M98925_SPK_ZCD_EN_WIDTH		1
710*4882a593Smuzhiyun 
711*4882a593Smuzhiyun /* MAX98925_R02F_SPK_AMP */
712*4882a593Smuzhiyun #define M98925_SPK_MODE_MASK		(1<<0)
713*4882a593Smuzhiyun #define M98925_SPK_MODE_SHIFT		0
714*4882a593Smuzhiyun #define M98925_SPK_MODE_WIDTH		1
715*4882a593Smuzhiyun 
716*4882a593Smuzhiyun /* MAX98925_R030_THRESHOLD */
717*4882a593Smuzhiyun #define M98925_ALC_EN_MASK			(1<<5)
718*4882a593Smuzhiyun #define M98925_ALC_EN_SHIFT			5
719*4882a593Smuzhiyun #define M98925_ALC_EN_WIDTH			1
720*4882a593Smuzhiyun #define M98925_ALC_TH_MASK			(0x1F<<0)
721*4882a593Smuzhiyun #define M98925_ALC_TH_SHIFT			0
722*4882a593Smuzhiyun #define M98925_ALC_TH_WIDTH			5
723*4882a593Smuzhiyun 
724*4882a593Smuzhiyun /* MAX98925_R031_ALC_ATTACK */
725*4882a593Smuzhiyun #define M98925_ALC_ATK_STEP_MASK	(0x0F<<4)
726*4882a593Smuzhiyun #define M98925_ALC_ATK_STEP_SHIFT	4
727*4882a593Smuzhiyun #define M98925_ALC_ATK_STEP_WIDTH	4
728*4882a593Smuzhiyun #define M98925_ALC_ATK_RATE_MASK	(0x7<<0)
729*4882a593Smuzhiyun #define M98925_ALC_ATK_RATE_SHIFT	0
730*4882a593Smuzhiyun #define M98925_ALC_ATK_RATE_WIDTH	3
731*4882a593Smuzhiyun 
732*4882a593Smuzhiyun /* MAX98925_R032_ALC_ATTEN_RLS */
733*4882a593Smuzhiyun #define M98925_ALC_MAX_ATTEN_MASK	(0x0F<<4)
734*4882a593Smuzhiyun #define M98925_ALC_MAX_ATTEN_SHIFT	4
735*4882a593Smuzhiyun #define M98925_ALC_MAX_ATTEN_WIDTH	4
736*4882a593Smuzhiyun #define M98925_ALC_RLS_RATE_MASK	(0x7<<0)
737*4882a593Smuzhiyun #define M98925_ALC_RLS_RATE_SHIFT	0
738*4882a593Smuzhiyun #define M98925_ALC_RLS_RATE_WIDTH	3
739*4882a593Smuzhiyun 
740*4882a593Smuzhiyun /* MAX98925_R033_ALC_HOLD_RLS */
741*4882a593Smuzhiyun #define M98925_ALC_RLS_TGR_MASK		(1<<0)
742*4882a593Smuzhiyun #define M98925_ALC_RLS_TGR_SHIFT	0
743*4882a593Smuzhiyun #define M98925_ALC_RLS_TGR_WIDTH	1
744*4882a593Smuzhiyun 
745*4882a593Smuzhiyun /* MAX98925_R034_ALC_CONFIGURATION */
746*4882a593Smuzhiyun #define M98925_ALC_MUTE_EN_MASK		(1<<7)
747*4882a593Smuzhiyun #define M98925_ALC_MUTE_EN_SHIFT	7
748*4882a593Smuzhiyun #define M98925_ALC_MUTE_EN_WIDTH	1
749*4882a593Smuzhiyun #define M98925_ALC_MUTE_DLY_MASK	(0x07<<4)
750*4882a593Smuzhiyun #define M98925_ALC_MUTE_DLY_SHIFT	4
751*4882a593Smuzhiyun #define M98925_ALC_MUTE_DLY_WIDTH	3
752*4882a593Smuzhiyun #define M98925_ALC_RLS_DBT_MASK		(0x07<<0)
753*4882a593Smuzhiyun #define M98925_ALC_RLS_DBT_SHIFT	0
754*4882a593Smuzhiyun #define M98925_ALC_RLS_DBT_WIDTH	3
755*4882a593Smuzhiyun 
756*4882a593Smuzhiyun /* MAX98925_R035_BOOST_CONVERTER */
757*4882a593Smuzhiyun #define M98925_BST_SYNC_MASK		(1<<7)
758*4882a593Smuzhiyun #define M98925_BST_SYNC_SHIFT		7
759*4882a593Smuzhiyun #define M98925_BST_SYNC_WIDTH		1
760*4882a593Smuzhiyun #define M98925_BST_PHASE_MASK		(0x03<<4)
761*4882a593Smuzhiyun #define M98925_BST_PHASE_SHIFT		4
762*4882a593Smuzhiyun #define M98925_BST_PHASE_WIDTH		2
763*4882a593Smuzhiyun #define M98925_BST_SKIP_MODE_MASK	(0x03<<0)
764*4882a593Smuzhiyun #define M98925_BST_SKIP_MODE_SHIFT	0
765*4882a593Smuzhiyun #define M98925_BST_SKIP_MODE_WIDTH	2
766*4882a593Smuzhiyun 
767*4882a593Smuzhiyun /* MAX98925_R036_BLOCK_ENABLE */
768*4882a593Smuzhiyun #define M98925_BST_EN_MASK			(1<<7)
769*4882a593Smuzhiyun #define M98925_BST_EN_SHIFT			7
770*4882a593Smuzhiyun #define M98925_BST_EN_WIDTH			1
771*4882a593Smuzhiyun #define M98925_WATCH_EN_MASK		(1<<6)
772*4882a593Smuzhiyun #define M98925_WATCH_EN_SHIFT		6
773*4882a593Smuzhiyun #define M98925_WATCH_EN_WIDTH		1
774*4882a593Smuzhiyun #define M98925_CLKMON_EN_MASK		(1<<5)
775*4882a593Smuzhiyun #define M98925_CLKMON_EN_SHIFT		5
776*4882a593Smuzhiyun #define M98925_CLKMON_EN_WIDTH		1
777*4882a593Smuzhiyun #define M98925_SPK_EN_MASK			(1<<4)
778*4882a593Smuzhiyun #define M98925_SPK_EN_SHIFT			4
779*4882a593Smuzhiyun #define M98925_SPK_EN_WIDTH			1
780*4882a593Smuzhiyun #define M98925_ADC_VBST_EN_MASK		(1<<3)
781*4882a593Smuzhiyun #define M98925_ADC_VBST_EN_SHIFT	3
782*4882a593Smuzhiyun #define M98925_ADC_VBST_EN_WIDTH	1
783*4882a593Smuzhiyun #define M98925_ADC_VBAT_EN_MASK		(1<<2)
784*4882a593Smuzhiyun #define M98925_ADC_VBAT_EN_SHIFT	2
785*4882a593Smuzhiyun #define M98925_ADC_VBAT_EN_WIDTH	1
786*4882a593Smuzhiyun #define M98925_ADC_IMON_EN_MASK		(1<<1)
787*4882a593Smuzhiyun #define M98925_ADC_IMON_EN_SHIFT	1
788*4882a593Smuzhiyun #define M98925_ADC_IMON_EN_WIDTH	1
789*4882a593Smuzhiyun #define M98925_ADC_VMON_EN_MASK		(1<<0)
790*4882a593Smuzhiyun #define M98925_ADC_VMON_EN_SHIFT	0
791*4882a593Smuzhiyun #define M98925_ADC_VMON_EN_WIDTH	1
792*4882a593Smuzhiyun 
793*4882a593Smuzhiyun /* MAX98925_R037_CONFIGURATION */
794*4882a593Smuzhiyun #define M98925_BST_VOUT_MASK		(0x0F<<4)
795*4882a593Smuzhiyun #define M98925_BST_VOUT_SHIFT		4
796*4882a593Smuzhiyun #define M98925_BST_VOUT_WIDTH		4
797*4882a593Smuzhiyun #define M98925_THERMWARN_LEVEL_MASK	(0x03<<2)
798*4882a593Smuzhiyun #define M98925_THERMWARN_LEVEL_SHIFT			2
799*4882a593Smuzhiyun #define M98925_THERMWARN_LEVEL_WIDTH			2
800*4882a593Smuzhiyun #define M98925_WATCH_TIME_MASK			(0x03<<0)
801*4882a593Smuzhiyun #define M98925_WATCH_TIME_SHIFT			0
802*4882a593Smuzhiyun #define M98925_WATCH_TIME_WIDTH			2
803*4882a593Smuzhiyun 
804*4882a593Smuzhiyun /* MAX98925_R038_GLOBAL_ENABLE */
805*4882a593Smuzhiyun #define M98925_EN_MASK			(1<<7)
806*4882a593Smuzhiyun #define M98925_EN_SHIFT			7
807*4882a593Smuzhiyun #define M98925_EN_WIDTH			1
808*4882a593Smuzhiyun 
809*4882a593Smuzhiyun /* MAX98925_R03A_BOOST_LIMITER */
810*4882a593Smuzhiyun #define M98925_BST_ILIM_MASK	(0x1F<<3)
811*4882a593Smuzhiyun #define M98925_BST_ILIM_SHIFT	3
812*4882a593Smuzhiyun #define M98925_BST_ILIM_WIDTH	5
813*4882a593Smuzhiyun 
814*4882a593Smuzhiyun /* MAX98925_R0FF_VERSION */
815*4882a593Smuzhiyun #define M98925_REV_ID_MASK	(0xFF<<0)
816*4882a593Smuzhiyun #define M98925_REV_ID_SHIFT	0
817*4882a593Smuzhiyun #define M98925_REV_ID_WIDTH	8
818*4882a593Smuzhiyun 
819*4882a593Smuzhiyun struct max98925_priv {
820*4882a593Smuzhiyun 	struct regmap *regmap;
821*4882a593Smuzhiyun 	struct snd_soc_component *component;
822*4882a593Smuzhiyun 	struct max98925_pdata *pdata;
823*4882a593Smuzhiyun 	unsigned int sysclk;
824*4882a593Smuzhiyun 	unsigned int v_slot;
825*4882a593Smuzhiyun 	unsigned int i_slot;
826*4882a593Smuzhiyun 	unsigned int spk_gain;
827*4882a593Smuzhiyun 	unsigned int ch_size;
828*4882a593Smuzhiyun };
829*4882a593Smuzhiyun #endif
830