efm32gg11b110_pac/usart4/
timing.rs

1#[doc = "Register `TIMING` reader"]
2pub struct R(crate::R<TIMING_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<TIMING_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<TIMING_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<TIMING_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `TIMING` writer"]
17pub struct W(crate::W<TIMING_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<TIMING_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<TIMING_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<TIMING_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "TX Frame Start Delay\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39#[repr(u8)]
40pub enum TXDELAY_A {
41    #[doc = "0: Disable - TXDELAY in USARTn_CTRL can be used for legacy"]
42    DISABLE = 0,
43    #[doc = "1: Start of transmission is delayed for 1 baud-times"]
44    ONE = 1,
45    #[doc = "2: Start of transmission is delayed for 2 baud-times"]
46    TWO = 2,
47    #[doc = "3: Start of transmission is delayed for 3 baud-times"]
48    THREE = 3,
49    #[doc = "4: Start of transmission is delayed for 7 baud-times"]
50    SEVEN = 4,
51    #[doc = "5: Start of transmission is delayed for TCMPVAL0 baud-times"]
52    TCMP0 = 5,
53    #[doc = "6: Start of transmission is delayed for TCMPVAL1 baud-times"]
54    TCMP1 = 6,
55    #[doc = "7: Start of transmission is delayed for TCMPVAL2 baud-times"]
56    TCMP2 = 7,
57}
58impl From<TXDELAY_A> for u8 {
59    #[inline(always)]
60    fn from(variant: TXDELAY_A) -> Self {
61        variant as _
62    }
63}
64#[doc = "Field `TXDELAY` reader - TX Frame Start Delay"]
65pub type TXDELAY_R = crate::FieldReader<u8, TXDELAY_A>;
66impl TXDELAY_R {
67    #[doc = "Get enumerated values variant"]
68    #[inline(always)]
69    pub fn variant(&self) -> TXDELAY_A {
70        match self.bits {
71            0 => TXDELAY_A::DISABLE,
72            1 => TXDELAY_A::ONE,
73            2 => TXDELAY_A::TWO,
74            3 => TXDELAY_A::THREE,
75            4 => TXDELAY_A::SEVEN,
76            5 => TXDELAY_A::TCMP0,
77            6 => TXDELAY_A::TCMP1,
78            7 => TXDELAY_A::TCMP2,
79            _ => unreachable!(),
80        }
81    }
82    #[doc = "Checks if the value of the field is `DISABLE`"]
83    #[inline(always)]
84    pub fn is_disable(&self) -> bool {
85        *self == TXDELAY_A::DISABLE
86    }
87    #[doc = "Checks if the value of the field is `ONE`"]
88    #[inline(always)]
89    pub fn is_one(&self) -> bool {
90        *self == TXDELAY_A::ONE
91    }
92    #[doc = "Checks if the value of the field is `TWO`"]
93    #[inline(always)]
94    pub fn is_two(&self) -> bool {
95        *self == TXDELAY_A::TWO
96    }
97    #[doc = "Checks if the value of the field is `THREE`"]
98    #[inline(always)]
99    pub fn is_three(&self) -> bool {
100        *self == TXDELAY_A::THREE
101    }
102    #[doc = "Checks if the value of the field is `SEVEN`"]
103    #[inline(always)]
104    pub fn is_seven(&self) -> bool {
105        *self == TXDELAY_A::SEVEN
106    }
107    #[doc = "Checks if the value of the field is `TCMP0`"]
108    #[inline(always)]
109    pub fn is_tcmp0(&self) -> bool {
110        *self == TXDELAY_A::TCMP0
111    }
112    #[doc = "Checks if the value of the field is `TCMP1`"]
113    #[inline(always)]
114    pub fn is_tcmp1(&self) -> bool {
115        *self == TXDELAY_A::TCMP1
116    }
117    #[doc = "Checks if the value of the field is `TCMP2`"]
118    #[inline(always)]
119    pub fn is_tcmp2(&self) -> bool {
120        *self == TXDELAY_A::TCMP2
121    }
122}
123#[doc = "Field `TXDELAY` writer - TX Frame Start Delay"]
124pub type TXDELAY_W<'a> = crate::FieldWriterSafe<'a, u32, TIMING_SPEC, u8, TXDELAY_A, 3, 16>;
125impl<'a> TXDELAY_W<'a> {
126    #[doc = "Disable - TXDELAY in USARTn_CTRL can be used for legacy"]
127    #[inline(always)]
128    pub fn disable(self) -> &'a mut W {
129        self.variant(TXDELAY_A::DISABLE)
130    }
131    #[doc = "Start of transmission is delayed for 1 baud-times"]
132    #[inline(always)]
133    pub fn one(self) -> &'a mut W {
134        self.variant(TXDELAY_A::ONE)
135    }
136    #[doc = "Start of transmission is delayed for 2 baud-times"]
137    #[inline(always)]
138    pub fn two(self) -> &'a mut W {
139        self.variant(TXDELAY_A::TWO)
140    }
141    #[doc = "Start of transmission is delayed for 3 baud-times"]
142    #[inline(always)]
143    pub fn three(self) -> &'a mut W {
144        self.variant(TXDELAY_A::THREE)
145    }
146    #[doc = "Start of transmission is delayed for 7 baud-times"]
147    #[inline(always)]
148    pub fn seven(self) -> &'a mut W {
149        self.variant(TXDELAY_A::SEVEN)
150    }
151    #[doc = "Start of transmission is delayed for TCMPVAL0 baud-times"]
152    #[inline(always)]
153    pub fn tcmp0(self) -> &'a mut W {
154        self.variant(TXDELAY_A::TCMP0)
155    }
156    #[doc = "Start of transmission is delayed for TCMPVAL1 baud-times"]
157    #[inline(always)]
158    pub fn tcmp1(self) -> &'a mut W {
159        self.variant(TXDELAY_A::TCMP1)
160    }
161    #[doc = "Start of transmission is delayed for TCMPVAL2 baud-times"]
162    #[inline(always)]
163    pub fn tcmp2(self) -> &'a mut W {
164        self.variant(TXDELAY_A::TCMP2)
165    }
166}
167#[doc = "Chip Select Setup\n\nValue on reset: 0"]
168#[derive(Clone, Copy, Debug, PartialEq)]
169#[repr(u8)]
170pub enum CSSETUP_A {
171    #[doc = "0: CS is not asserted before start of transmission"]
172    ZERO = 0,
173    #[doc = "1: CS is asserted for 1 baud-times before start of transmission"]
174    ONE = 1,
175    #[doc = "2: CS is asserted for 2 baud-times before start of transmission"]
176    TWO = 2,
177    #[doc = "3: CS is asserted for 3 baud-times before start of transmission"]
178    THREE = 3,
179    #[doc = "4: CS is asserted for 7 baud-times before start of transmission"]
180    SEVEN = 4,
181    #[doc = "5: CS is asserted before the start of transmission for TCMPVAL0 baud-times"]
182    TCMP0 = 5,
183    #[doc = "6: CS is asserted before the start of transmission for TCMPVAL1 baud-times"]
184    TCMP1 = 6,
185    #[doc = "7: CS is asserted before the start of transmission for TCMPVAL2 baud-times"]
186    TCMP2 = 7,
187}
188impl From<CSSETUP_A> for u8 {
189    #[inline(always)]
190    fn from(variant: CSSETUP_A) -> Self {
191        variant as _
192    }
193}
194#[doc = "Field `CSSETUP` reader - Chip Select Setup"]
195pub type CSSETUP_R = crate::FieldReader<u8, CSSETUP_A>;
196impl CSSETUP_R {
197    #[doc = "Get enumerated values variant"]
198    #[inline(always)]
199    pub fn variant(&self) -> CSSETUP_A {
200        match self.bits {
201            0 => CSSETUP_A::ZERO,
202            1 => CSSETUP_A::ONE,
203            2 => CSSETUP_A::TWO,
204            3 => CSSETUP_A::THREE,
205            4 => CSSETUP_A::SEVEN,
206            5 => CSSETUP_A::TCMP0,
207            6 => CSSETUP_A::TCMP1,
208            7 => CSSETUP_A::TCMP2,
209            _ => unreachable!(),
210        }
211    }
212    #[doc = "Checks if the value of the field is `ZERO`"]
213    #[inline(always)]
214    pub fn is_zero(&self) -> bool {
215        *self == CSSETUP_A::ZERO
216    }
217    #[doc = "Checks if the value of the field is `ONE`"]
218    #[inline(always)]
219    pub fn is_one(&self) -> bool {
220        *self == CSSETUP_A::ONE
221    }
222    #[doc = "Checks if the value of the field is `TWO`"]
223    #[inline(always)]
224    pub fn is_two(&self) -> bool {
225        *self == CSSETUP_A::TWO
226    }
227    #[doc = "Checks if the value of the field is `THREE`"]
228    #[inline(always)]
229    pub fn is_three(&self) -> bool {
230        *self == CSSETUP_A::THREE
231    }
232    #[doc = "Checks if the value of the field is `SEVEN`"]
233    #[inline(always)]
234    pub fn is_seven(&self) -> bool {
235        *self == CSSETUP_A::SEVEN
236    }
237    #[doc = "Checks if the value of the field is `TCMP0`"]
238    #[inline(always)]
239    pub fn is_tcmp0(&self) -> bool {
240        *self == CSSETUP_A::TCMP0
241    }
242    #[doc = "Checks if the value of the field is `TCMP1`"]
243    #[inline(always)]
244    pub fn is_tcmp1(&self) -> bool {
245        *self == CSSETUP_A::TCMP1
246    }
247    #[doc = "Checks if the value of the field is `TCMP2`"]
248    #[inline(always)]
249    pub fn is_tcmp2(&self) -> bool {
250        *self == CSSETUP_A::TCMP2
251    }
252}
253#[doc = "Field `CSSETUP` writer - Chip Select Setup"]
254pub type CSSETUP_W<'a> = crate::FieldWriterSafe<'a, u32, TIMING_SPEC, u8, CSSETUP_A, 3, 20>;
255impl<'a> CSSETUP_W<'a> {
256    #[doc = "CS is not asserted before start of transmission"]
257    #[inline(always)]
258    pub fn zero(self) -> &'a mut W {
259        self.variant(CSSETUP_A::ZERO)
260    }
261    #[doc = "CS is asserted for 1 baud-times before start of transmission"]
262    #[inline(always)]
263    pub fn one(self) -> &'a mut W {
264        self.variant(CSSETUP_A::ONE)
265    }
266    #[doc = "CS is asserted for 2 baud-times before start of transmission"]
267    #[inline(always)]
268    pub fn two(self) -> &'a mut W {
269        self.variant(CSSETUP_A::TWO)
270    }
271    #[doc = "CS is asserted for 3 baud-times before start of transmission"]
272    #[inline(always)]
273    pub fn three(self) -> &'a mut W {
274        self.variant(CSSETUP_A::THREE)
275    }
276    #[doc = "CS is asserted for 7 baud-times before start of transmission"]
277    #[inline(always)]
278    pub fn seven(self) -> &'a mut W {
279        self.variant(CSSETUP_A::SEVEN)
280    }
281    #[doc = "CS is asserted before the start of transmission for TCMPVAL0 baud-times"]
282    #[inline(always)]
283    pub fn tcmp0(self) -> &'a mut W {
284        self.variant(CSSETUP_A::TCMP0)
285    }
286    #[doc = "CS is asserted before the start of transmission for TCMPVAL1 baud-times"]
287    #[inline(always)]
288    pub fn tcmp1(self) -> &'a mut W {
289        self.variant(CSSETUP_A::TCMP1)
290    }
291    #[doc = "CS is asserted before the start of transmission for TCMPVAL2 baud-times"]
292    #[inline(always)]
293    pub fn tcmp2(self) -> &'a mut W {
294        self.variant(CSSETUP_A::TCMP2)
295    }
296}
297#[doc = "Inter-character Spacing\n\nValue on reset: 0"]
298#[derive(Clone, Copy, Debug, PartialEq)]
299#[repr(u8)]
300pub enum ICS_A {
301    #[doc = "0: There is no space between charcters"]
302    ZERO = 0,
303    #[doc = "1: Create a space of 1 baud-times before start of transmission"]
304    ONE = 1,
305    #[doc = "2: Create a space of 2 baud-times before start of transmission"]
306    TWO = 2,
307    #[doc = "3: Create a space of 3 baud-times before start of transmission"]
308    THREE = 3,
309    #[doc = "4: Create a space of 7 baud-times before start of transmission"]
310    SEVEN = 4,
311    #[doc = "5: Create a space of before the start of transmission for TCMPVAL0 baud-times"]
312    TCMP0 = 5,
313    #[doc = "6: Create a space of before the start of transmission for TCMPVAL1 baud-times"]
314    TCMP1 = 6,
315    #[doc = "7: Create a space of before the start of transmission for TCMPVAL2 baud-times"]
316    TCMP2 = 7,
317}
318impl From<ICS_A> for u8 {
319    #[inline(always)]
320    fn from(variant: ICS_A) -> Self {
321        variant as _
322    }
323}
324#[doc = "Field `ICS` reader - Inter-character Spacing"]
325pub type ICS_R = crate::FieldReader<u8, ICS_A>;
326impl ICS_R {
327    #[doc = "Get enumerated values variant"]
328    #[inline(always)]
329    pub fn variant(&self) -> ICS_A {
330        match self.bits {
331            0 => ICS_A::ZERO,
332            1 => ICS_A::ONE,
333            2 => ICS_A::TWO,
334            3 => ICS_A::THREE,
335            4 => ICS_A::SEVEN,
336            5 => ICS_A::TCMP0,
337            6 => ICS_A::TCMP1,
338            7 => ICS_A::TCMP2,
339            _ => unreachable!(),
340        }
341    }
342    #[doc = "Checks if the value of the field is `ZERO`"]
343    #[inline(always)]
344    pub fn is_zero(&self) -> bool {
345        *self == ICS_A::ZERO
346    }
347    #[doc = "Checks if the value of the field is `ONE`"]
348    #[inline(always)]
349    pub fn is_one(&self) -> bool {
350        *self == ICS_A::ONE
351    }
352    #[doc = "Checks if the value of the field is `TWO`"]
353    #[inline(always)]
354    pub fn is_two(&self) -> bool {
355        *self == ICS_A::TWO
356    }
357    #[doc = "Checks if the value of the field is `THREE`"]
358    #[inline(always)]
359    pub fn is_three(&self) -> bool {
360        *self == ICS_A::THREE
361    }
362    #[doc = "Checks if the value of the field is `SEVEN`"]
363    #[inline(always)]
364    pub fn is_seven(&self) -> bool {
365        *self == ICS_A::SEVEN
366    }
367    #[doc = "Checks if the value of the field is `TCMP0`"]
368    #[inline(always)]
369    pub fn is_tcmp0(&self) -> bool {
370        *self == ICS_A::TCMP0
371    }
372    #[doc = "Checks if the value of the field is `TCMP1`"]
373    #[inline(always)]
374    pub fn is_tcmp1(&self) -> bool {
375        *self == ICS_A::TCMP1
376    }
377    #[doc = "Checks if the value of the field is `TCMP2`"]
378    #[inline(always)]
379    pub fn is_tcmp2(&self) -> bool {
380        *self == ICS_A::TCMP2
381    }
382}
383#[doc = "Field `ICS` writer - Inter-character Spacing"]
384pub type ICS_W<'a> = crate::FieldWriterSafe<'a, u32, TIMING_SPEC, u8, ICS_A, 3, 24>;
385impl<'a> ICS_W<'a> {
386    #[doc = "There is no space between charcters"]
387    #[inline(always)]
388    pub fn zero(self) -> &'a mut W {
389        self.variant(ICS_A::ZERO)
390    }
391    #[doc = "Create a space of 1 baud-times before start of transmission"]
392    #[inline(always)]
393    pub fn one(self) -> &'a mut W {
394        self.variant(ICS_A::ONE)
395    }
396    #[doc = "Create a space of 2 baud-times before start of transmission"]
397    #[inline(always)]
398    pub fn two(self) -> &'a mut W {
399        self.variant(ICS_A::TWO)
400    }
401    #[doc = "Create a space of 3 baud-times before start of transmission"]
402    #[inline(always)]
403    pub fn three(self) -> &'a mut W {
404        self.variant(ICS_A::THREE)
405    }
406    #[doc = "Create a space of 7 baud-times before start of transmission"]
407    #[inline(always)]
408    pub fn seven(self) -> &'a mut W {
409        self.variant(ICS_A::SEVEN)
410    }
411    #[doc = "Create a space of before the start of transmission for TCMPVAL0 baud-times"]
412    #[inline(always)]
413    pub fn tcmp0(self) -> &'a mut W {
414        self.variant(ICS_A::TCMP0)
415    }
416    #[doc = "Create a space of before the start of transmission for TCMPVAL1 baud-times"]
417    #[inline(always)]
418    pub fn tcmp1(self) -> &'a mut W {
419        self.variant(ICS_A::TCMP1)
420    }
421    #[doc = "Create a space of before the start of transmission for TCMPVAL2 baud-times"]
422    #[inline(always)]
423    pub fn tcmp2(self) -> &'a mut W {
424        self.variant(ICS_A::TCMP2)
425    }
426}
427#[doc = "Chip Select Hold\n\nValue on reset: 0"]
428#[derive(Clone, Copy, Debug, PartialEq)]
429#[repr(u8)]
430pub enum CSHOLD_A {
431    #[doc = "0: Disable CS being asserted after the end of transmission"]
432    ZERO = 0,
433    #[doc = "1: CS is asserted for 1 baud-times after the end of transmission"]
434    ONE = 1,
435    #[doc = "2: CS is asserted for 2 baud-times after the end of transmission"]
436    TWO = 2,
437    #[doc = "3: CS is asserted for 3 baud-times after the end of transmission"]
438    THREE = 3,
439    #[doc = "4: CS is asserted for 7 baud-times after the end of transmission"]
440    SEVEN = 4,
441    #[doc = "5: CS is asserted after the end of transmission for TCMPVAL0 baud-times"]
442    TCMP0 = 5,
443    #[doc = "6: CS is asserted after the end of transmission for TCMPVAL1 baud-times"]
444    TCMP1 = 6,
445    #[doc = "7: CS is asserted after the end of transmission for TCMPVAL2 baud-times"]
446    TCMP2 = 7,
447}
448impl From<CSHOLD_A> for u8 {
449    #[inline(always)]
450    fn from(variant: CSHOLD_A) -> Self {
451        variant as _
452    }
453}
454#[doc = "Field `CSHOLD` reader - Chip Select Hold"]
455pub type CSHOLD_R = crate::FieldReader<u8, CSHOLD_A>;
456impl CSHOLD_R {
457    #[doc = "Get enumerated values variant"]
458    #[inline(always)]
459    pub fn variant(&self) -> CSHOLD_A {
460        match self.bits {
461            0 => CSHOLD_A::ZERO,
462            1 => CSHOLD_A::ONE,
463            2 => CSHOLD_A::TWO,
464            3 => CSHOLD_A::THREE,
465            4 => CSHOLD_A::SEVEN,
466            5 => CSHOLD_A::TCMP0,
467            6 => CSHOLD_A::TCMP1,
468            7 => CSHOLD_A::TCMP2,
469            _ => unreachable!(),
470        }
471    }
472    #[doc = "Checks if the value of the field is `ZERO`"]
473    #[inline(always)]
474    pub fn is_zero(&self) -> bool {
475        *self == CSHOLD_A::ZERO
476    }
477    #[doc = "Checks if the value of the field is `ONE`"]
478    #[inline(always)]
479    pub fn is_one(&self) -> bool {
480        *self == CSHOLD_A::ONE
481    }
482    #[doc = "Checks if the value of the field is `TWO`"]
483    #[inline(always)]
484    pub fn is_two(&self) -> bool {
485        *self == CSHOLD_A::TWO
486    }
487    #[doc = "Checks if the value of the field is `THREE`"]
488    #[inline(always)]
489    pub fn is_three(&self) -> bool {
490        *self == CSHOLD_A::THREE
491    }
492    #[doc = "Checks if the value of the field is `SEVEN`"]
493    #[inline(always)]
494    pub fn is_seven(&self) -> bool {
495        *self == CSHOLD_A::SEVEN
496    }
497    #[doc = "Checks if the value of the field is `TCMP0`"]
498    #[inline(always)]
499    pub fn is_tcmp0(&self) -> bool {
500        *self == CSHOLD_A::TCMP0
501    }
502    #[doc = "Checks if the value of the field is `TCMP1`"]
503    #[inline(always)]
504    pub fn is_tcmp1(&self) -> bool {
505        *self == CSHOLD_A::TCMP1
506    }
507    #[doc = "Checks if the value of the field is `TCMP2`"]
508    #[inline(always)]
509    pub fn is_tcmp2(&self) -> bool {
510        *self == CSHOLD_A::TCMP2
511    }
512}
513#[doc = "Field `CSHOLD` writer - Chip Select Hold"]
514pub type CSHOLD_W<'a> = crate::FieldWriterSafe<'a, u32, TIMING_SPEC, u8, CSHOLD_A, 3, 28>;
515impl<'a> CSHOLD_W<'a> {
516    #[doc = "Disable CS being asserted after the end of transmission"]
517    #[inline(always)]
518    pub fn zero(self) -> &'a mut W {
519        self.variant(CSHOLD_A::ZERO)
520    }
521    #[doc = "CS is asserted for 1 baud-times after the end of transmission"]
522    #[inline(always)]
523    pub fn one(self) -> &'a mut W {
524        self.variant(CSHOLD_A::ONE)
525    }
526    #[doc = "CS is asserted for 2 baud-times after the end of transmission"]
527    #[inline(always)]
528    pub fn two(self) -> &'a mut W {
529        self.variant(CSHOLD_A::TWO)
530    }
531    #[doc = "CS is asserted for 3 baud-times after the end of transmission"]
532    #[inline(always)]
533    pub fn three(self) -> &'a mut W {
534        self.variant(CSHOLD_A::THREE)
535    }
536    #[doc = "CS is asserted for 7 baud-times after the end of transmission"]
537    #[inline(always)]
538    pub fn seven(self) -> &'a mut W {
539        self.variant(CSHOLD_A::SEVEN)
540    }
541    #[doc = "CS is asserted after the end of transmission for TCMPVAL0 baud-times"]
542    #[inline(always)]
543    pub fn tcmp0(self) -> &'a mut W {
544        self.variant(CSHOLD_A::TCMP0)
545    }
546    #[doc = "CS is asserted after the end of transmission for TCMPVAL1 baud-times"]
547    #[inline(always)]
548    pub fn tcmp1(self) -> &'a mut W {
549        self.variant(CSHOLD_A::TCMP1)
550    }
551    #[doc = "CS is asserted after the end of transmission for TCMPVAL2 baud-times"]
552    #[inline(always)]
553    pub fn tcmp2(self) -> &'a mut W {
554        self.variant(CSHOLD_A::TCMP2)
555    }
556}
557impl R {
558    #[doc = "Bits 16:18 - TX Frame Start Delay"]
559    #[inline(always)]
560    pub fn txdelay(&self) -> TXDELAY_R {
561        TXDELAY_R::new(((self.bits >> 16) & 7) as u8)
562    }
563    #[doc = "Bits 20:22 - Chip Select Setup"]
564    #[inline(always)]
565    pub fn cssetup(&self) -> CSSETUP_R {
566        CSSETUP_R::new(((self.bits >> 20) & 7) as u8)
567    }
568    #[doc = "Bits 24:26 - Inter-character Spacing"]
569    #[inline(always)]
570    pub fn ics(&self) -> ICS_R {
571        ICS_R::new(((self.bits >> 24) & 7) as u8)
572    }
573    #[doc = "Bits 28:30 - Chip Select Hold"]
574    #[inline(always)]
575    pub fn cshold(&self) -> CSHOLD_R {
576        CSHOLD_R::new(((self.bits >> 28) & 7) as u8)
577    }
578}
579impl W {
580    #[doc = "Bits 16:18 - TX Frame Start Delay"]
581    #[inline(always)]
582    pub fn txdelay(&mut self) -> TXDELAY_W {
583        TXDELAY_W::new(self)
584    }
585    #[doc = "Bits 20:22 - Chip Select Setup"]
586    #[inline(always)]
587    pub fn cssetup(&mut self) -> CSSETUP_W {
588        CSSETUP_W::new(self)
589    }
590    #[doc = "Bits 24:26 - Inter-character Spacing"]
591    #[inline(always)]
592    pub fn ics(&mut self) -> ICS_W {
593        ICS_W::new(self)
594    }
595    #[doc = "Bits 28:30 - Chip Select Hold"]
596    #[inline(always)]
597    pub fn cshold(&mut self) -> CSHOLD_W {
598        CSHOLD_W::new(self)
599    }
600    #[doc = "Writes raw bits to the register."]
601    #[inline(always)]
602    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
603        self.0.bits(bits);
604        self
605    }
606}
607#[doc = "Timing 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 [timing](index.html) module"]
608pub struct TIMING_SPEC;
609impl crate::RegisterSpec for TIMING_SPEC {
610    type Ux = u32;
611}
612#[doc = "`read()` method returns [timing::R](R) reader structure"]
613impl crate::Readable for TIMING_SPEC {
614    type Reader = R;
615}
616#[doc = "`write(|w| ..)` method takes [timing::W](W) writer structure"]
617impl crate::Writable for TIMING_SPEC {
618    type Writer = W;
619}
620#[doc = "`reset()` method sets TIMING to value 0"]
621impl crate::Resettable for TIMING_SPEC {
622    #[inline(always)]
623    fn reset_value() -> Self::Ux {
624        0
625    }
626}