wm8960 0.1.2

Register map and embedded-hal based driver for Wolfson WM8960 Audio Codec.
Documentation
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


# [doc = "WM8960 Registers"]
pub struct Wm8960 < 'a , I > { pub iface : & 'a mut I , pub addr : usize , } impl < 'a , I > Wm8960 < 'a , I > { # [doc = "Left Input Volume"]
# [inline (always)]
pub fn lin_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 0usize) as u8) } # [doc = "Right Input Volume"]
# [inline (always)]
pub fn rin_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 1usize) as u8) } # [doc = "Left Output Volume"]
# [inline (always)]
pub fn lout1_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 2usize) as u8) } # [doc = "Right Output Volume"]
# [inline (always)]
pub fn rout1_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 3usize) as u8) } # [doc = "Clocking"]
# [inline (always)]
pub fn clocking1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Clocking1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 4usize) as u8) } # [doc = "ADC & DAC Control"]
# [inline (always)]
pub fn adac_ctl1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacCtl1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 5usize) as u8) } # [doc = "ADC & DAC Control"]
# [inline (always)]
pub fn adac_ctl2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacCtl2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 6usize) as u8) } # [doc = "Audio Interface"]
# [inline (always)]
pub fn aud_intf1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AudIntf1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 7usize) as u8) } # [doc = "Clocking"]
# [inline (always)]
pub fn clocking2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Clocking2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 8usize) as u8) } # [doc = "Audio Interface"]
# [inline (always)]
pub fn aud_intf2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AudIntf2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 9usize) as u8) } # [doc = "Left DAC Volume"]
# [inline (always)]
pub fn ldac_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 10usize) as u8) } # [doc = "Right DAC Volume"]
# [inline (always)]
pub fn rdac_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 11usize) as u8) } # [doc = "Reset"]
# [inline (always)]
pub fn reset (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 15usize) as u8) } # [doc = "3D Control"]
# [inline (always)]
pub fn _3d_ctl (& mut self) -> crate :: common :: Reg < '_ , I , u8 , X3dCtl , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 16usize) as u8) } # [doc = "Automatic Level Control"]
# [inline (always)]
pub fn alc1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Alc1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 17usize) as u8) } # [doc = "Automatic Level Control"]
# [inline (always)]
pub fn alc2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Alc2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 18usize) as u8) } # [doc = "Automatic Level Control"]
# [inline (always)]
pub fn alc3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Alc3 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 19usize) as u8) } # [doc = "Noise Gate"]
# [inline (always)]
pub fn noise_gate (& mut self) -> crate :: common :: Reg < '_ , I , u8 , NoiseGate , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 20usize) as u8) } # [doc = "Left ADC Volume"]
# [inline (always)]
pub fn ladc_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 21usize) as u8) } # [doc = "Right ADC Volume"]
# [inline (always)]
pub fn radc_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 22usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AddtlCtl1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 23usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AddtlCtl2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 24usize) as u8) } # [doc = "Power Management"]
# [inline (always)]
pub fn pwr_mgmt1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , PwrMgmt1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 25usize) as u8) } # [doc = "Power Management"]
# [inline (always)]
pub fn pwr_mgmt2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , PwrMgmt2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 26usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AddtlCtl3 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 27usize) as u8) } # [doc = "Anti-pop"]
# [inline (always)]
pub fn anti_pop1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AntiPop1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 28usize) as u8) } # [doc = "Anti-pop"]
# [inline (always)]
pub fn anti_pop2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AntiPop2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 29usize) as u8) } # [doc = "ADCL Signal Path"]
# [inline (always)]
pub fn adcl_sigpath (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdcSigpath , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 32usize) as u8) } # [doc = "ADCR Signal Path"]
# [inline (always)]
pub fn adcr_sigpath (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdcSigpath , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 33usize) as u8) } # [doc = "Left Out Mix"]
# [inline (always)]
pub fn lout_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , LroutMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 34usize) as u8) } # [doc = "Right Out Mix"]
# [inline (always)]
pub fn rout_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , LroutMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 37usize) as u8) } # [doc = "Mono Out Mix"]
# [inline (always)]
pub fn mout_mix1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , MoutMix1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 38usize) as u8) } # [doc = "Mono Out Mix"]
# [inline (always)]
pub fn mout_mix2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , MoutMix2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 39usize) as u8) } # [doc = "Left Speaker Out Volume"]
# [inline (always)]
pub fn lspkr_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 40usize) as u8) } # [doc = "Right Speaker Out Volume"]
# [inline (always)]
pub fn rspkr_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 41usize) as u8) } # [doc = "Mono Out Volume"]
# [inline (always)]
pub fn mout_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , MoutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 42usize) as u8) } # [doc = "Left Input Boost Mixer"]
# [inline (always)]
pub fn lin_boost_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBoostMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 43usize) as u8) } # [doc = "Right Input Boost Mixer"]
# [inline (always)]
pub fn rin_boost_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBoostMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 44usize) as u8) } # [doc = "Left Bypass"]
# [inline (always)]
pub fn lbypass (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBypass , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 45usize) as u8) } # [doc = "Right Bypass"]
# [inline (always)]
pub fn rbypass (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBypass , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 46usize) as u8) } # [doc = "Power Management"]
# [inline (always)]
pub fn pwr_mgmt3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , PwrMgmt3 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 47usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl4 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 48usize) as u8) } # [doc = "Class D Control"]
# [inline (always)]
pub fn classd_ctl1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 49usize) as u8) } # [doc = "Class D Control"]
# [inline (always)]
pub fn classd_ctl3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 51usize) as u8) } # [doc = "PLL K"]
# [inline (always)]
pub fn pll_k3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 51usize) as u8) } # [doc = "PLL N"]
# [inline (always)]
pub fn pll_n (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 52usize) as u8) } # [doc = "PLL K"]
# [inline (always)]
pub fn pll_k1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 53usize) as u8) } # [doc = "PLL K"]
# [inline (always)]
pub fn pll_k2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 54usize) as u8) } } # [doc = "ADC & DAC Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdacCtl1 (pub u16) ; impl AdacCtl1 { # [doc = "ADC High Pass Filter Disable"]
# [inline (always)]
pub const fn adchpd (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [doc = "ADC High Pass Filter Disable"]
# [inline (always)]
pub fn set_adchpd (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [doc = "De-emphasis Control"]
# [inline (always)]
pub const fn deemph (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x03 ; val as u8 } # [doc = "De-emphasis Control"]
# [inline (always)]
pub fn set_deemph (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 1usize)) | (((val as u16) & 0x03) << 1usize) ; } # [doc = "DAC Soft Mute"]
# [inline (always)]
pub const fn dacmu (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [doc = "DAC Soft Mute"]
# [inline (always)]
pub fn set_dacmu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [doc = "ADC Polarity Control"]
# [inline (always)]
pub const fn adcpol (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x03 ; val as u8 } # [doc = "ADC Polarity Control"]
# [inline (always)]
pub fn set_adcpol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 5usize)) | (((val as u16) & 0x03) << 5usize) ; } # [doc = "DAC 6dB attenuate enable, 0b0 = 0dB, 0b1 = -6dB"]
# [inline (always)]
pub const fn dacdiv2 (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "DAC 6dB attenuate enable, 0b0 = 0dB, 0b1 = -6dB"]
# [inline (always)]
pub fn set_dacdiv2 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for AdacCtl1 { # [inline (always)]
fn default () -> AdacCtl1 { AdacCtl1 (0) } } impl From < u16 > for AdacCtl1 { fn from (val : u16) -> AdacCtl1 { AdacCtl1 (val) } } impl From < AdacCtl1 > for u16 { fn from (val : AdacCtl1) -> u16 { val . 0 } } # [doc = "ADC & DAC Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdacCtl2 (pub u16) ; impl AdacCtl2 { # [doc = "DAC Filter Characteristics"]
# [inline (always)]
pub const fn dacslope (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [doc = "DAC Filter Characteristics"]
# [inline (always)]
pub fn set_dacslope (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [doc = "DAC Soft Mute Ramp Rate"]
# [inline (always)]
pub const fn dacmr (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [doc = "DAC Soft Mute Ramp Rate"]
# [inline (always)]
pub fn set_dacmr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [doc = "DAC Soft Mute Mode"]
# [inline (always)]
pub const fn dacsmm (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [doc = "DAC Soft Mute Mode"]
# [inline (always)]
pub fn set_dacsmm (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [doc = "DAC Polarity Control"]
# [inline (always)]
pub const fn dacpol (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x03 ; val as u8 } # [doc = "DAC Polarity Control"]
# [inline (always)]
pub fn set_dacpol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 5usize)) | (((val as u16) & 0x03) << 5usize) ; } } impl Default for AdacCtl2 { # [inline (always)]
fn default () -> AdacCtl2 { AdacCtl2 (0) } } impl From < u16 > for AdacCtl2 { fn from (val : u16) -> AdacCtl2 { AdacCtl2 (val) } } impl From < AdacCtl2 > for u16 { fn from (val : AdacCtl2) -> u16 { val . 0 } } # [doc = "ADC/DAC Volume"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdacVol (pub u16) ; impl AdacVol { # [doc = "ADC/DAC Volume Control"]
# [inline (always)]
pub const fn vol (& self) -> u8 { let val = (self . 0 >> 0usize) & 0xff ; val as u8 } # [doc = "ADC/DAC Volume Control"]
# [inline (always)]
pub fn set_vol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0xff << 0usize)) | (((val as u16) & 0xff) << 0usize) ; } # [doc = "ADC/DAC Volume Update, 0b1 = Left and Right updated"]
# [inline (always)]
pub const fn vu (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "ADC/DAC Volume Update, 0b1 = Left and Right updated"]
# [inline (always)]
pub fn set_vu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AdacVol { # [inline (always)]
fn default () -> AdacVol { AdacVol (0) } } impl From < u16 > for AdacVol { fn from (val : u16) -> AdacVol { AdacVol (val) } } impl From < AdacVol > for u16 { fn from (val : AdacVol) -> u16 { val . 0 } } # [doc = "ADC Signal Path"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdcSigpath (pub u16) ; impl AdcSigpath { # [inline (always)]
pub const fn mic2b (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mic2b (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn micboost (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_micboost (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 4usize)) | (((val as u16) & 0x03) << 4usize) ; } # [inline (always)]
pub const fn mp2 (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mp2 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [inline (always)]
pub const fn mp3 (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mp3 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [inline (always)]
pub const fn mn1 (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mn1 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AdcSigpath { # [inline (always)]
fn default () -> AdcSigpath { AdcSigpath (0) } } impl From < u16 > for AdcSigpath { fn from (val : u16) -> AdcSigpath { AdcSigpath (val) } } impl From < AdcSigpath > for u16 { fn from (val : AdcSigpath) -> u16 { val . 0 } } # [doc = "Additional Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AddtlCtl1 (pub u16) ; impl AddtlCtl1 { # [inline (always)]
pub const fn toen (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_toen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn toclksel (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_toclksel (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [inline (always)]
pub const fn datsel (& self) -> u8 { let val = (self . 0 >> 2usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_datsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 2usize)) | (((val as u16) & 0x03) << 2usize) ; } # [inline (always)]
pub const fn dmonomix (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_dmonomix (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn vsel (& self) -> u8 { let val = (self . 0 >> 6usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_vsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 6usize)) | (((val as u16) & 0x03) << 6usize) ; } # [inline (always)]
pub const fn tsden (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_tsden (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AddtlCtl1 { # [inline (always)]
fn default () -> AddtlCtl1 { AddtlCtl1 (0) } } impl From < u16 > for AddtlCtl1 { fn from (val : u16) -> AddtlCtl1 { AddtlCtl1 (val) } } impl From < AddtlCtl1 > for u16 { fn from (val : AddtlCtl1) -> u16 { val . 0 } } # [doc = "Additional Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AddtlCtl2 (pub u16) ; impl AddtlCtl2 { # [inline (always)]
pub const fn lrcm (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_lrcm (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [inline (always)]
pub const fn tris (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_tris (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn hpswpol (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_hpswpol (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [inline (always)]
pub const fn hpswen (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_hpswen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for AddtlCtl2 { # [inline (always)]
fn default () -> AddtlCtl2 { AddtlCtl2 (0) } } impl From < u16 > for AddtlCtl2 { fn from (val : u16) -> AddtlCtl2 { AddtlCtl2 (val) } } impl From < AddtlCtl2 > for u16 { fn from (val : AddtlCtl2) -> u16 { val . 0 } } # [doc = "Additional Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AddtlCtl3 (pub u16) ; impl AddtlCtl3 { # [inline (always)]
pub const fn adc_alc_sr (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x07 ; val as u8 } # [inline (always)]
pub fn set_adc_alc_sr (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 0usize)) | (((val as u16) & 0x07) << 0usize) ; } # [inline (always)]
pub const fn out3cap (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_out3cap (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn vroi (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_vroi (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for AddtlCtl3 { # [inline (always)]
fn default () -> AddtlCtl3 { AddtlCtl3 (0) } } impl From < u16 > for AddtlCtl3 { fn from (val : u16) -> AddtlCtl3 { AddtlCtl3 (val) } } impl From < AddtlCtl3 > for u16 { fn from (val : AddtlCtl3) -> u16 { val . 0 } } # [doc = "Automatic Level Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Alc1 (pub u16) ; impl Alc1 { # [inline (always)]
pub const fn alcl (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_alcl (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 0usize)) | (((val as u16) & 0x0f) << 0usize) ; } # [inline (always)]
pub const fn maxgain (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [inline (always)]
pub fn set_maxgain (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } # [inline (always)]
pub const fn alcsel (& self) -> u8 { let val = (self . 0 >> 7usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_alcsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 7usize)) | (((val as u16) & 0x03) << 7usize) ; } } impl Default for Alc1 { # [inline (always)]
fn default () -> Alc1 { Alc1 (0) } } impl From < u16 > for Alc1 { fn from (val : u16) -> Alc1 { Alc1 (val) } } impl From < Alc1 > for u16 { fn from (val : Alc1) -> u16 { val . 0 } } # [doc = "Automatic Level Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Alc2 (pub u16) ; impl Alc2 { # [inline (always)]
pub const fn hld (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_hld (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 0usize)) | (((val as u16) & 0x0f) << 0usize) ; } # [inline (always)]
pub const fn mingain (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [inline (always)]
pub fn set_mingain (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } } impl Default for Alc2 { # [inline (always)]
fn default () -> Alc2 { Alc2 (0) } } impl From < u16 > for Alc2 { fn from (val : u16) -> Alc2 { Alc2 (val) } } impl From < Alc2 > for u16 { fn from (val : Alc2) -> u16 { val . 0 } } # [doc = "Automatic Level Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Alc3 (pub u16) ; impl Alc3 { # [inline (always)]
pub const fn atk (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_atk (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 0usize)) | (((val as u16) & 0x0f) << 0usize) ; } # [inline (always)]
pub const fn dcy (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_dcy (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 4usize)) | (((val as u16) & 0x0f) << 4usize) ; } # [inline (always)]
pub const fn alcmode (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_alcmode (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for Alc3 { # [inline (always)]
fn default () -> Alc3 { Alc3 (0) } } impl From < u16 > for Alc3 { fn from (val : u16) -> Alc3 { Alc3 (val) } } impl From < Alc3 > for u16 { fn from (val : Alc3) -> u16 { val . 0 } } # [doc = "Anti-Pop"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AntiPop1 (pub u16) ; impl AntiPop1 { # [inline (always)]
pub const fn hpstby (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_hpstby (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn soft_st (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_soft_st (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [inline (always)]
pub const fn bufioen (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_bufioen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn bufdcopen (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_bufdcopen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn pobctrl (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_pobctrl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for AntiPop1 { # [inline (always)]
fn default () -> AntiPop1 { AntiPop1 (0) } } impl From < u16 > for AntiPop1 { fn from (val : u16) -> AntiPop1 { AntiPop1 (val) } } impl From < AntiPop1 > for u16 { fn from (val : AntiPop1) -> u16 { val . 0 } } # [doc = "Anti-Pop"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AntiPop2 (pub u16) ; impl AntiPop2 { # [inline (always)]
pub const fn dres (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_dres (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 4usize)) | (((val as u16) & 0x03) << 4usize) ; } # [inline (always)]
pub const fn disop (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_disop (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for AntiPop2 { # [inline (always)]
fn default () -> AntiPop2 { AntiPop2 (0) } } impl From < u16 > for AntiPop2 { fn from (val : u16) -> AntiPop2 { AntiPop2 (val) } } impl From < AntiPop2 > for u16 { fn from (val : AntiPop2) -> u16 { val . 0 } } # [doc = "Audio Interface"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AudIntf1 (pub u16) ; impl AudIntf1 { # [doc = "Audio Format"]
# [inline (always)]
pub const fn format (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x03 ; val as u8 } # [doc = "Audio Format"]
# [inline (always)]
pub fn set_format (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 0usize)) | (((val as u16) & 0x03) << 0usize) ; } # [doc = "Audio Word Length"]
# [inline (always)]
pub const fn wl (& self) -> u8 { let val = (self . 0 >> 2usize) & 0x03 ; val as u8 } # [doc = "Audio Word Length"]
# [inline (always)]
pub fn set_wl (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 2usize)) | (((val as u16) & 0x03) << 2usize) ; } # [doc = "LR Polarity"]
# [inline (always)]
pub const fn lrp (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [doc = "LR Polarity"]
# [inline (always)]
pub fn set_lrp (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [doc = "Left/Right DAC Channel Swap"]
# [inline (always)]
pub const fn dlrswap (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [doc = "Left/Right DAC Channel Swap"]
# [inline (always)]
pub fn set_dlrswap (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [doc = "Master/Slave Mode"]
# [inline (always)]
pub const fn ms (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "Master/Slave Mode"]
# [inline (always)]
pub fn set_ms (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [doc = "BCLK Invert Bit"]
# [inline (always)]
pub const fn bclkinv (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "BCLK Invert Bit"]
# [inline (always)]
pub fn set_bclkinv (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "Left/Right ADC Channel Swap"]
# [inline (always)]
pub const fn alrswap (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "Left/Right ADC Channel Swap"]
# [inline (always)]
pub fn set_alrswap (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AudIntf1 { # [inline (always)]
fn default () -> AudIntf1 { AudIntf1 (0) } } impl From < u16 > for AudIntf1 { fn from (val : u16) -> AudIntf1 { AudIntf1 (val) } } impl From < AudIntf1 > for u16 { fn from (val : AudIntf1) -> u16 { val . 0 } } # [doc = "Audio Interface"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AudIntf2 (pub u16) ; impl AudIntf2 { # [inline (always)]
pub const fn loopback (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_loopback (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn adccomp (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_adccomp (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 1usize)) | (((val as u16) & 0x03) << 1usize) ; } # [inline (always)]
pub const fn daccomp (& self) -> u8 { let val = (self . 0 >> 3usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_daccomp (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 3usize)) | (((val as u16) & 0x03) << 3usize) ; } # [inline (always)]
pub const fn wl8 (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_wl8 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn alrcgpio (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_alrcgpio (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } } impl Default for AudIntf2 { # [inline (always)]
fn default () -> AudIntf2 { AudIntf2 (0) } } impl From < u16 > for AudIntf2 { fn from (val : u16) -> AudIntf2 { AudIntf2 (val) } } impl From < AudIntf2 > for u16 { fn from (val : AudIntf2) -> u16 { val . 0 } } # [doc = "Clocking Control 1"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Clocking1 (pub u16) ; impl Clocking1 { # [doc = "SYSCLK Selection 0b0 = MCLK, 0b1 = PLL"]
# [inline (always)]
pub const fn clksel (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [doc = "SYSCLK Selection 0b0 = MCLK, 0b1 = PLL"]
# [inline (always)]
pub fn set_clksel (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [doc = "SYSCLK pre-divider, 0b00 = 1, 0b10 = 2"]
# [inline (always)]
pub const fn sysclkdiv (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x03 ; val as u8 } # [doc = "SYSCLK pre-divider, 0b00 = 1, 0b10 = 2"]
# [inline (always)]
pub fn set_sysclkdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 1usize)) | (((val as u16) & 0x03) << 1usize) ; } # [doc = "DAC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub const fn dacdiv (& self) -> u8 { let val = (self . 0 >> 3usize) & 0x07 ; val as u8 } # [doc = "DAC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub fn set_dacdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 3usize)) | (((val as u16) & 0x07) << 3usize) ; } # [doc = "ADC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub const fn adcdiv (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x07 ; val as u8 } # [doc = "ADC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub fn set_adcdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 5usize)) | (((val as u16) & 0x07) << 5usize) ; } } impl Default for Clocking1 { # [inline (always)]
fn default () -> Clocking1 { Clocking1 (0) } } impl From < u16 > for Clocking1 { fn from (val : u16) -> Clocking1 { Clocking1 (val) } } impl From < Clocking1 > for u16 { fn from (val : Clocking1) -> u16 { val . 0 } } # [doc = "Clocking"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Clocking2 (pub u16) ; impl Clocking2 { # [doc = "BCLK Divider"]
# [inline (always)]
pub const fn bclkdiv (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x07 ; val as u8 } # [doc = "BCLK Divider"]
# [inline (always)]
pub fn set_bclkdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 0usize)) | (((val as u16) & 0x07) << 0usize) ; } # [doc = "Class D Switching Clock Divider"]
# [inline (always)]
pub const fn dclkdiv (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x07 ; val as u8 } # [doc = "Class D Switching Clock Divider"]
# [inline (always)]
pub fn set_dclkdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 5usize)) | (((val as u16) & 0x07) << 5usize) ; } } impl Default for Clocking2 { # [inline (always)]
fn default () -> Clocking2 { Clocking2 (0) } } impl From < u16 > for Clocking2 { fn from (val : u16) -> Clocking2 { Clocking2 (val) } } impl From < Clocking2 > for u16 { fn from (val : Clocking2) -> u16 { val . 0 } } # [doc = "Input Boost Mixer"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct InBoostMix (pub u16) ; impl InBoostMix { # [doc = "L/R Input 2 Boost Mixer Gain"]
# [inline (always)]
pub const fn in2boost (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x07 ; val as u8 } # [doc = "L/R Input 2 Boost Mixer Gain"]
# [inline (always)]
pub fn set_in2boost (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 1usize)) | (((val as u16) & 0x07) << 1usize) ; } # [doc = "L/R Input 3 Boost Mixer Gain"]
# [inline (always)]
pub const fn in3boost (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [doc = "L/R Input 3 Boost Mixer Gain"]
# [inline (always)]
pub fn set_in3boost (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } } impl Default for InBoostMix { # [inline (always)]
fn default () -> InBoostMix { InBoostMix (0) } } impl From < u16 > for InBoostMix { fn from (val : u16) -> InBoostMix { InBoostMix (val) } } impl From < InBoostMix > for u16 { fn from (val : InBoostMix) -> u16 { val . 0 } } # [doc = "L/R Input Boost Bypass"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct InBypass (pub u16) ; impl InBypass { # [doc = "Boost to Output Volume"]
# [inline (always)]
pub const fn b2ovol (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [doc = "Boost to Output Volume"]
# [inline (always)]
pub fn set_b2ovol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } # [doc = "Boost to Output Bypass"]
# [inline (always)]
pub const fn b2o (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Boost to Output Bypass"]
# [inline (always)]
pub fn set_b2o (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for InBypass { # [inline (always)]
fn default () -> InBypass { InBypass (0) } } impl From < u16 > for InBypass { fn from (val : u16) -> InBypass { InBypass (val) } } impl From < InBypass > for u16 { fn from (val : InBypass) -> u16 { val . 0 } } # [doc = "Input Volume Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct InVol (pub u16) ; impl InVol { # [doc = "Input Volume Control, 0b111111 = +30dB, 0b000000 = -17.25 dB, 0.75dB per step"]
# [inline (always)]
pub const fn vol (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x3f ; val as u8 } # [doc = "Input Volume Control, 0b111111 = +30dB, 0b000000 = -17.25 dB, 0.75dB per step"]
# [inline (always)]
pub fn set_vol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x3f << 0usize)) | (((val as u16) & 0x3f) << 0usize) ; } # [doc = "Input Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub const fn zc (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "Input Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub fn set_zc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [doc = "Input Analogue Mute"]
# [inline (always)]
pub const fn mute (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Input Analogue Mute"]
# [inline (always)]
pub fn set_mute (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "Input Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub const fn vu (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "Input Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub fn set_vu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for InVol { # [inline (always)]
fn default () -> InVol { InVol (0) } } impl From < u16 > for InVol { fn from (val : u16) -> InVol { InVol (val) } } impl From < InVol > for u16 { fn from (val : InVol) -> u16 { val . 0 } } # [doc = "Left/Right Output Mix"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct LroutMix (pub u16) ; impl LroutMix { # [doc = "Input 3 Output Mixer Volume"]
# [inline (always)]
pub const fn i2ovol (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [doc = "Input 3 Output Mixer Volume"]
# [inline (always)]
pub fn set_i2ovol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } # [doc = "Input 3 to Output"]
# [inline (always)]
pub const fn i2o (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Input 3 to Output"]
# [inline (always)]
pub fn set_i2o (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "DAC to Output"]
# [inline (always)]
pub const fn d2o (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "DAC to Output"]
# [inline (always)]
pub fn set_d2o (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for LroutMix { # [inline (always)]
fn default () -> LroutMix { LroutMix (0) } } impl From < u16 > for LroutMix { fn from (val : u16) -> LroutMix { LroutMix (val) } } impl From < LroutMix > for u16 { fn from (val : LroutMix) -> u16 { val . 0 } } # [doc = "Mono Output Mix"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct MoutMix1 (pub u16) ; impl MoutMix1 { # [doc = "Left Output to Mono Output"]
# [inline (always)]
pub const fn l2mo (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Left Output to Mono Output"]
# [inline (always)]
pub fn set_l2mo (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for MoutMix1 { # [inline (always)]
fn default () -> MoutMix1 { MoutMix1 (0) } } impl From < u16 > for MoutMix1 { fn from (val : u16) -> MoutMix1 { MoutMix1 (val) } } impl From < MoutMix1 > for u16 { fn from (val : MoutMix1) -> u16 { val . 0 } } # [doc = "Mono Output Mix"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct MoutMix2 (pub u16) ; impl MoutMix2 { # [doc = "Right Output to Mono Output"]
# [inline (always)]
pub const fn r2mo (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Right Output to Mono Output"]
# [inline (always)]
pub fn set_r2mo (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for MoutMix2 { # [inline (always)]
fn default () -> MoutMix2 { MoutMix2 (0) } } impl From < u16 > for MoutMix2 { fn from (val : u16) -> MoutMix2 { MoutMix2 (val) } } impl From < MoutMix2 > for u16 { fn from (val : MoutMix2) -> u16 { val . 0 } } # [doc = "Mono Output Volume"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct MoutVol (pub u16) ; impl MoutVol { # [doc = "-6dB Mono Output Mixer Volume Control"]
# [inline (always)]
pub const fn moutvol (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "-6dB Mono Output Mixer Volume Control"]
# [inline (always)]
pub fn set_moutvol (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for MoutVol { # [inline (always)]
fn default () -> MoutVol { MoutVol (0) } } impl From < u16 > for MoutVol { fn from (val : u16) -> MoutVol { MoutVol (val) } } impl From < MoutVol > for u16 { fn from (val : MoutVol) -> u16 { val . 0 } } # [doc = "Noise Gate"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct NoiseGate (pub u16) ; impl NoiseGate { # [inline (always)]
pub const fn ngat (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_ngat (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn ngth (& self) -> u8 { let val = (self . 0 >> 3usize) & 0x1f ; val as u8 } # [inline (always)]
pub fn set_ngth (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x1f << 3usize)) | (((val as u16) & 0x1f) << 3usize) ; } } impl Default for NoiseGate { # [inline (always)]
fn default () -> NoiseGate { NoiseGate (0) } } impl From < u16 > for NoiseGate { fn from (val : u16) -> NoiseGate { NoiseGate (val) } } impl From < NoiseGate > for u16 { fn from (val : NoiseGate) -> u16 { val . 0 } } # [doc = "Output Volume Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct OutVol (pub u16) ; impl OutVol { # [doc = "Output Volume Control, 0b1111111 = +6dB, 0b110000 = -73dB, 0b101111 to 0b0000000 = mute, 1dB per step"]
# [inline (always)]
pub const fn vol (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x7f ; val as u8 } # [doc = "Output Volume Control, 0b1111111 = +6dB, 0b110000 = -73dB, 0b101111 to 0b0000000 = mute, 1dB per step"]
# [inline (always)]
pub fn set_vol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x7f << 0usize)) | (((val as u16) & 0x7f) << 0usize) ; } # [doc = "Output Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub const fn zc (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Output Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub fn set_zc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "Output Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub const fn vu (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "Output Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub fn set_vu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for OutVol { # [inline (always)]
fn default () -> OutVol { OutVol (0) } } impl From < u16 > for OutVol { fn from (val : u16) -> OutVol { OutVol (val) } } impl From < OutVol > for u16 { fn from (val : OutVol) -> u16 { val . 0 } } # [doc = "Power Management"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct PwrMgmt1 (pub u16) ; impl PwrMgmt1 { # [inline (always)]
pub const fn digenb (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_digenb (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn micb (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_micb (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [inline (always)]
pub const fn adcr (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_adcr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [inline (always)]
pub const fn adcl (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_adcl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn ainr (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_ainr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn ainl (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_ainl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [inline (always)]
pub const fn vref (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_vref (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [inline (always)]
pub const fn vmidsel (& self) -> u8 { let val = (self . 0 >> 7usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_vmidsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 7usize)) | (((val as u16) & 0x03) << 7usize) ; } } impl Default for PwrMgmt1 { # [inline (always)]
fn default () -> PwrMgmt1 { PwrMgmt1 (0) } } impl From < u16 > for PwrMgmt1 { fn from (val : u16) -> PwrMgmt1 { PwrMgmt1 (val) } } impl From < PwrMgmt1 > for u16 { fn from (val : PwrMgmt1) -> u16 { val . 0 } } # [doc = "Power Management"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct PwrMgmt2 (pub u16) ; impl PwrMgmt2 { # [inline (always)]
pub const fn pll_en (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_pll_en (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn out3 (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_out3 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [inline (always)]
pub const fn spkr (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_spkr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn spkl (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_spkl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn rout1 (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_rout1 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [inline (always)]
pub const fn lout1 (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_lout1 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [inline (always)]
pub const fn dacr (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_dacr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [inline (always)]
pub const fn dacl (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_dacl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for PwrMgmt2 { # [inline (always)]
fn default () -> PwrMgmt2 { PwrMgmt2 (0) } } impl From < u16 > for PwrMgmt2 { fn from (val : u16) -> PwrMgmt2 { PwrMgmt2 (val) } } impl From < PwrMgmt2 > for u16 { fn from (val : PwrMgmt2) -> u16 { val . 0 } } # [doc = "Power Management"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct PwrMgmt3 (pub u16) ; impl PwrMgmt3 { # [doc = "Right Output Mixer Enable"]
# [inline (always)]
pub const fn romix (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [doc = "Right Output Mixer Enable"]
# [inline (always)]
pub fn set_romix (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [doc = "Left Output Mixer Enable"]
# [inline (always)]
pub const fn lomix (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [doc = "Left Output Mixer Enable"]
# [inline (always)]
pub fn set_lomix (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [doc = "Right Mic Input Enable"]
# [inline (always)]
pub const fn rmic (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [doc = "Right Mic Input Enable"]
# [inline (always)]
pub fn set_rmic (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [doc = "Left Mic Input Enable"]
# [inline (always)]
pub const fn lmic (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [doc = "Left Mic Input Enable"]
# [inline (always)]
pub fn set_lmic (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } } impl Default for PwrMgmt3 { # [inline (always)]
fn default () -> PwrMgmt3 { PwrMgmt3 (0) } } impl From < u16 > for PwrMgmt3 { fn from (val : u16) -> PwrMgmt3 { PwrMgmt3 (val) } } impl From < PwrMgmt3 > for u16 { fn from (val : PwrMgmt3) -> u16 { val . 0 } } # [doc = "3D Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct X3dCtl (pub u16) ; impl X3dCtl { # [doc = "3D Stereo Enhancement Enable"]
# [inline (always)]
pub const fn x3den (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [doc = "3D Stereo Enhancement Enable"]
# [inline (always)]
pub fn set_x3den (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [doc = "3D Stereo Depth"]
# [inline (always)]
pub const fn x3ddepth (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x0f ; val as u8 } # [doc = "3D Stereo Depth"]
# [inline (always)]
pub fn set_x3ddepth (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 1usize)) | (((val as u16) & 0x0f) << 1usize) ; } # [doc = "Lower Cut-Off Frequency"]
# [inline (always)]
pub const fn x3dlc (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [doc = "Lower Cut-Off Frequency"]
# [inline (always)]
pub fn set_x3dlc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [doc = "Upper Cut-Off Frequency"]
# [inline (always)]
pub const fn x3duc (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "Upper Cut-Off Frequency"]
# [inline (always)]
pub fn set_x3duc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for X3dCtl { # [inline (always)]
fn default () -> X3dCtl { X3dCtl (0) } } impl From < u16 > for X3dCtl { fn from (val : u16) -> X3dCtl { X3dCtl (val) } } impl From < X3dCtl > for u16 { fn from (val : X3dCtl) -> u16 { val . 0 } }