eos_s3/aud/
pdm_core_config.rs

1#[doc = "Register `PDM_CORE_CONFIG` reader"]
2pub struct R(crate::R<PDM_CORE_CONFIG_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<PDM_CORE_CONFIG_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<PDM_CORE_CONFIG_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<PDM_CORE_CONFIG_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `PDM_CORE_CONFIG` writer"]
17pub struct W(crate::W<PDM_CORE_CONFIG_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<PDM_CORE_CONFIG_SPEC>;
20    #[inline(always)]
21    fn deref(&self) -> &Self::Target {
22        &self.0
23    }
24}
25impl core::ops::DerefMut for W {
26    #[inline(always)]
27    fn deref_mut(&mut self) -> &mut Self::Target {
28        &mut self.0
29    }
30}
31impl From<crate::W<PDM_CORE_CONFIG_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<PDM_CORE_CONFIG_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Field `PDM_CORE_CONFIG` reader - Set to enable PDM core"]
38pub struct PDM_CORE_CONFIG_R(crate::FieldReader<bool, bool>);
39impl PDM_CORE_CONFIG_R {
40    #[inline(always)]
41    pub(crate) fn new(bits: bool) -> Self {
42        PDM_CORE_CONFIG_R(crate::FieldReader::new(bits))
43    }
44}
45impl core::ops::Deref for PDM_CORE_CONFIG_R {
46    type Target = crate::FieldReader<bool, bool>;
47    #[inline(always)]
48    fn deref(&self) -> &Self::Target {
49        &self.0
50    }
51}
52#[doc = "Field `PDM_CORE_CONFIG` writer - Set to enable PDM core"]
53pub struct PDM_CORE_CONFIG_W<'a> {
54    w: &'a mut W,
55}
56impl<'a> PDM_CORE_CONFIG_W<'a> {
57    #[doc = r"Sets the field bit"]
58    #[inline(always)]
59    pub fn set_bit(self) -> &'a mut W {
60        self.bit(true)
61    }
62    #[doc = r"Clears the field bit"]
63    #[inline(always)]
64    pub fn clear_bit(self) -> &'a mut W {
65        self.bit(false)
66    }
67    #[doc = r"Writes raw bits to the field"]
68    #[inline(always)]
69    pub fn bit(self, value: bool) -> &'a mut W {
70        self.w.bits = (self.w.bits & !0x01) | (value as u32 & 0x01);
71        self.w
72    }
73}
74#[doc = "Field `SOFT_MUTE` reader - Set to enable PDM Soft mute"]
75pub struct SOFT_MUTE_R(crate::FieldReader<bool, bool>);
76impl SOFT_MUTE_R {
77    #[inline(always)]
78    pub(crate) fn new(bits: bool) -> Self {
79        SOFT_MUTE_R(crate::FieldReader::new(bits))
80    }
81}
82impl core::ops::Deref for SOFT_MUTE_R {
83    type Target = crate::FieldReader<bool, bool>;
84    #[inline(always)]
85    fn deref(&self) -> &Self::Target {
86        &self.0
87    }
88}
89#[doc = "Field `SOFT_MUTE` writer - Set to enable PDM Soft mute"]
90pub struct SOFT_MUTE_W<'a> {
91    w: &'a mut W,
92}
93impl<'a> SOFT_MUTE_W<'a> {
94    #[doc = r"Sets the field bit"]
95    #[inline(always)]
96    pub fn set_bit(self) -> &'a mut W {
97        self.bit(true)
98    }
99    #[doc = r"Clears the field bit"]
100    #[inline(always)]
101    pub fn clear_bit(self) -> &'a mut W {
102        self.bit(false)
103    }
104    #[doc = r"Writes raw bits to the field"]
105    #[inline(always)]
106    pub fn bit(self, value: bool) -> &'a mut W {
107        self.w.bits =
108            (self.w.bits & !(0x01 << 1)) | ((value as u32 & 0x01) << 1);
109        self.w
110    }
111}
112#[doc = "Select which divider to use in sampler\n\nValue on reset: 0"]
113#[derive(Clone, Copy, Debug, PartialEq)]
114pub enum DIV_MODE_A {
115    #[doc = "0: Use PDM_LEFT in sampler"]
116    LEFT = 0,
117    #[doc = "1: Use PDM_RIGHT in sampler"]
118    RIGHT = 1,
119}
120impl From<DIV_MODE_A> for bool {
121    #[inline(always)]
122    fn from(variant: DIV_MODE_A) -> Self {
123        variant as u8 != 0
124    }
125}
126#[doc = "Field `DIV_MODE` reader - Select which divider to use in sampler"]
127pub struct DIV_MODE_R(crate::FieldReader<bool, DIV_MODE_A>);
128impl DIV_MODE_R {
129    #[inline(always)]
130    pub(crate) fn new(bits: bool) -> Self {
131        DIV_MODE_R(crate::FieldReader::new(bits))
132    }
133    #[doc = r"Get enumerated values variant"]
134    #[inline(always)]
135    pub fn variant(&self) -> DIV_MODE_A {
136        match self.bits {
137            false => DIV_MODE_A::LEFT,
138            true => DIV_MODE_A::RIGHT,
139        }
140    }
141    #[doc = "Checks if the value of the field is `LEFT`"]
142    #[inline(always)]
143    pub fn is_left(&self) -> bool {
144        **self == DIV_MODE_A::LEFT
145    }
146    #[doc = "Checks if the value of the field is `RIGHT`"]
147    #[inline(always)]
148    pub fn is_right(&self) -> bool {
149        **self == DIV_MODE_A::RIGHT
150    }
151}
152impl core::ops::Deref for DIV_MODE_R {
153    type Target = crate::FieldReader<bool, DIV_MODE_A>;
154    #[inline(always)]
155    fn deref(&self) -> &Self::Target {
156        &self.0
157    }
158}
159#[doc = "Field `DIV_MODE` writer - Select which divider to use in sampler"]
160pub struct DIV_MODE_W<'a> {
161    w: &'a mut W,
162}
163impl<'a> DIV_MODE_W<'a> {
164    #[doc = r"Writes `variant` to the field"]
165    #[inline(always)]
166    pub fn variant(self, variant: DIV_MODE_A) -> &'a mut W {
167        self.bit(variant.into())
168    }
169    #[doc = "Use PDM_LEFT in sampler"]
170    #[inline(always)]
171    pub fn left(self) -> &'a mut W {
172        self.variant(DIV_MODE_A::LEFT)
173    }
174    #[doc = "Use PDM_RIGHT in sampler"]
175    #[inline(always)]
176    pub fn right(self) -> &'a mut W {
177        self.variant(DIV_MODE_A::RIGHT)
178    }
179    #[doc = r"Sets the field bit"]
180    #[inline(always)]
181    pub fn set_bit(self) -> &'a mut W {
182        self.bit(true)
183    }
184    #[doc = r"Clears the field bit"]
185    #[inline(always)]
186    pub fn clear_bit(self) -> &'a mut W {
187        self.bit(false)
188    }
189    #[doc = r"Writes raw bits to the field"]
190    #[inline(always)]
191    pub fn bit(self, value: bool) -> &'a mut W {
192        self.w.bits =
193            (self.w.bits & !(0x01 << 2)) | ((value as u32 & 0x01) << 2);
194        self.w
195    }
196}
197#[doc = "Field `S_CYCLES` reader - Set number of PDM_CLK during gain setting changes or soft mute"]
198pub struct S_CYCLES_R(crate::FieldReader<u8, u8>);
199impl S_CYCLES_R {
200    #[inline(always)]
201    pub(crate) fn new(bits: u8) -> Self {
202        S_CYCLES_R(crate::FieldReader::new(bits))
203    }
204}
205impl core::ops::Deref for S_CYCLES_R {
206    type Target = crate::FieldReader<u8, u8>;
207    #[inline(always)]
208    fn deref(&self) -> &Self::Target {
209        &self.0
210    }
211}
212#[doc = "Field `S_CYCLES` writer - Set number of PDM_CLK during gain setting changes or soft mute"]
213pub struct S_CYCLES_W<'a> {
214    w: &'a mut W,
215}
216impl<'a> S_CYCLES_W<'a> {
217    #[doc = r"Writes raw bits to the field"]
218    #[inline(always)]
219    pub unsafe fn bits(self, value: u8) -> &'a mut W {
220        self.w.bits =
221            (self.w.bits & !(0x07 << 3)) | ((value as u32 & 0x07) << 3);
222        self.w
223    }
224}
225#[doc = "Field `HP_GAIN` reader - Adjust high pass filter coefficients"]
226pub struct HP_GAIN_R(crate::FieldReader<u8, u8>);
227impl HP_GAIN_R {
228    #[inline(always)]
229    pub(crate) fn new(bits: u8) -> Self {
230        HP_GAIN_R(crate::FieldReader::new(bits))
231    }
232}
233impl core::ops::Deref for HP_GAIN_R {
234    type Target = crate::FieldReader<u8, u8>;
235    #[inline(always)]
236    fn deref(&self) -> &Self::Target {
237        &self.0
238    }
239}
240#[doc = "Field `HP_GAIN` writer - Adjust high pass filter coefficients"]
241pub struct HP_GAIN_W<'a> {
242    w: &'a mut W,
243}
244impl<'a> HP_GAIN_W<'a> {
245    #[doc = r"Writes raw bits to the field"]
246    #[inline(always)]
247    pub unsafe fn bits(self, value: u8) -> &'a mut W {
248        self.w.bits =
249            (self.w.bits & !(0x0f << 6)) | ((value as u32 & 0x0f) << 6);
250        self.w
251    }
252}
253#[doc = "Field `ADCHPD` reader - Set to disable high pass filter"]
254pub struct ADCHPD_R(crate::FieldReader<bool, bool>);
255impl ADCHPD_R {
256    #[inline(always)]
257    pub(crate) fn new(bits: bool) -> Self {
258        ADCHPD_R(crate::FieldReader::new(bits))
259    }
260}
261impl core::ops::Deref for ADCHPD_R {
262    type Target = crate::FieldReader<bool, bool>;
263    #[inline(always)]
264    fn deref(&self) -> &Self::Target {
265        &self.0
266    }
267}
268#[doc = "Field `ADCHPD` writer - Set to disable high pass filter"]
269pub struct ADCHPD_W<'a> {
270    w: &'a mut W,
271}
272impl<'a> ADCHPD_W<'a> {
273    #[doc = r"Sets the field bit"]
274    #[inline(always)]
275    pub fn set_bit(self) -> &'a mut W {
276        self.bit(true)
277    }
278    #[doc = r"Clears the field bit"]
279    #[inline(always)]
280    pub fn clear_bit(self) -> &'a mut W {
281        self.bit(false)
282    }
283    #[doc = r"Writes raw bits to the field"]
284    #[inline(always)]
285    pub fn bit(self, value: bool) -> &'a mut W {
286        self.w.bits =
287            (self.w.bits & !(0x01 << 10)) | ((value as u32 & 0x01) << 10);
288        self.w
289    }
290}
291#[doc = "Field `M_CLK_DIV` reader - PDM_CLK frquency divisor"]
292pub struct M_CLK_DIV_R(crate::FieldReader<u8, u8>);
293impl M_CLK_DIV_R {
294    #[inline(always)]
295    pub(crate) fn new(bits: u8) -> Self {
296        M_CLK_DIV_R(crate::FieldReader::new(bits))
297    }
298}
299impl core::ops::Deref for M_CLK_DIV_R {
300    type Target = crate::FieldReader<u8, u8>;
301    #[inline(always)]
302    fn deref(&self) -> &Self::Target {
303        &self.0
304    }
305}
306#[doc = "Field `M_CLK_DIV` writer - PDM_CLK frquency divisor"]
307pub struct M_CLK_DIV_W<'a> {
308    w: &'a mut W,
309}
310impl<'a> M_CLK_DIV_W<'a> {
311    #[doc = r"Writes raw bits to the field"]
312    #[inline(always)]
313    pub unsafe fn bits(self, value: u8) -> &'a mut W {
314        self.w.bits =
315            (self.w.bits & !(0x03 << 11)) | ((value as u32 & 0x03) << 11);
316        self.w
317    }
318}
319#[doc = "Field `SINC_RATE` reader - SINC decimation rate"]
320pub struct SINC_RATE_R(crate::FieldReader<u8, u8>);
321impl SINC_RATE_R {
322    #[inline(always)]
323    pub(crate) fn new(bits: u8) -> Self {
324        SINC_RATE_R(crate::FieldReader::new(bits))
325    }
326}
327impl core::ops::Deref for SINC_RATE_R {
328    type Target = crate::FieldReader<u8, u8>;
329    #[inline(always)]
330    fn deref(&self) -> &Self::Target {
331        &self.0
332    }
333}
334#[doc = "Field `SINC_RATE` writer - SINC decimation rate"]
335pub struct SINC_RATE_W<'a> {
336    w: &'a mut W,
337}
338impl<'a> SINC_RATE_W<'a> {
339    #[doc = r"Writes raw bits to the field"]
340    #[inline(always)]
341    pub unsafe fn bits(self, value: u8) -> &'a mut W {
342        self.w.bits =
343            (self.w.bits & !(0x7f << 13)) | ((value as u32 & 0x7f) << 13);
344        self.w
345    }
346}
347#[doc = "Field `PGA_L` reader - Left channel PGA gain"]
348pub struct PGA_L_R(crate::FieldReader<u8, u8>);
349impl PGA_L_R {
350    #[inline(always)]
351    pub(crate) fn new(bits: u8) -> Self {
352        PGA_L_R(crate::FieldReader::new(bits))
353    }
354}
355impl core::ops::Deref for PGA_L_R {
356    type Target = crate::FieldReader<u8, u8>;
357    #[inline(always)]
358    fn deref(&self) -> &Self::Target {
359        &self.0
360    }
361}
362#[doc = "Field `PGA_L` writer - Left channel PGA gain"]
363pub struct PGA_L_W<'a> {
364    w: &'a mut W,
365}
366impl<'a> PGA_L_W<'a> {
367    #[doc = r"Writes raw bits to the field"]
368    #[inline(always)]
369    pub unsafe fn bits(self, value: u8) -> &'a mut W {
370        self.w.bits =
371            (self.w.bits & !(0x1f << 20)) | ((value as u32 & 0x1f) << 20);
372        self.w
373    }
374}
375#[doc = "Field `PGA_R` reader - Right channel PGA gain"]
376pub struct PGA_R_R(crate::FieldReader<u8, u8>);
377impl PGA_R_R {
378    #[inline(always)]
379    pub(crate) fn new(bits: u8) -> Self {
380        PGA_R_R(crate::FieldReader::new(bits))
381    }
382}
383impl core::ops::Deref for PGA_R_R {
384    type Target = crate::FieldReader<u8, u8>;
385    #[inline(always)]
386    fn deref(&self) -> &Self::Target {
387        &self.0
388    }
389}
390#[doc = "Field `PGA_R` writer - Right channel PGA gain"]
391pub struct PGA_R_W<'a> {
392    w: &'a mut W,
393}
394impl<'a> PGA_R_W<'a> {
395    #[doc = r"Writes raw bits to the field"]
396    #[inline(always)]
397    pub unsafe fn bits(self, value: u8) -> &'a mut W {
398        self.w.bits =
399            (self.w.bits & !(0x1f << 25)) | ((value as u32 & 0x1f) << 25);
400        self.w
401    }
402}
403#[doc = "Field `DMICK_DLY` reader - Input data sampling with PDM clock cycle delay"]
404pub struct DMICK_DLY_R(crate::FieldReader<bool, bool>);
405impl DMICK_DLY_R {
406    #[inline(always)]
407    pub(crate) fn new(bits: bool) -> Self {
408        DMICK_DLY_R(crate::FieldReader::new(bits))
409    }
410}
411impl core::ops::Deref for DMICK_DLY_R {
412    type Target = crate::FieldReader<bool, bool>;
413    #[inline(always)]
414    fn deref(&self) -> &Self::Target {
415        &self.0
416    }
417}
418#[doc = "Field `DMICK_DLY` writer - Input data sampling with PDM clock cycle delay"]
419pub struct DMICK_DLY_W<'a> {
420    w: &'a mut W,
421}
422impl<'a> DMICK_DLY_W<'a> {
423    #[doc = r"Sets the field bit"]
424    #[inline(always)]
425    pub fn set_bit(self) -> &'a mut W {
426        self.bit(true)
427    }
428    #[doc = r"Clears the field bit"]
429    #[inline(always)]
430    pub fn clear_bit(self) -> &'a mut W {
431        self.bit(false)
432    }
433    #[doc = r"Writes raw bits to the field"]
434    #[inline(always)]
435    pub fn bit(self, value: bool) -> &'a mut W {
436        self.w.bits =
437            (self.w.bits & !(0x01 << 30)) | ((value as u32 & 0x01) << 30);
438        self.w
439    }
440}
441#[doc = "Field `DIV_WD_MODE` reader - Status IN detection windows"]
442pub struct DIV_WD_MODE_R(crate::FieldReader<bool, bool>);
443impl DIV_WD_MODE_R {
444    #[inline(always)]
445    pub(crate) fn new(bits: bool) -> Self {
446        DIV_WD_MODE_R(crate::FieldReader::new(bits))
447    }
448}
449impl core::ops::Deref for DIV_WD_MODE_R {
450    type Target = crate::FieldReader<bool, bool>;
451    #[inline(always)]
452    fn deref(&self) -> &Self::Target {
453        &self.0
454    }
455}
456#[doc = "Field `DIV_WD_MODE` writer - Status IN detection windows"]
457pub struct DIV_WD_MODE_W<'a> {
458    w: &'a mut W,
459}
460impl<'a> DIV_WD_MODE_W<'a> {
461    #[doc = r"Sets the field bit"]
462    #[inline(always)]
463    pub fn set_bit(self) -> &'a mut W {
464        self.bit(true)
465    }
466    #[doc = r"Clears the field bit"]
467    #[inline(always)]
468    pub fn clear_bit(self) -> &'a mut W {
469        self.bit(false)
470    }
471    #[doc = r"Writes raw bits to the field"]
472    #[inline(always)]
473    pub fn bit(self, value: bool) -> &'a mut W {
474        self.w.bits =
475            (self.w.bits & !(0x01 << 31)) | ((value as u32 & 0x01) << 31);
476        self.w
477    }
478}
479impl R {
480    #[doc = "Bit 0 - Set to enable PDM core"]
481    #[inline(always)]
482    pub fn pdm_core_config(&self) -> PDM_CORE_CONFIG_R {
483        PDM_CORE_CONFIG_R::new((self.bits & 0x01) != 0)
484    }
485    #[doc = "Bit 1 - Set to enable PDM Soft mute"]
486    #[inline(always)]
487    pub fn soft_mute(&self) -> SOFT_MUTE_R {
488        SOFT_MUTE_R::new(((self.bits >> 1) & 0x01) != 0)
489    }
490    #[doc = "Bit 2 - Select which divider to use in sampler"]
491    #[inline(always)]
492    pub fn div_mode(&self) -> DIV_MODE_R {
493        DIV_MODE_R::new(((self.bits >> 2) & 0x01) != 0)
494    }
495    #[doc = "Bits 3:5 - Set number of PDM_CLK during gain setting changes or soft mute"]
496    #[inline(always)]
497    pub fn s_cycles(&self) -> S_CYCLES_R {
498        S_CYCLES_R::new(((self.bits >> 3) & 0x07) as u8)
499    }
500    #[doc = "Bits 6:9 - Adjust high pass filter coefficients"]
501    #[inline(always)]
502    pub fn hp_gain(&self) -> HP_GAIN_R {
503        HP_GAIN_R::new(((self.bits >> 6) & 0x0f) as u8)
504    }
505    #[doc = "Bit 10 - Set to disable high pass filter"]
506    #[inline(always)]
507    pub fn adchpd(&self) -> ADCHPD_R {
508        ADCHPD_R::new(((self.bits >> 10) & 0x01) != 0)
509    }
510    #[doc = "Bits 11:12 - PDM_CLK frquency divisor"]
511    #[inline(always)]
512    pub fn m_clk_div(&self) -> M_CLK_DIV_R {
513        M_CLK_DIV_R::new(((self.bits >> 11) & 0x03) as u8)
514    }
515    #[doc = "Bits 13:19 - SINC decimation rate"]
516    #[inline(always)]
517    pub fn sinc_rate(&self) -> SINC_RATE_R {
518        SINC_RATE_R::new(((self.bits >> 13) & 0x7f) as u8)
519    }
520    #[doc = "Bits 20:24 - Left channel PGA gain"]
521    #[inline(always)]
522    pub fn pga_l(&self) -> PGA_L_R {
523        PGA_L_R::new(((self.bits >> 20) & 0x1f) as u8)
524    }
525    #[doc = "Bits 25:29 - Right channel PGA gain"]
526    #[inline(always)]
527    pub fn pga_r(&self) -> PGA_R_R {
528        PGA_R_R::new(((self.bits >> 25) & 0x1f) as u8)
529    }
530    #[doc = "Bit 30 - Input data sampling with PDM clock cycle delay"]
531    #[inline(always)]
532    pub fn dmick_dly(&self) -> DMICK_DLY_R {
533        DMICK_DLY_R::new(((self.bits >> 30) & 0x01) != 0)
534    }
535    #[doc = "Bit 31 - Status IN detection windows"]
536    #[inline(always)]
537    pub fn div_wd_mode(&self) -> DIV_WD_MODE_R {
538        DIV_WD_MODE_R::new(((self.bits >> 31) & 0x01) != 0)
539    }
540}
541impl W {
542    #[doc = "Bit 0 - Set to enable PDM core"]
543    #[inline(always)]
544    pub fn pdm_core_config(&mut self) -> PDM_CORE_CONFIG_W {
545        PDM_CORE_CONFIG_W { w: self }
546    }
547    #[doc = "Bit 1 - Set to enable PDM Soft mute"]
548    #[inline(always)]
549    pub fn soft_mute(&mut self) -> SOFT_MUTE_W {
550        SOFT_MUTE_W { w: self }
551    }
552    #[doc = "Bit 2 - Select which divider to use in sampler"]
553    #[inline(always)]
554    pub fn div_mode(&mut self) -> DIV_MODE_W {
555        DIV_MODE_W { w: self }
556    }
557    #[doc = "Bits 3:5 - Set number of PDM_CLK during gain setting changes or soft mute"]
558    #[inline(always)]
559    pub fn s_cycles(&mut self) -> S_CYCLES_W {
560        S_CYCLES_W { w: self }
561    }
562    #[doc = "Bits 6:9 - Adjust high pass filter coefficients"]
563    #[inline(always)]
564    pub fn hp_gain(&mut self) -> HP_GAIN_W {
565        HP_GAIN_W { w: self }
566    }
567    #[doc = "Bit 10 - Set to disable high pass filter"]
568    #[inline(always)]
569    pub fn adchpd(&mut self) -> ADCHPD_W {
570        ADCHPD_W { w: self }
571    }
572    #[doc = "Bits 11:12 - PDM_CLK frquency divisor"]
573    #[inline(always)]
574    pub fn m_clk_div(&mut self) -> M_CLK_DIV_W {
575        M_CLK_DIV_W { w: self }
576    }
577    #[doc = "Bits 13:19 - SINC decimation rate"]
578    #[inline(always)]
579    pub fn sinc_rate(&mut self) -> SINC_RATE_W {
580        SINC_RATE_W { w: self }
581    }
582    #[doc = "Bits 20:24 - Left channel PGA gain"]
583    #[inline(always)]
584    pub fn pga_l(&mut self) -> PGA_L_W {
585        PGA_L_W { w: self }
586    }
587    #[doc = "Bits 25:29 - Right channel PGA gain"]
588    #[inline(always)]
589    pub fn pga_r(&mut self) -> PGA_R_W {
590        PGA_R_W { w: self }
591    }
592    #[doc = "Bit 30 - Input data sampling with PDM clock cycle delay"]
593    #[inline(always)]
594    pub fn dmick_dly(&mut self) -> DMICK_DLY_W {
595        DMICK_DLY_W { w: self }
596    }
597    #[doc = "Bit 31 - Status IN detection windows"]
598    #[inline(always)]
599    pub fn div_wd_mode(&mut self) -> DIV_WD_MODE_W {
600        DIV_WD_MODE_W { w: self }
601    }
602    #[doc = "Writes raw bits to the register."]
603    #[inline(always)]
604    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
605        self.0.bits(bits);
606        self
607    }
608}
609#[doc = "PDM2PCM core configure register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [pdm_core_config](index.html) module"]
610pub struct PDM_CORE_CONFIG_SPEC;
611impl crate::RegisterSpec for PDM_CORE_CONFIG_SPEC {
612    type Ux = u32;
613}
614#[doc = "`read()` method returns [pdm_core_config::R](R) reader structure"]
615impl crate::Readable for PDM_CORE_CONFIG_SPEC {
616    type Reader = R;
617}
618#[doc = "`write(|w| ..)` method takes [pdm_core_config::W](W) writer structure"]
619impl crate::Writable for PDM_CORE_CONFIG_SPEC {
620    type Writer = W;
621}
622#[doc = "`reset()` method sets PDM_CORE_CONFIG to value 0x1082_66c9"]
623impl crate::Resettable for PDM_CORE_CONFIG_SPEC {
624    #[inline(always)]
625    fn reset_value() -> Self::Ux {
626        0x1082_66c9
627    }
628}