1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
|
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _WCD934X_REGISTERS_H
#define _WCD934X_REGISTERS_H
#define WCD934X_CODEC_RPM_CLK_GATE 0x0002
#define WCD934X_CODEC_RPM_CLK_GATE_MASK GENMASK(1, 0)
#define WCD934X_CODEC_RPM_CLK_MCLK_CFG 0x0003
#define WCD934X_CODEC_RPM_CLK_MCLK_CFG_9P6MHZ BIT(0)
#define WCD934X_CODEC_RPM_CLK_MCLK_CFG_12P288MHZ BIT(1)
#define WCD934X_CODEC_RPM_CLK_MCLK_CFG_MCLK_MASK GENMASK(1, 0)
#define WCD934X_CODEC_RPM_RST_CTL 0x0009
#define WCD934X_CODEC_RPM_PWR_CDC_DIG_HM_CTL 0x0011
#define WCD934X_CHIP_TIER_CTRL_CHIP_ID_BYTE0 0x0021
#define WCD934X_CHIP_TIER_CTRL_CHIP_ID_BYTE2 0x0023
#define WCD934X_CHIP_TIER_CTRL_EFUSE_CTL 0x0025
#define WCD934X_EFUSE_SENSE_STATE_MASK GENMASK(4, 1)
#define WCD934X_EFUSE_SENSE_STATE_DEF 0x10
#define WCD934X_EFUSE_SENSE_EN_MASK BIT(0)
#define WCD934X_EFUSE_SENSE_ENABLE BIT(0)
#define WCD934X_CHIP_TIER_CTRL_EFUSE_VAL_OUT14 0x0037
#define WCD934X_CHIP_TIER_CTRL_EFUSE_VAL_OUT15 0x0038
#define WCD934X_CHIP_TIER_CTRL_EFUSE_STATUS 0x0039
#define WCD934X_DATA_HUB_SB_TX10_INP_CFG 0x006b
#define WCD934X_DATA_HUB_SB_TX11_INP_CFG 0x006c
#define WCD934X_DATA_HUB_SB_TX13_INP_CFG 0x006e
#define WCD934X_CPE_FLL_CONFIG_CTL_2 0x0111
#define WCD934X_CPE_SS_CPARMAD_BUFRDY_INT_PERIOD 0x0213
#define WCD934X_CPE_SS_SVA_CFG 0x0214
#define WCD934X_CPE_SS_DMIC0_CTL 0x0218
#define WCD934X_CPE_SS_DMIC1_CTL 0x0219
#define WCD934X_DMIC_RATE_MASK GENMASK(3, 1)
#define WCD934X_CPE_SS_DMIC2_CTL 0x021a
#define WCD934X_CPE_SS_DMIC_CFG 0x021b
#define WCD934X_CPE_SS_DMIC_CFG 0x021b
#define WCD934X_CPE_SS_CPAR_CFG 0x021c
#define WCD934X_INTR_PIN1_MASK0 0x0409
#define WCD934X_INTR_PIN1_STATUS0 0x0411
#define WCD934X_INTR_PIN1_CLEAR0 0x0419
#define WCD934X_INTR_PIN2_CLEAR3 0x0434
#define WCD934X_INTR_LEVEL0 0x0461
/* INTR_REG 0 */
#define WCD934X_IRQ_SLIMBUS 0
#define WCD934X_IRQ_MISC 1
#define WCD934X_IRQ_HPH_PA_OCPL_FAULT 2
#define WCD934X_IRQ_HPH_PA_OCPR_FAULT 3
#define WCD934X_IRQ_EAR_PA_OCP_FAULT 4
#define WCD934X_IRQ_HPH_PA_CNPL_COMPLETE 5
#define WCD934X_IRQ_HPH_PA_CNPR_COMPLETE 6
#define WCD934X_IRQ_EAR_PA_CNP_COMPLETE 7
/* INTR_REG 1 */
#define WCD934X_IRQ_MBHC_SW_DET 8
#define WCD934X_IRQ_MBHC_ELECT_INS_REM_DET 9
#define WCD934X_IRQ_MBHC_BUTTON_PRESS_DET 10
#define WCD934X_IRQ_MBHC_BUTTON_RELEASE_DET 11
#define WCD934X_IRQ_MBHC_ELECT_INS_REM_LEG_DET 12
#define WCD934X_IRQ_RESERVED_0 13
#define WCD934X_IRQ_RESERVED_1 14
#define WCD934X_IRQ_RESERVED_2 15
/* INTR_REG 2 */
#define WCD934X_IRQ_LINE_PA1_CNP_COMPLETE 16
#define WCD934X_IRQ_LINE_PA2_CNP_COMPLETE 17
#define WCD934X_IRQ_SLNQ_ANALOG_ERROR 18
#define WCD934X_IRQ_RESERVED_3 19
#define WCD934X_IRQ_SOUNDWIRE 20
#define WCD934X_IRQ_VDD_DIG_RAMP_COMPLETE 21
#define WCD934X_IRQ_RCO_ERROR 22
#define WCD934X_IRQ_CPE_ERROR 23
/* INTR_REG 3 */
#define WCD934X_IRQ_MAD_AUDIO 24
#define WCD934X_IRQ_MAD_BEACON 25
#define WCD934X_IRQ_MAD_ULTRASOUND 26
#define WCD934X_IRQ_VBAT_ATTACK 27
#define WCD934X_IRQ_VBAT_RESTORE 28
#define WCD934X_IRQ_CPE1_INTR 29
#define WCD934X_IRQ_RESERVED_4 30
#define WCD934X_IRQ_SLNQ_DIGITAL 31
#define WCD934X_NUM_IRQS 32
#define WCD934X_ANA_BIAS 0x0601
#define WCD934X_ANA_BIAS_EN_MASK BIT(7)
#define WCD934X_ANA_BIAS_EN BIT(7)
#define WCD934X_ANA_PRECHRG_EN_MASK BIT(6)
#define WCD934X_ANA_PRECHRG_EN BIT(6)
#define WCD934X_ANA_PRECHRG_MODE_MASK BIT(5)
#define WCD934X_ANA_PRECHRG_MODE_AUTO BIT(5)
#define WCD934X_ANA_RCO 0x0603
#define WCD934X_ANA_RCO_BG_EN_MASK BIT(7)
#define WCD934X_ANA_RCO_BG_ENABLE BIT(7)
#define WCD934X_ANA_BUCK_CTL 0x0606
#define WCD934X_ANA_BUCK_HI_ACCU_PRE_ENX_MASK GENMASK(1, 0)
#define WCD934X_ANA_BUCK_PRE_EN2_MASK BIT(0)
#define WCD934X_ANA_BUCK_PRE_EN2_ENABLE BIT(0)
#define WCD934X_ANA_BUCK_PRE_EN1_MASK BIT(1)
#define WCD934X_ANA_BUCK_PRE_EN1_ENABLE BIT(1)
#define WCD934X_ANA_BUCK_HI_ACCU_EN_MASK BIT(2)
#define WCD934X_ANA_BUCK_HI_ACCU_ENABLE BIT(2)
#define WCD934X_ANA_RX_SUPPLIES 0x0608
#define WCD934X_ANA_HPH 0x0609
#define WCD934X_ANA_EAR 0x060a
#define WCD934X_ANA_LO_1_2 0x060b
#define WCD934X_ANA_AMIC1 0x060e
#define WCD934X_ANA_AMIC2 0x060f
#define WCD934X_ANA_AMIC3 0x0610
#define WCD934X_ANA_AMIC4 0x0611
#define WCD934X_ANA_MBHC_MECH 0x0614
#define WCD934X_ANA_MBHC_ELECT 0x0615
#define WCD934X_ANA_MBHC_ZDET 0x0616
#define WCD934X_ANA_MBHC_RESULT_1 0x0617
#define WCD934X_ANA_MBHC_RESULT_2 0x0618
#define WCD934X_ANA_MBHC_RESULT_3 0x0619
#define WCD934X_ANA_MICB1 0x0622
#define WCD934X_MICB_VAL_MASK GENMASK(5, 0)
#define WCD934X_ANA_MICB_EN_MASK GENMASK(7, 6)
#define WCD934X_ANA_MICB_PULL_UP 0x80
#define WCD934X_ANA_MICB_ENABLE 0x40
#define WCD934X_ANA_MICB_DISABLE 0x0
#define WCD934X_ANA_MICB2 0x0623
#define WCD934X_ANA_MICB3 0x0625
#define WCD934X_ANA_MICB4 0x0626
#define WCD934X_BIAS_VBG_FINE_ADJ 0x0629
#define WCD934X_MICB1_TEST_CTL_1 0x066b
#define WCD934X_MICB1_TEST_CTL_2 0x066c
#define WCD934X_MICB2_TEST_CTL_1 0x066e
#define WCD934X_MICB3_TEST_CTL_1 0x0671
#define WCD934X_MICB4_TEST_CTL_1 0x0674
#define WCD934X_CLASSH_MODE_1 0x0697
#define WCD934X_CLASSH_MODE_2 0x0698
#define WCD934X_CLASSH_MODE_3 0x0699
#define WCD934X_CLASSH_CTRL_VCL_1 0x069a
#define WCD934X_CLASSH_CTRL_VCL_2 0x069b
#define WCD934X_CLASSH_CTRL_CCL_1 0x069c
#define WCD934X_CLASSH_CTRL_CCL_2 0x069d
#define WCD934X_CLASSH_CTRL_CCL_3 0x069e
#define WCD934X_CLASSH_CTRL_CCL_4 0x069f
#define WCD934X_CLASSH_CTRL_CCL_5 0x06a0
#define WCD934X_CLASSH_BUCK_TMUX_A_D 0x06a1
#define WCD934X_CLASSH_BUCK_SW_DRV_CNTL 0x06a2
#define WCD934X_RX_OCP_CTL 0x06b6
#define WCD934X_RX_OCP_COUNT 0x06b7
#define WCD934X_HPH_CNP_EN 0x06cb
#define WCD934X_HPH_CNP_WG_CTL 0x06cc
#define WCD934X_HPH_GM3_BOOST_EN_MASK BIT(7)
#define WCD934X_HPH_GM3_BOOST_ENABLE BIT(7)
#define WCD934X_HPH_OCP_CTL 0x06ce
#define WCD934X_HPH_L_EN 0x06d3
#define WCD934X_HPH_GAIN_SRC_SEL_MASK BIT(5)
#define WCD934X_HPH_GAIN_SRC_SEL_COMPANDER 0
#define WCD934X_HPH_GAIN_SRC_SEL_REGISTER BIT(5)
#define WCD934X_HPH_L_TEST 0x06d4
#define WCD934X_HPH_R_EN 0x06d6
#define WCD934X_HPH_R_TEST 0x06d7
#define WCD934X_HPH_OCP_DET_MASK BIT(0)
#define WCD934X_HPH_OCP_DET_ENABLE BIT(0)
#define WCD934X_HPH_OCP_DET_DISABLE 0
#define WCD934X_DIFF_LO_LO2_COMPANDER 0x06ea
#define WCD934X_DIFF_LO_LO1_COMPANDER 0x06eb
#define WCD934X_CLK_SYS_MCLK_PRG 0x0711
#define WCD934X_EXT_CLK_BUF_EN_MASK BIT(7)
#define WCD934X_EXT_CLK_BUF_EN BIT(7)
#define WCD934X_EXT_CLK_DIV_RATIO_MASK GENMASK(5, 4)
#define WCD934X_EXT_CLK_DIV_BY_2 0x10
#define WCD934X_MCLK_SRC_MASK BIT(1)
#define WCD934X_MCLK_SRC_EXT_CLK 0
#define WCD934X_MCLK_SRC_MASK BIT(1)
#define WCD934X_MCLK_EN_MASK BIT(0)
#define WCD934X_MCLK_EN BIT(0)
#define WCD934X_CLK_SYS_MCLK2_PRG1 0x0712
#define WCD934X_CLK_SYS_MCLK2_PRG2 0x0713
#define WCD934X_SIDO_NEW_VOUT_A_STARTUP 0x071b
#define WCD934X_SIDO_NEW_VOUT_D_STARTUP 0x071c
#define WCD934X_SIDO_NEW_VOUT_D_FREQ1 0x071d
#define WCD934X_SIDO_NEW_VOUT_D_FREQ2 0x071e
#define WCD934X_SIDO_RIPPLE_FREQ_EN_MASK BIT(0)
#define WCD934X_SIDO_RIPPLE_FREQ_ENABLE BIT(0)
#define WCD934X_MBHC_NEW_CTL_2 0x0721
#define WCD934X_TX_NEW_AMIC_4_5_SEL 0x0727
#define WCD934X_HPH_NEW_INT_RDAC_HD2_CTL_L 0x0733
#define WCD934X_HPH_NEW_INT_RDAC_OVERRIDE_CTL 0x0735
#define WCD934X_HPH_NEW_INT_RDAC_HD2_CTL_R 0x0736
#define WCD934X_HPH_NEW_INT_HPH_TIMER1 0x073a
#define WCD934X_HPH_AUTOCHOP_TIMER_EN_MASK BIT(1)
#define WCD934X_HPH_AUTOCHOP_TIMER_ENABLE BIT(1)
#define WCD934X_CDC_TX0_TX_PATH_CTL 0x0a31
#define WCD934X_CDC_TX_PATH_CTL_PCM_RATE_MASK GENMASK(3, 0)
#define WCD934X_CDC_TX_PATH_CTL(dec) (0xa31 + dec * 0x10)
#define WCD934X_CDC_TX0_TX_PATH_CFG0 0x0a32
#define WCD934X_CDC_TX0_TX_PATH_CFG1 0x0a33
#define WCD934X_CDC_TX0_TX_VOL_CTL 0x0a34
#define WCD934X_CDC_TX0_TX_PATH_192_CTL 0x0a35
#define WCD934X_CDC_TX0_TX_PATH_192_CFG 0x0a36
#define WCD934X_CDC_TX0_TX_PATH_SEC2 0x0a39
#define WCD934X_HPH_CUTOFF_FREQ_CHANGE_REQ_MASK BIT(1)
#define WCD934X_HPH_CUTOFF_FREQ_CHANGE_REQ BIT(1)
#define WCD934X_CDC_TX1_TX_PATH_CTL 0x0a41
#define WCD934X_CDC_TX1_TX_PATH_CFG0 0x0a42
#define WCD934X_CDC_TX1_TX_PATH_CFG1 0x0a43
#define WCD934X_CDC_TX1_TX_VOL_CTL 0x0a44
#define WCD934X_CDC_TX2_TX_PATH_CTL 0x0a51
#define WCD934X_CDC_TX2_TX_PATH_CFG0 0x0a52
#define WCD934X_CDC_TX2_TX_PATH_CFG1 0x0a53
#define WCD934X_CDC_TX2_TX_VOL_CTL 0x0a54
#define WCD934X_CDC_TX3_TX_PATH_CTL 0x0a61
#define WCD934X_CDC_TX3_TX_PATH_CFG0 0x0a62
#define WCD934X_CDC_TX3_TX_PATH_CFG1 0x0a63
#define WCD934X_CDC_TX3_TX_VOL_CTL 0x0a64
#define WCD934X_CDC_TX3_TX_PATH_192_CTL 0x0a65
#define WCD934X_CDC_TX3_TX_PATH_192_CFG 0x0a66
#define WCD934X_CDC_TX4_TX_PATH_CTL 0x0a71
#define WCD934X_CDC_TX4_TX_PATH_CFG0 0x0a72
#define WCD934X_CDC_TX4_TX_PATH_CFG1 0x0a73
#define WCD934X_CDC_TX4_TX_VOL_CTL 0x0a74
#define WCD934X_CDC_TX4_TX_PATH_192_CTL 0x0a75
#define WCD934X_CDC_TX4_TX_PATH_192_CFG 0x0a76
#define WCD934X_CDC_TX5_TX_PATH_CTL 0x0a81
#define WCD934X_CDC_TX5_TX_PATH_CFG0 0x0a82
#define WCD934X_CDC_TX5_TX_PATH_CFG1 0x0a83
#define WCD934X_CDC_TX5_TX_VOL_CTL 0x0a84
#define WCD934X_CDC_TX5_TX_PATH_192_CTL 0x0a85
#define WCD934X_CDC_TX5_TX_PATH_192_CFG 0x0a86
#define WCD934X_CDC_TX6_TX_PATH_CTL 0x0a91
#define WCD934X_CDC_TX6_TX_PATH_CFG0 0x0a92
#define WCD934X_CDC_TX6_TX_PATH_CFG1 0x0a93
#define WCD934X_CDC_TX6_TX_VOL_CTL 0x0a94
#define WCD934X_CDC_TX6_TX_PATH_192_CTL 0x0a95
#define WCD934X_CDC_TX6_TX_PATH_192_CFG 0x0a96
#define WCD934X_CDC_TX7_TX_PATH_CTL 0x0aa1
#define WCD934X_CDC_TX7_TX_PATH_CFG0 0x0aa2
#define WCD934X_CDC_TX7_TX_PATH_CFG1 0x0aa3
#define WCD934X_CDC_TX7_TX_VOL_CTL 0x0aa4
#define WCD934X_CDC_TX7_TX_PATH_192_CTL 0x0aa5
#define WCD934X_CDC_TX7_TX_PATH_192_CFG 0x0aa6
#define WCD934X_CDC_TX8_TX_PATH_CTL 0x0ab1
#define WCD934X_CDC_TX8_TX_PATH_CFG0 0x0ab2
#define WCD934X_CDC_TX8_TX_PATH_CFG1 0x0ab3
#define WCD934X_CDC_TX8_TX_VOL_CTL 0x0ab4
#define WCD934X_CDC_TX8_TX_PATH_192_CTL 0x0ab5
#define WCD934X_CDC_TX8_TX_PATH_192_CFG 0x0ab6
#define WCD934X_CDC_TX9_SPKR_PROT_PATH_CFG0 0x0ac3
#define WCD934X_CDC_TX10_SPKR_PROT_PATH_CFG0 0x0ac7
#define WCD934X_CDC_TX11_SPKR_PROT_PATH_CFG0 0x0acb
#define WCD934X_CDC_TX12_SPKR_PROT_PATH_CFG0 0x0acf
#define WCD934X_CDC_COMPANDER1_CTL0 0x0b01
#define WCD934X_COMP_CLK_EN_MASK BIT(0)
#define WCD934X_COMP_CLK_ENABLE BIT(0)
#define WCD934X_COMP_SOFT_RST_MASK BIT(1)
#define WCD934X_COMP_SOFT_RST_ENABLE BIT(1)
#define WCD934X_COMP_HALT_MASK BIT(2)
#define WCD934X_COMP_HALT BIT(2)
#define WCD934X_COMP_SOFT_RST_DISABLE 0
#define WCD934X_CDC_COMPANDER1_CTL7 0x0b08
#define WCD934X_HPH_LOW_PWR_MODE_EN_MASK BIT(5)
#define WCD934X_CDC_COMPANDER2_CTL7 0x0b10
#define WCD934X_CDC_COMPANDER7_CTL3 0x0b34
#define WCD934X_CDC_COMPANDER7_CTL7 0x0b38
#define WCD934X_CDC_COMPANDER8_CTL3 0x0b3c
#define WCD934X_CDC_COMPANDER8_CTL7 0x0b40
#define WCD934X_CDC_RX0_RX_PATH_CTL 0x0b41
#define WCD934X_CDC_RX_PGA_MUTE_EN_MASK BIT(4)
#define WCD934X_CDC_RX_PGA_MUTE_ENABLE BIT(4)
#define WCD934X_CDC_RX_PGA_MUTE_DISABLE 0
#define WCD934X_RX_CLK_EN_MASK BIT(5)
#define WCD934X_RX_CLK_ENABLE BIT(5)
#define WCD934X_RX_RESET_MASK BIT(6)
#define WCD934X_RX_RESET_ENABLE BIT(6)
#define WCD934X_RX_RESET_DISABLE 0
#define WCD934X_RX_PCM_RATE_MASK GENMASK(3, 0)
#define WCD934X_RX_PCM_RATE_F_48K 0x04
#define WCD934X_CDC_RX_PATH_CTL(rx) (0xb41 + rx * 0x14)
#define WCD934X_CDC_MIX_PCM_RATE_MASK GENMASK(3, 0)
#define WCD934X_CDC_RX0_RX_PATH_CFG0 0x0b42
#define WCD934X_RX_DLY_ZN_EN_MASK BIT(3)
#define WCD934X_RX_DLY_ZN_ENABLE BIT(3)
#define WCD934X_RX_DLY_ZN_DISABLE 0
#define WCD934X_CDC_RX0_RX_PATH_CFG1 0x0b43
#define WCD934X_CDC_RX0_RX_PATH_CFG2 0x0b44
#define WCD934X_CDC_RX0_RX_VOL_CTL 0x0b45
#define WCD934X_CDC_RX0_RX_PATH_MIX_CTL 0x0b46
#define WCD934X_CDC_RX_MIX_CLK_EN_MASK BIT(5)
#define WCD934X_CDC_RX_MIX_CLK_ENABLE BIT(5)
#define WCD934X_CDC_RX_PATH_MIX_CTL(rx) (0xb46 + rx * 0x14)
#define WCD934X_CDC_RX0_RX_PATH_MIX_CFG 0x0b47
#define WCD934X_CDC_RX0_RX_VOL_MIX_CTL 0x0b48
#define WCD934X_CDC_RX0_RX_PATH_SEC0 0x0b49
#define WCD934X_CDC_RX0_RX_PATH_DSMDEM_CTL 0x0b53
#define WCD934X_CDC_RX1_RX_PATH_CTL 0x0b55
#define WCD934X_RX_PATH_PGA_MUTE_EN_MASK BIT(4)
#define WCD934X_RX_PATH_PGA_MUTE_ENABLE BIT(4)
#define WCD934X_CDC_RX_PATH_PGA_MUTE_DISABLE 0
#define WCD934X_CDC_RX_PATH_CLK_EN_MASK BIT(5)
#define WCD934X_CDC_RX_PATH_CLK_ENABLE BIT(5)
#define WCD934X_CDC_RX_PATH_CLK_DISABLE 0
#define WCD934X_CDC_RX1_RX_PATH_CFG0 0x0b56
#define WCD934X_HPH_CMP_EN_MASK BIT(1)
#define WCD934X_HPH_CMP_ENABLE BIT(1)
#define WCD934X_HPH_CMP_DISABLE 0
#define WCD934X_CDC_RX1_RX_PATH_CFG2 0x0b58
#define WCD934X_CDC_RX1_RX_VOL_CTL 0x0b59
#define WCD934X_CDC_RX1_RX_PATH_MIX_CTL 0x0b5a
#define WCD934X_CDC_RX1_RX_PATH_MIX_CFG 0x0b5b
#define WCD934X_CDC_RX1_RX_VOL_MIX_CTL 0x0b5c
#define WCD934X_CDC_RX1_RX_PATH_SEC0 0x0b5d
#define WCD934X_CDC_RX1_RX_PATH_SEC3 0x0b60
#define WCD934X_CDC_RX_PATH_SEC_HD2_ALPHA_MASK GENMASK(5, 2)
#define WCD934X_CDC_RX_PATH_SEC_HD2_ALPHA_0P3125 0x14
#define WCD934X_CDC_RX_PATH_SEC_HD2_ALPHA_0P0000 0
#define WCD934X_CDC_RX1_RX_PATH_DSMDEM_CTL 0x0b67
#define WCD934X_CDC_RX2_RX_PATH_CTL 0x0b69
#define WCD934X_CDC_RX2_RX_PATH_CFG0 0x0b6a
#define WCD934X_CDC_RX_PATH_CFG_HD2_EN_MASK BIT(2)
#define WCD934X_CDC_RX_PATH_CFG_HD2_ENABLE BIT(2)
#define WCD934X_CDC_RX_PATH_CFG_HD2_DISABLE 0
#define WCD934X_CDC_RX2_RX_PATH_CFG2 0x0b6c
#define WCD934X_CDC_RX2_RX_VOL_CTL 0x0b6d
#define WCD934X_CDC_RX2_RX_PATH_MIX_CTL 0x0b6e
#define WCD934X_CDC_RX2_RX_PATH_MIX_CFG 0x0b6f
#define WCD934X_CDC_RX2_RX_VOL_MIX_CTL 0x0b70
#define WCD934X_CDC_RX2_RX_PATH_SEC0 0x0b71
#define WCD934X_CDC_RX2_RX_PATH_SEC3 0x0b74
#define WCD934X_CDC_RX2_RX_PATH_DSMDEM_CTL 0x0b7b
#define WCD934X_CDC_RX3_RX_PATH_CTL 0x0b7d
#define WCD934X_CDC_RX3_RX_PATH_CFG0 0x0b6e
#define WCD934X_CDC_RX3_RX_PATH_CFG2 0x0b80
#define WCD934X_CDC_RX3_RX_VOL_CTL 0x0b81
#define WCD934X_CDC_RX3_RX_PATH_MIX_CTL 0x0b82
#define WCD934X_CDC_RX3_RX_PATH_MIX_CFG 0x0b83
#define WCD934X_CDC_RX3_RX_VOL_MIX_CTL 0x0b84
#define WCD934X_CDC_RX3_RX_PATH_SEC0 0x0b85
#define WCD934X_CDC_RX3_RX_PATH_DSMDEM_CTL 0x0b8f
#define WCD934X_CDC_RX4_RX_PATH_CTL 0x0b91
#define WCD934X_CDC_RX4_RX_PATH_CFG0 0x0b92
#define WCD934X_CDC_RX4_RX_PATH_CFG2 0x0b94
#define WCD934X_CDC_RX4_RX_VOL_CTL 0x0b95
#define WCD934X_CDC_RX4_RX_PATH_MIX_CTL 0x0b96
#define WCD934X_CDC_RX4_RX_PATH_MIX_CFG 0x0b97
#define WCD934X_CDC_RX4_RX_VOL_MIX_CTL 0x0b98
#define WCD934X_CDC_RX4_RX_PATH_SEC0 0x0b99
#define WCD934X_CDC_RX4_RX_PATH_DSMDEM_CTL 0x0ba3
#define WCD934X_CDC_RX7_RX_PATH_CTL 0x0bcd
#define WCD934X_CDC_RX7_RX_PATH_CFG0 0x0bce
#define WCD934X_CDC_RX7_RX_PATH_CFG1 0x0bcf
#define WCD934X_CDC_RX7_RX_PATH_CFG2 0x0bd0
#define WCD934X_CDC_RX7_RX_VOL_CTL 0x0bd1
#define WCD934X_CDC_RX7_RX_PATH_MIX_CTL 0x0bd2
#define WCD934X_CDC_RX7_RX_PATH_MIX_CFG 0x0bd3
#define WCD934X_CDC_RX7_RX_VOL_MIX_CTL 0x0bd4
#define WCD934X_CDC_RX7_RX_PATH_SEC1 0x0bd6
#define WCD934X_CDC_RX7_RX_PATH_MIX_SEC0 0x0bdd
#define WCD934X_CDC_RX7_RX_PATH_DSMDEM_CTL 0x0bdf
#define WCD934X_CDC_RX8_RX_PATH_CTL 0x0be1
#define WCD934X_CDC_RX8_RX_PATH_CFG0 0x0be2
#define WCD934X_CDC_RX8_RX_PATH_CFG1 0x0be3
#define WCD934X_RX_SMART_BOOST_EN_MASK BIT(0)
#define WCD934X_RX_SMART_BOOST_ENABLE BIT(0)
#define WCD934X_RX_SMART_BOOST_DISABLE 0
#define WCD934X_CDC_RX8_RX_PATH_CFG2 0x0be4
#define WCD934X_CDC_RX8_RX_VOL_CTL 0x0be5
#define WCD934X_CDC_RX8_RX_PATH_MIX_CTL 0x0be6
#define WCD934X_CDC_RX8_RX_PATH_MIX_CFG 0x0be7
#define WCD934X_CDC_RX8_RX_VOL_MIX_CTL 0x0be8
#define WCD934X_CDC_RX8_RX_PATH_SEC1 0x0bea
#define WCD934X_CDC_RX8_RX_PATH_MIX_SEC0 0x0bf1
#define WCD934X_CDC_RX8_RX_PATH_DSMDEM_CTL 0x0bf3
#define WCD934X_CDC_CLSH_DECAY_CTRL 0x0c03
#define WCD934X_CDC_CLSH_K2_MSB 0x0c0a
#define WCD934X_CDC_CLSH_K2_LSB 0x0c0b
#define WCD934X_CDC_CLSH_TEST0 0x0c0f
#define WCD934X_CDC_BOOST0_BOOST_PATH_CTL 0x0c19
#define WCD934X_BOOST_PATH_CLK_EN_MASK BIT(4)
#define WCD934X_BOOST_PATH_CLK_ENABLE BIT(4)
#define WCD934X_BOOST_PATH_CLK_DISABLE 0
#define WCD934X_CDC_BOOST0_BOOST_CTL 0x0c1a
#define WCD934X_CDC_BOOST0_BOOST_CFG1 0x0c1b
#define WCD934X_CDC_BOOST0_BOOST_CFG2 0x0c1c
#define WCD934X_CDC_BOOST1_BOOST_PATH_CTL 0x0c21
#define WCD934X_CDC_BOOST1_BOOST_CTL 0x0c22
#define WCD934X_CDC_BOOST1_BOOST_CFG1 0x0c23
#define WCD934X_CDC_BOOST1_BOOST_CFG2 0x0c24
#define WCD934X_SWR_AHB_BRIDGE_RD_DATA_0 0x0c91
#define WCD934X_SWR_AHB_BRIDGE_RD_DATA_1 0x0c92
#define WCD934X_SWR_AHB_BRIDGE_RD_DATA_2 0x0c93
#define WCD934X_SWR_AHB_BRIDGE_RD_DATA_3 0x0c94
#define WCD934X_SWR_AHB_BRIDGE_ACCESS_STATUS 0x0c96
#define WCD934X_CDC_SIDETONE_SRC0_ST_SRC_PATH_CTL 0x0cb5
#define WCD934X_CDC_SIDETONE_SRC1_ST_SRC_PATH_CTL 0x0cb9
#define WCD934X_CDC_RX_INP_MUX_RX_INT0_CFG0 0x0d01
#define WCD934X_CDC_RX_INP_MUX_RX_INT_CFG0(i) (0xd01 + i * 0x2)
#define WCD934X_CDC_RX_INP_MUX_RX_INT_SEL_MASK GENMASK(3, 0)
#define WCD934X_CDC_RX_INP_MUX_RX_INT0_CFG1 0x0d02
#define WCD934X_CDC_RX_INP_MUX_RX_INT_CFG1(i) (0xd02 + i * 0x2)
#define WCD934X_CDC_RX_INP_MUX_RX_INT1_CFG0 0x0d03
#define WCD934X_CDC_RX_INP_MUX_RX_INT1_CFG1 0x0d04
#define WCD934X_CDC_RX_INP_MUX_RX_INT2_CFG0 0x0d05
#define WCD934X_CDC_RX_INP_MUX_RX_INT2_CFG1 0x0d06
#define WCD934X_CDC_RX_INP_MUX_RX_INT3_CFG0 0x0d07
#define WCD934X_CDC_RX_INP_MUX_RX_INT3_CFG1 0x0d08
#define WCD934X_CDC_RX_INP_MUX_RX_INT4_CFG0 0x0d09
#define WCD934X_CDC_RX_INP_MUX_RX_INT4_CFG1 0x0d0a
#define WCD934X_CDC_RX_INP_MUX_RX_INT7_CFG0 0x0d0f
#define WCD934X_CDC_RX_INP_MUX_RX_INT7_CFG1 0x0d10
#define WCD934X_CDC_RX_INP_MUX_RX_INT8_CFG0 0x0d11
#define WCD934X_CDC_RX_INP_MUX_RX_INT8_CFG1 0x0d12
#define WCD934X_CDC_RX_INP_MUX_RX_MIX_CFG0 0x0d13
#define WCD934X_CDC_RX_INP_MUX_RX_MIX_CFG1 0x0d14
#define WCD934X_CDC_RX_INP_MUX_RX_MIX_CFG2 0x0d15
#define WCD934X_CDC_RX_INP_MUX_RX_MIX_CFG3 0x0d16
#define WCD934X_CDC_RX_INP_MUX_RX_MIX_CFG4 0x0d17
#define WCD934X_CDC_RX_INP_MUX_SIDETONE_SRC_CFG0 0x0d18
#define WCD934X_CDC_RX_INP_MUX_SIDETONE_SRC_CFG1 0x0d19
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG0 0x0d1d
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG1 0x0d1e
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX1_CFG0 0x0d1f
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX1_CFG1 0x0d20
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX2_CFG0 0x0d21
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX2_CFG1 0x0d22
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX3_CFG0 0x0d23
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX3_CFG1 0x0d25
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX4_CFG0 0x0d26
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX5_CFG0 0x0d27
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX6_CFG0 0x0d28
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX7_CFG0 0x0d29
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX8_CFG0 0x0d2a
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX10_CFG0 0x0d2b
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX11_CFG0 0x0d2c
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX12_CFG0 0x0d2d
#define WCD934X_CDC_TX_INP_MUX_ADC_MUX13_CFG0 0x0d2e
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR0_MIX_CFG0 0x0d31
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR0_MIX_CFG1 0x0d32
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR0_MIX_CFG2 0x0d33
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR0_MIX_CFG3 0x0d34
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR1_MIX_CFG0 0x0d35
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR1_MIX_CFG1 0x0d36
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR1_MIX_CFG2 0x0d37
#define WCD934X_CDC_SIDETONE_IIR_INP_MUX_IIR1_MIX_CFG3 0x0d38
#define WCD934X_CDC_IF_ROUTER_TX_MUX_CFG0 0x0d3a
#define WCD934X_CDC_IF_ROUTER_TX_MUX_CFG1 0x0d3b
#define WCD934X_CDC_IF_ROUTER_TX_MUX_CFG2 0x0d3c
#define WCD934X_CDC_IF_ROUTER_TX_MUX_CFG3 0x0d3d
#define WCD934X_CDC_CLK_RST_CTRL_MCLK_CONTROL 0x0d41
#define WCD934X_CDC_MCLK_EN_MASK BIT(0)
#define WCD934X_CDC_MCLK_EN_ENABLE BIT(0)
#define WCD934X_CDC_CLK_RST_CTRL_FS_CNT_CONTROL 0x0d42
#define WCD934X_CDC_FS_MCLK_CNT_EN_MASK BIT(0)
#define WCD934X_CDC_FS_MCLK_CNT_ENABLE BIT(0)
#define WCD934X_CDC_CLK_RST_CTRL_SWR_CONTROL 0x0d43
#define WCD934X_CDC_SWR_CLK_EN_MASK BIT(0)
#define WCD934X_CDC_SWR_CLK_ENABLE BIT(0)
#define WCD934X_CDC_CLK_RST_CTRL_DSD_CONTROL 0x0d44
#define WCD934X_CDC_CLK_RST_CTRL_ASRC_SHARE_CONTROL 0x0d45
#define WCD934X_CDC_CLK_RST_CTRL_GFM_CONTROL 0x0d46
#define WCD934X_CDC_SIDETONE_IIR0_IIR_PATH_CTL 0x0d55
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B1_CTL 0x0d56
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B2_CTL 0x0d57
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B3_CTL 0x0d58
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B4_CTL 0x0d59
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B5_CTL 0x0d5a
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B6_CTL 0x0d5b
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B7_CTL 0x0d5c
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_B8_CTL 0x0d5d
#define WCD934X_CDC_SIDETONE_IIR0_IIR_CTL 0x0d5e
#define WCD934X_CDC_SIDETONE_IIR0_IIR_GAIN_TIMER_CTL 0x0d5f
#define WCD934X_CDC_SIDETONE_IIR0_IIR_COEF_B1_CTL 0x0d60
#define WCD934X_CDC_SIDETONE_IIR0_IIR_COEF_B2_CTL 0x0d61
#define WCD934X_CDC_SIDETONE_IIR1_IIR_PATH_CTL 0x0d65
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B1_CTL 0x0d66
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B2_CTL 0x0d67
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B3_CTL 0x0d68
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B4_CTL 0x0d69
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B5_CTL 0x0d6a
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B6_CTL 0x0d6b
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B7_CTL 0x0d6c
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_B8_CTL 0x0d6d
#define WCD934X_CDC_SIDETONE_IIR1_IIR_CTL 0x0d6e
#define WCD934X_CDC_SIDETONE_IIR1_IIR_GAIN_TIMER_CTL 0x0d6f
#define WCD934X_CDC_SIDETONE_IIR1_IIR_COEF_B1_CTL 0x0d70
#define WCD934X_CDC_SIDETONE_IIR1_IIR_COEF_B2_CTL 0x0d71
#define WCD934X_CDC_TOP_TOP_CFG1 0x0d82
#define WCD934X_CDC_TOP_TOP_CFG7 0x0d88
#define WCD934X_CDC_TOP_HPHL_COMP_LUT 0x0d8b
#define WCD934X_CDC_TOP_HPHR_COMP_LUT 0x0d90
#define WCD934X_HPH_LUT_BYPASS_MASK BIT(7)
#define WCD934X_HPH_LUT_BYPASS_ENABLE BIT(7)
#define WCD934X_HPH_LUT_BYPASS_DISABLE 0
#define WCD934X_CODEC_CPR_WR_DATA_0 0x5001
#define WCD934X_CODEC_CPR_WR_ADDR_0 0x5005
#define WCD934X_CODEC_CPR_SVS_CX_VDD 0x5022
#define WCD934X_CODEC_CPR_SVS2_CX_VDD 0x5023
#define WCD934X_CODEC_CPR_SVS2_MIN_CX_VDD 0x5027
#define WCD934X_TLMM_DMIC1_CLK_PINCFG 0x8015
#define WCD934X_TLMM_DMIC1_DATA_PINCFG 0x8016
#define WCD934X_TLMM_DMIC2_CLK_PINCFG 0x8017
#define WCD934X_TLMM_DMIC2_DATA_PINCFG 0x8018
#define WCD934X_TLMM_DMIC3_CLK_PINCFG 0x8019
#define WCD934X_TLMM_DMIC3_DATA_PINCFG 0x801a
#define WCD934X_TEST_DEBUG_PAD_DRVCTL_0 0x803b
#define WCD934X_TEST_DEBUG_NPL_DLY_TEST_1 0x803e
#define WCD934X_MAX_REGISTER 0xffff
#define WCD934X_SEL_REGISTER 0x800
#define WCD934X_SEL_MASK 0xff
#define WCD934X_SEL_SHIFT 0x0
#define WCD934X_WINDOW_START 0x800
#define WCD934X_WINDOW_LENGTH 0x100
/* SLIMBUS Slave Registers */
#define WCD934X_SLIM_PGD_PORT_INT_EN0 0x30
#define WCD934X_SLIM_PGD_PORT_INT_STATUS_RX_0 0x34
#define WCD934X_SLIM_PGD_PORT_INT_STATUS_RX_1 0x35
#define WCD934X_SLIM_PGD_PORT_INT_STATUS_TX_0 0x36
#define WCD934X_SLIM_PGD_PORT_INT_STATUS_TX_1 0x37
#define WCD934X_SLIM_PGD_PORT_INT_CLR_RX_0 0x38
#define WCD934X_SLIM_PGD_PORT_INT_CLR_RX_1 0x39
#define WCD934X_SLIM_PGD_PORT_INT_CLR_TX_0 0x3A
#define WCD934X_SLIM_PGD_PORT_INT_CLR_TX_1 0x3B
#define WCD934X_SLIM_PGD_PORT_INT_RX_SOURCE0 0x60
#define WCD934X_SLIM_PGD_PORT_INT_TX_SOURCE0 0x70
#define WCD934X_SLIM_PGD_RX_PORT_CFG(p) (0x30 + p)
#define WCD934X_SLIM_PGD_PORT_CFG(p) (0x40 + p)
#define WCD934X_SLIM_PGD_TX_PORT_CFG(p) (0x50 + p)
#define WCD934X_SLIM_PGD_PORT_INT_SRC(p) (0x60 + p)
#define WCD934X_SLIM_PGD_PORT_INT_STATUS(p) (0x80 + p)
#define WCD934X_SLIM_PGD_TX_PORT_MULTI_CHNL_0(p) (0x100 + 4 * p)
/* ports range from 10-16 */
#define WCD934X_SLIM_PGD_TX_PORT_MULTI_CHNL_1(p) (0x101 + 4 * p)
#define WCD934X_SLIM_PGD_RX_PORT_MULTI_CHNL_0(p) (0x140 + 4 * p)
#define SLIM_MANF_ID_QCOM 0x217
#define SLIM_PROD_CODE_WCD9340 0x250
#define SLIM_DEV_IDX_WCD9340 0x1
#define SLIM_DEV_INSTANCE_ID_WCD9340 0
#endif
|