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