NetBurner 3.5.6
PDF Version
wm8904_reg.h
1
#ifndef __WM8904_REG_H
2
#define __WM8904_REG_H
3
/*NB_REVISION*/
4
5
/*NB_COPYRIGHT*/
6
7
#define WM8904_I2C_ID 0x1A
8
9
#define BIAS_CTL0_ISEL_HI (0x2 << 2)
10
#define BIAS_CTL0_ISEL_LO (0x0 << 2)
11
#define BIAS_CTL0_BIAS_ENA (1 << 0)
12
13
#define VMID_CTL0_BUF_ENA (1 << 6)
14
#define VMID_CTL0_RES_DIS (0 << 1)
15
#define VMID_CTL0_RES_MID (1 << 1)
16
#define VMID_CTL0_RES_SLOW (2 << 1)
17
#define VMID_CTL0_RES_FAST (3 << 1)
18
#define VMID_CTL0_ENA (1 << 0)
19
20
#define PWR_MGMNT0_INL_ENA (1 << 1)
21
#define PWR_MGMNT0_INR_ENA (1 << 0)
22
23
#define PWR_MGMNT2_HPL_PGA_ENA (1 << 1)
24
#define PWR_MGMNT2_HPR_PGA_ENA (1 << 0)
25
26
#define PWR_MGMNT6_DACL_ENA (1 << 3)
27
#define PWR_MGMNT6_DACR_ENA (1 << 2)
28
#define PWR_MGMNT6_ADCL_ENA (1 << 1)
29
#define PWR_MGMNT6_ADCR_ENA (1 << 0)
30
31
#define CHARGE_PUMP0_CP_ENA (1 << 0)
32
33
#define CLK_SYS_RATE_64 (0 << 10)
34
#define CLK_SYS_RATE_128 (1 << 10)
35
#define CLK_SYS_RATE_192 (2 << 10)
36
#define CLK_SYS_RATE_256 (3 << 10)
37
#define CLK_SYS_RATE_384 (4 << 10)
38
#define CLK_SYS_RATE_512 (5 << 10)
39
#define CLK_SYS_RATE_768 (6 << 10)
40
#define CLK_SYS_RATE_1024 (7 << 10)
41
#define CLK_SYS_RATE_1408 (8 << 10)
42
#define CLK_SYS_RATE_1536 (9 << 10)
43
#define CLK_SAMPLE_RATE_8K (0 << 10)
44
#define CLK_SAMPLE_RATE_12K (1 << 10)
45
#define CLK_SAMPLE_RATE_16K (2 << 10)
46
#define CLK_SAMPLE_RATE_24K (3 << 10)
47
#define CLK_SAMPLE_RATE_32K (4 << 10)
48
#define CLK_SAMPLE_RATE_48K (5 << 10)
49
50
#define CLK_MCLK_INV (1 << 15)
51
#define CLK_SYSCLK_SRC_MCLK (0 << 14)
52
#define CLK_SYSCLK_SRC_FLL (1 << 14)
53
#define CLK_TOCLK_RATE_DIV2 (0 << 12)
54
#define CLK_TOCLK_RATE_DIV1 (1 << 12)
55
#define CLK_OPCLK_ENA (1 << 3)
56
#define CLK_CLK_SYS_ENA (1 << 2)
57
#define CLK_CLK_DSP_ENA (1 << 1)
58
#define CLK_TOCLK_ENA (1 << 0)
59
60
#define AUDIO_INTF0_DACL_DATINV (1 << 12)
61
#define AUDIO_INTF0_DACR_DATINV (1 << 11)
62
#define AUDIO_INTF0_DAC_BOOST(x) ((x & 3) << 9)
63
#define AUDIO_INTF0_LOOPBACK (1 << 8)
64
#define AUDIO_INTF0_ADC_SRCL (1 << 7)
65
#define AUDIO_INTF0_ADC_SRCR (1 << 6)
66
#define AUDIO_INTF0_DAC_SRCL (1 << 5)
67
#define AUDIO_INTF0_DAC_SRCR (1 << 4)
68
#define AUDIO_INTF0_ADC_COMP (1 << 3)
69
#define AUDIO_INTF0_ADC_COMPMODE (1 << 2)
70
#define AUDIO_INTF0_DAC_COMP (1 << 1)
71
#define AUDIO_INTF0_DAC_COMPMODE (1 << 0)
72
73
#define AUDIO_INTF2_OPCLK_DIV_1 (0 << 8)
74
#define AUDIO_INTF2_OPCLK_DIV_2 (1 << 8)
75
#define AUDIO_INTF2_OPCLK_DIV_3 (2 << 8)
76
#define AUDIO_INTF2_OPCLK_DIV_4 (3 << 8)
77
#define AUDIO_INTF2_OPCLK_DIV_5_5 (4 << 8)
78
#define AUDIO_INTF2_OPCLK_DIV_6 (5 << 8)
79
#define AUDIO_INTF2_OPCLK_DIV_8 (6 << 8)
80
#define AUDIO_INTF2_OPCLK_DIV_12 (7 << 8)
81
#define AUDIO_INTF2_OPCLK_DIV_16 (8 << 8)
82
#define AUDIO_INTF2_BCLK_DIV_1 (0 << 0)
83
#define AUDIO_INTF2_BCLK_DIV_1_5 (1 << 0)
84
#define AUDIO_INTF2_BCLK_DIV_2 (2 << 0)
85
#define AUDIO_INTF2_BCLK_DIV_3 (3 << 0)
86
#define AUDIO_INTF2_BCLK_DIV_4 (4 << 0)
87
#define AUDIO_INTF2_BCLK_DIV_5 (5 << 0)
88
#define AUDIO_INTF2_BCLK_DIV_5_5 (6 << 0)
89
#define AUDIO_INTF2_BCLK_DIV_6 (7 << 0)
90
#define AUDIO_INTF2_BCLK_DIV_8 (8 << 0)
91
#define AUDIO_INTF2_BCLK_DIV_10 (9 << 0)
92
#define AUDIO_INTF2_BCLK_DIV_11 (10 << 0)
93
#define AUDIO_INTF2_BCLK_DIV_12 (11 << 0)
94
#define AUDIO_INTF2_BCLK_DIV_16 (12 << 0)
95
#define AUDIO_INTF2_BCLK_DIV_20 (13 << 0)
96
#define AUDIO_INTF2_BCLK_DIV_22 (14 << 0)
97
#define AUDIO_INTF2_BCLK_DIV_24 (15 << 0)
98
#define AUDIO_INTF2_BCLK_DIV_25 (16 << 0)
99
#define AUDIO_INTF2_BCLK_DIV_30 (17 << 0)
100
#define AUDIO_INTF2_BCLK_DIV_32 (18 << 0)
101
#define AUDIO_INTF2_BCLK_DIV_44 (19 << 0)
102
#define AUDIO_INTF2_BCLK_DIV_48 (20 << 0)
103
104
#define AUDIO_INTF1_AIFDAC_TDM_NORM (0 << 13)
105
#define AUDIO_INTF1_AIFDAC_TDM_TDM (1 << 13)
106
#define AUDIO_INTF1_AIFDAC_TDM_CHAN0 (0 << 12)
107
#define AUDIO_INTF1_AIFDAC_TDM_CHAN1 (1 << 12)
108
#define AUDIO_INTF1_AIFADC_TDM_NORM (0 << 11)
109
#define AUDIO_INTF1_AIFADC_TDM_TDM (1 << 11)
110
#define AUDIO_INTF1_AIFADC_TDM_CHAN0 (0 << 10)
111
#define AUDIO_INTF1_AIFADC_TDM_CHAN1 (1 << 10)
112
#define AUDIO_INTF1_AIF_TRIS (1 << 8)
113
#define AUDIO_INTF1_BCLK_INV (1 << 7)
114
#define AUDIO_INTF1_BCLK_DIR_IN (0 << 6)
115
#define AUDIO_INTF1_BCLK_DIR_OUT (1 << 6)
116
#define AUDIO_INTF1_LRCLK_INV (1 << 6)
117
#define AUDIO_INTF1_WL_16BIT (0 << 2)
118
#define AUDIO_INTF1_WL_20BIT (1 << 2)
119
#define AUDIO_INTF1_WL_24BIT (2 << 2)
120
#define AUDIO_INTF1_WL_32BIT (3 << 2)
121
#define AUDIO_INTF1_FMT_RIGHT (0 << 0)
122
#define AUDIO_INTF1_FMT_LEFT (1 << 0)
123
#define AUDIO_INTF1_FMT_I2S (2 << 0)
124
#define AUDIO_INTF1_FMT_DSP (3 << 0)
125
126
#define AUDIO_INTF3_LRCLK_DIR_IN (0 << 11)
127
#define AUDIO_INTF3_LRCLK_DIR_OUT (1 << 11)
128
#define AUDIO_INTF3_LRCLK_RATE(x) ((x)&0x7FF)
129
130
#define DC_SERVO0_ENA_LNR (1 << 3)
131
#define DC_SERVO0_ENA_LNL (1 << 2)
132
#define DC_SERVO0_ENA_HPR (1 << 1)
133
#define DC_SERVO0_ENA_HPL (1 << 0)
134
135
#define DC_SERVO1_TRIG_1_LNR (1 << 15)
136
#define DC_SERVO1_TRIG_1_LNL (1 << 14)
137
#define DC_SERVO1_TRIG_1_HPR (1 << 13)
138
#define DC_SERVO1_TRIG_1_HPL (1 << 12)
139
#define DC_SERVO1_TRIG_n_LNR (1 << 11)
140
#define DC_SERVO1_TRIG_n_LNL (1 << 10)
141
#define DC_SERVO1_TRIG_n_HPR (1 << 9)
142
#define DC_SERVO1_TRIG_n_HPL (1 << 8)
143
#define DC_SERVO1_TRIG_START_LNR (1 << 7)
144
#define DC_SERVO1_TRIG_START_LNL (1 << 6)
145
#define DC_SERVO1_TRIG_START_HPR (1 << 5)
146
#define DC_SERVO1_TRIG_START_HPL (1 << 4)
147
#define DC_SERVO1_TRIG_DAC_WR_LNR (1 << 3)
148
#define DC_SERVO1_TRIG_DAC_WR_LNL (1 << 2)
149
#define DC_SERVO1_TRIG_DAC_WR_HPR (1 << 1)
150
#define DC_SERVO1_TRIG_DAC_WR_HPL (1 << 0)
151
152
#define FLL_FRACN_ENA_INT (0 << 2)
153
#define FLL_FRACN_ENA_FRAC (1 << 2)
154
#define FLL_OSC_ENA_DIS (0 << 1)
155
#define FLL_OSC_ENA_EN (1 << 1)
156
#define FLL_ENA_DIS (0 << 0)
157
#define FLL_ENA_EN (1 << 0)
158
159
#define FLL_OUTDIV(x) ((uint16_t)(((x - 1) & 0x3F) << 8))
160
#define FLL_CTRL_RATE_FVCO_1 (0 << 4)
161
#define FLL_CTRL_RATE_FVCO_2 (1 << 4)
162
#define FLL_CTRL_RATE_FVCO_3 (2 << 4)
163
#define FLL_CTRL_RATE_FVCO_4 (3 << 4)
164
#define FLL_CTRL_RATE_FVCO_5 (4 << 4)
165
#define FLL_CTRL_RATE_FVCO_6 (5 << 4)
166
#define FLL_CTRL_RATE_FVCO_7 (6 << 4)
167
#define FLL_CTRL_RATE_FVCO_8 (7 << 4)
168
#define FLL_FRATIO_DIV_1 (0 << 0)
169
#define FLL_FRATIO_DIV_2 (1 << 0)
170
#define FLL_FRATIO_DIV_4 (2 << 0)
171
#define FLL_FRATIO_DIV_8 (3 << 0)
172
#define FLL_FRATIO_DIV_16 (7 << 0)
173
174
#define FLL_K(x) ((uint16_t)(((x)&0xFFFF) << 0))
175
176
#define FLL_N(x) ((uint16_t)(((x)&0x3FF) << 5))
177
#define FLL_GAIN_1 (0 << 0)
178
#define FLL_GAIN_2 (1 << 0)
179
#define FLL_GAIN_4 (2 << 0)
180
#define FLL_GAIN_8 (3 << 0)
181
#define FLL_GAIN_16 (4 << 0)
182
#define FLL_GAIN_32 (5 << 0)
183
#define FLL_GAIN_64 (6 << 0)
184
#define FLL_GAIN_128 (7 << 0)
185
#define FLL_GAIN_256 (8 << 0)
186
187
#define FLL_CLK_REF_DIV_1 (0 << 3)
188
#define FLL_CLK_REF_DIV_2 (1 << 3)
189
#define FLL_CLK_REF_DIV_4 (2 << 3)
190
#define FLL_CLK_REF_DIV_8 (3 << 3)
191
#define FLL_CLK_REF_DIV_16 (4 << 3)
192
#define FLL_CLK_REF_SRC_MCLK (0 << 0)
193
#define FLL_CLK_REF_SRC_BCLK (1 << 0)
194
#define FLL_CLK_REF_SRC_LRCLK (2 << 0)
195
196
#define GPIO_CTL_GPIO_PU (1 << 5)
197
#define GPIO_CTL_GPIO_PD (1 << 4)
198
#define GPIO_CTL_GPIO_IN (0 << 0)
199
#define GPIO_CTL_GPIO_CLK_OUT (1 << 0)
200
#define GPIO_CTL_GPIO_LO (2 << 0)
201
#define GPIO_CTL_GPIO_HI (3 << 0)
202
#define GPIO_CTL_GPIO_IRQ (4 << 0)
203
#define GPIO_CTL_GPIO_FLL_LOCK (5 << 0)
204
#define GPIO_CTL_GPIO_MIC_DET (6 << 0)
205
#define GPIO_CTL_GPIO_MIC_SHORT (7 << 0)
206
#define GPIO_CTL_GPIO_DMIC_CLKO (8 << 0)
207
#define GPIO_CTL_GPIO_FLL_CLKO (9 << 0)
208
209
#define ANA_IN_MUTE (1 << 7)
210
#define ANA_IN_VOLUME(x) ((uint16_t)(((x)&0x1F) << 0))
211
212
#define ANA_HP0_HPL_RM_SHORT (1 << 7)
213
#define ANA_HP0_HPL_ENA_OUTP (1 << 6)
214
#define ANA_HP0_HPL_ENA_DLY (1 << 5)
215
#define ANA_HP0_HPL_ENA (1 << 4)
216
#define ANA_HP0_HPR_RM_SHORT (1 << 3)
217
#define ANA_HP0_HPR_ENA_OUTP (1 << 2)
218
#define ANA_HP0_HPR_ENA_DLY (1 << 1)
219
#define ANA_HP0_HPR_ENA (1 << 0)
220
221
#define ANA_OUT_MUTE (1 << 8)
222
#define ANA_OUT_VOL_UPDATE (1 << 7)
223
#define ANA_OUT_ZERO_CROSS (1 << 6)
224
#define ANA_OUT_VOLUME(x) ((uint16_t)((x & 0x3F) << 0))
225
226
#define DGTL_PULLS_MCLK_PU (1 << 7)
227
#define DGTL_PULLS_MCLK_PD (1 << 6)
228
#define DGTL_PULLS_DACDAT_PU (1 << 5)
229
#define DGTL_PULLS_DACDAT_PD (1 << 4)
230
#define DGTL_PULLS_LRCLK_PU (1 << 3)
231
#define DGTL_PULLS_LRCLK_PD (1 << 2)
232
#define DGTL_PULLS_BCLK_PU (1 << 1)
233
#define DGTL_PULLS_BCLK_PD (1 << 0)
234
235
#define FLL_NCO_FRC_NCO_EN (1 << 0)
236
#define FLL_NCO_FRC_NCO_DIS (0 << 0)
237
238
#endif
/* ----- #ifndef __WM8904_REG_H ----- */