xmc4500/eth0_con/
eth0_con.rs

1#[doc = "Register `ETH0_CON` reader"]
2pub type R = crate::R<ETH0_CON_SPEC>;
3#[doc = "Register `ETH0_CON` writer"]
4pub type W = crate::W<ETH0_CON_SPEC>;
5#[doc = "MAC Receive Input 0\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u8)]
8pub enum RXD0_A {
9    #[doc = "0: Data input RXD0A is selected"]
10    VALUE1 = 0,
11    #[doc = "1: Data input RXD0B is selected"]
12    VALUE2 = 1,
13    #[doc = "2: Data input RXD0C is selected"]
14    VALUE3 = 2,
15    #[doc = "3: Data input RXD0D is selected"]
16    VALUE4 = 3,
17}
18impl From<RXD0_A> for u8 {
19    #[inline(always)]
20    fn from(variant: RXD0_A) -> Self {
21        variant as _
22    }
23}
24impl crate::FieldSpec for RXD0_A {
25    type Ux = u8;
26}
27impl crate::IsEnum for RXD0_A {}
28#[doc = "Field `RXD0` reader - MAC Receive Input 0"]
29pub type RXD0_R = crate::FieldReader<RXD0_A>;
30impl RXD0_R {
31    #[doc = "Get enumerated values variant"]
32    #[inline(always)]
33    pub const fn variant(&self) -> RXD0_A {
34        match self.bits {
35            0 => RXD0_A::VALUE1,
36            1 => RXD0_A::VALUE2,
37            2 => RXD0_A::VALUE3,
38            3 => RXD0_A::VALUE4,
39            _ => unreachable!(),
40        }
41    }
42    #[doc = "Data input RXD0A is selected"]
43    #[inline(always)]
44    pub fn is_value1(&self) -> bool {
45        *self == RXD0_A::VALUE1
46    }
47    #[doc = "Data input RXD0B is selected"]
48    #[inline(always)]
49    pub fn is_value2(&self) -> bool {
50        *self == RXD0_A::VALUE2
51    }
52    #[doc = "Data input RXD0C is selected"]
53    #[inline(always)]
54    pub fn is_value3(&self) -> bool {
55        *self == RXD0_A::VALUE3
56    }
57    #[doc = "Data input RXD0D is selected"]
58    #[inline(always)]
59    pub fn is_value4(&self) -> bool {
60        *self == RXD0_A::VALUE4
61    }
62}
63#[doc = "Field `RXD0` writer - MAC Receive Input 0"]
64pub type RXD0_W<'a, REG> = crate::FieldWriter<'a, REG, 2, RXD0_A, crate::Safe>;
65impl<'a, REG> RXD0_W<'a, REG>
66where
67    REG: crate::Writable + crate::RegisterSpec,
68    REG::Ux: From<u8>,
69{
70    #[doc = "Data input RXD0A is selected"]
71    #[inline(always)]
72    pub fn value1(self) -> &'a mut crate::W<REG> {
73        self.variant(RXD0_A::VALUE1)
74    }
75    #[doc = "Data input RXD0B is selected"]
76    #[inline(always)]
77    pub fn value2(self) -> &'a mut crate::W<REG> {
78        self.variant(RXD0_A::VALUE2)
79    }
80    #[doc = "Data input RXD0C is selected"]
81    #[inline(always)]
82    pub fn value3(self) -> &'a mut crate::W<REG> {
83        self.variant(RXD0_A::VALUE3)
84    }
85    #[doc = "Data input RXD0D is selected"]
86    #[inline(always)]
87    pub fn value4(self) -> &'a mut crate::W<REG> {
88        self.variant(RXD0_A::VALUE4)
89    }
90}
91#[doc = "MAC Receive Input 1\n\nValue on reset: 0"]
92#[derive(Clone, Copy, Debug, PartialEq, Eq)]
93#[repr(u8)]
94pub enum RXD1_A {
95    #[doc = "0: Data input RXD1A is selected"]
96    VALUE1 = 0,
97    #[doc = "1: Data input RXD1B is selected"]
98    VALUE2 = 1,
99    #[doc = "2: Data input RXD1C is selected"]
100    VALUE3 = 2,
101    #[doc = "3: Data input RXD1D is selected"]
102    VALUE4 = 3,
103}
104impl From<RXD1_A> for u8 {
105    #[inline(always)]
106    fn from(variant: RXD1_A) -> Self {
107        variant as _
108    }
109}
110impl crate::FieldSpec for RXD1_A {
111    type Ux = u8;
112}
113impl crate::IsEnum for RXD1_A {}
114#[doc = "Field `RXD1` reader - MAC Receive Input 1"]
115pub type RXD1_R = crate::FieldReader<RXD1_A>;
116impl RXD1_R {
117    #[doc = "Get enumerated values variant"]
118    #[inline(always)]
119    pub const fn variant(&self) -> RXD1_A {
120        match self.bits {
121            0 => RXD1_A::VALUE1,
122            1 => RXD1_A::VALUE2,
123            2 => RXD1_A::VALUE3,
124            3 => RXD1_A::VALUE4,
125            _ => unreachable!(),
126        }
127    }
128    #[doc = "Data input RXD1A is selected"]
129    #[inline(always)]
130    pub fn is_value1(&self) -> bool {
131        *self == RXD1_A::VALUE1
132    }
133    #[doc = "Data input RXD1B is selected"]
134    #[inline(always)]
135    pub fn is_value2(&self) -> bool {
136        *self == RXD1_A::VALUE2
137    }
138    #[doc = "Data input RXD1C is selected"]
139    #[inline(always)]
140    pub fn is_value3(&self) -> bool {
141        *self == RXD1_A::VALUE3
142    }
143    #[doc = "Data input RXD1D is selected"]
144    #[inline(always)]
145    pub fn is_value4(&self) -> bool {
146        *self == RXD1_A::VALUE4
147    }
148}
149#[doc = "Field `RXD1` writer - MAC Receive Input 1"]
150pub type RXD1_W<'a, REG> = crate::FieldWriter<'a, REG, 2, RXD1_A, crate::Safe>;
151impl<'a, REG> RXD1_W<'a, REG>
152where
153    REG: crate::Writable + crate::RegisterSpec,
154    REG::Ux: From<u8>,
155{
156    #[doc = "Data input RXD1A is selected"]
157    #[inline(always)]
158    pub fn value1(self) -> &'a mut crate::W<REG> {
159        self.variant(RXD1_A::VALUE1)
160    }
161    #[doc = "Data input RXD1B is selected"]
162    #[inline(always)]
163    pub fn value2(self) -> &'a mut crate::W<REG> {
164        self.variant(RXD1_A::VALUE2)
165    }
166    #[doc = "Data input RXD1C is selected"]
167    #[inline(always)]
168    pub fn value3(self) -> &'a mut crate::W<REG> {
169        self.variant(RXD1_A::VALUE3)
170    }
171    #[doc = "Data input RXD1D is selected"]
172    #[inline(always)]
173    pub fn value4(self) -> &'a mut crate::W<REG> {
174        self.variant(RXD1_A::VALUE4)
175    }
176}
177#[doc = "MAC Receive Input 2\n\nValue on reset: 0"]
178#[derive(Clone, Copy, Debug, PartialEq, Eq)]
179#[repr(u8)]
180pub enum RXD2_A {
181    #[doc = "0: Data input RXD2A is selected"]
182    VALUE1 = 0,
183    #[doc = "1: Data input RXD2B is selected"]
184    VALUE2 = 1,
185    #[doc = "2: Data input RXD2C is selected"]
186    VALUE3 = 2,
187    #[doc = "3: Data input RXD2D is selected"]
188    VALUE4 = 3,
189}
190impl From<RXD2_A> for u8 {
191    #[inline(always)]
192    fn from(variant: RXD2_A) -> Self {
193        variant as _
194    }
195}
196impl crate::FieldSpec for RXD2_A {
197    type Ux = u8;
198}
199impl crate::IsEnum for RXD2_A {}
200#[doc = "Field `RXD2` reader - MAC Receive Input 2"]
201pub type RXD2_R = crate::FieldReader<RXD2_A>;
202impl RXD2_R {
203    #[doc = "Get enumerated values variant"]
204    #[inline(always)]
205    pub const fn variant(&self) -> RXD2_A {
206        match self.bits {
207            0 => RXD2_A::VALUE1,
208            1 => RXD2_A::VALUE2,
209            2 => RXD2_A::VALUE3,
210            3 => RXD2_A::VALUE4,
211            _ => unreachable!(),
212        }
213    }
214    #[doc = "Data input RXD2A is selected"]
215    #[inline(always)]
216    pub fn is_value1(&self) -> bool {
217        *self == RXD2_A::VALUE1
218    }
219    #[doc = "Data input RXD2B is selected"]
220    #[inline(always)]
221    pub fn is_value2(&self) -> bool {
222        *self == RXD2_A::VALUE2
223    }
224    #[doc = "Data input RXD2C is selected"]
225    #[inline(always)]
226    pub fn is_value3(&self) -> bool {
227        *self == RXD2_A::VALUE3
228    }
229    #[doc = "Data input RXD2D is selected"]
230    #[inline(always)]
231    pub fn is_value4(&self) -> bool {
232        *self == RXD2_A::VALUE4
233    }
234}
235#[doc = "Field `RXD2` writer - MAC Receive Input 2"]
236pub type RXD2_W<'a, REG> = crate::FieldWriter<'a, REG, 2, RXD2_A, crate::Safe>;
237impl<'a, REG> RXD2_W<'a, REG>
238where
239    REG: crate::Writable + crate::RegisterSpec,
240    REG::Ux: From<u8>,
241{
242    #[doc = "Data input RXD2A is selected"]
243    #[inline(always)]
244    pub fn value1(self) -> &'a mut crate::W<REG> {
245        self.variant(RXD2_A::VALUE1)
246    }
247    #[doc = "Data input RXD2B is selected"]
248    #[inline(always)]
249    pub fn value2(self) -> &'a mut crate::W<REG> {
250        self.variant(RXD2_A::VALUE2)
251    }
252    #[doc = "Data input RXD2C is selected"]
253    #[inline(always)]
254    pub fn value3(self) -> &'a mut crate::W<REG> {
255        self.variant(RXD2_A::VALUE3)
256    }
257    #[doc = "Data input RXD2D is selected"]
258    #[inline(always)]
259    pub fn value4(self) -> &'a mut crate::W<REG> {
260        self.variant(RXD2_A::VALUE4)
261    }
262}
263#[doc = "MAC Receive Input 3\n\nValue on reset: 0"]
264#[derive(Clone, Copy, Debug, PartialEq, Eq)]
265#[repr(u8)]
266pub enum RXD3_A {
267    #[doc = "0: Data input RXD3A is selected"]
268    VALUE1 = 0,
269    #[doc = "1: Data input RXD3B is selected"]
270    VALUE2 = 1,
271    #[doc = "2: Data input RXD3C is selected"]
272    VALUE3 = 2,
273    #[doc = "3: Data input RXD3D is selected"]
274    VALUE4 = 3,
275}
276impl From<RXD3_A> for u8 {
277    #[inline(always)]
278    fn from(variant: RXD3_A) -> Self {
279        variant as _
280    }
281}
282impl crate::FieldSpec for RXD3_A {
283    type Ux = u8;
284}
285impl crate::IsEnum for RXD3_A {}
286#[doc = "Field `RXD3` reader - MAC Receive Input 3"]
287pub type RXD3_R = crate::FieldReader<RXD3_A>;
288impl RXD3_R {
289    #[doc = "Get enumerated values variant"]
290    #[inline(always)]
291    pub const fn variant(&self) -> RXD3_A {
292        match self.bits {
293            0 => RXD3_A::VALUE1,
294            1 => RXD3_A::VALUE2,
295            2 => RXD3_A::VALUE3,
296            3 => RXD3_A::VALUE4,
297            _ => unreachable!(),
298        }
299    }
300    #[doc = "Data input RXD3A is selected"]
301    #[inline(always)]
302    pub fn is_value1(&self) -> bool {
303        *self == RXD3_A::VALUE1
304    }
305    #[doc = "Data input RXD3B is selected"]
306    #[inline(always)]
307    pub fn is_value2(&self) -> bool {
308        *self == RXD3_A::VALUE2
309    }
310    #[doc = "Data input RXD3C is selected"]
311    #[inline(always)]
312    pub fn is_value3(&self) -> bool {
313        *self == RXD3_A::VALUE3
314    }
315    #[doc = "Data input RXD3D is selected"]
316    #[inline(always)]
317    pub fn is_value4(&self) -> bool {
318        *self == RXD3_A::VALUE4
319    }
320}
321#[doc = "Field `RXD3` writer - MAC Receive Input 3"]
322pub type RXD3_W<'a, REG> = crate::FieldWriter<'a, REG, 2, RXD3_A, crate::Safe>;
323impl<'a, REG> RXD3_W<'a, REG>
324where
325    REG: crate::Writable + crate::RegisterSpec,
326    REG::Ux: From<u8>,
327{
328    #[doc = "Data input RXD3A is selected"]
329    #[inline(always)]
330    pub fn value1(self) -> &'a mut crate::W<REG> {
331        self.variant(RXD3_A::VALUE1)
332    }
333    #[doc = "Data input RXD3B is selected"]
334    #[inline(always)]
335    pub fn value2(self) -> &'a mut crate::W<REG> {
336        self.variant(RXD3_A::VALUE2)
337    }
338    #[doc = "Data input RXD3C is selected"]
339    #[inline(always)]
340    pub fn value3(self) -> &'a mut crate::W<REG> {
341        self.variant(RXD3_A::VALUE3)
342    }
343    #[doc = "Data input RXD3D is selected"]
344    #[inline(always)]
345    pub fn value4(self) -> &'a mut crate::W<REG> {
346        self.variant(RXD3_A::VALUE4)
347    }
348}
349#[doc = "RMII clock input\n\nValue on reset: 0"]
350#[derive(Clone, Copy, Debug, PartialEq, Eq)]
351#[repr(u8)]
352pub enum CLK_RMII_A {
353    #[doc = "0: Data input RMIIA is selected"]
354    VALUE1 = 0,
355    #[doc = "1: Data input RMIIB is selected"]
356    VALUE2 = 1,
357    #[doc = "2: Data input RMIIC is selected"]
358    VALUE3 = 2,
359    #[doc = "3: Data input RMIID is selected"]
360    VALUE4 = 3,
361}
362impl From<CLK_RMII_A> for u8 {
363    #[inline(always)]
364    fn from(variant: CLK_RMII_A) -> Self {
365        variant as _
366    }
367}
368impl crate::FieldSpec for CLK_RMII_A {
369    type Ux = u8;
370}
371impl crate::IsEnum for CLK_RMII_A {}
372#[doc = "Field `CLK_RMII` reader - RMII clock input"]
373pub type CLK_RMII_R = crate::FieldReader<CLK_RMII_A>;
374impl CLK_RMII_R {
375    #[doc = "Get enumerated values variant"]
376    #[inline(always)]
377    pub const fn variant(&self) -> CLK_RMII_A {
378        match self.bits {
379            0 => CLK_RMII_A::VALUE1,
380            1 => CLK_RMII_A::VALUE2,
381            2 => CLK_RMII_A::VALUE3,
382            3 => CLK_RMII_A::VALUE4,
383            _ => unreachable!(),
384        }
385    }
386    #[doc = "Data input RMIIA is selected"]
387    #[inline(always)]
388    pub fn is_value1(&self) -> bool {
389        *self == CLK_RMII_A::VALUE1
390    }
391    #[doc = "Data input RMIIB is selected"]
392    #[inline(always)]
393    pub fn is_value2(&self) -> bool {
394        *self == CLK_RMII_A::VALUE2
395    }
396    #[doc = "Data input RMIIC is selected"]
397    #[inline(always)]
398    pub fn is_value3(&self) -> bool {
399        *self == CLK_RMII_A::VALUE3
400    }
401    #[doc = "Data input RMIID is selected"]
402    #[inline(always)]
403    pub fn is_value4(&self) -> bool {
404        *self == CLK_RMII_A::VALUE4
405    }
406}
407#[doc = "Field `CLK_RMII` writer - RMII clock input"]
408pub type CLK_RMII_W<'a, REG> = crate::FieldWriter<'a, REG, 2, CLK_RMII_A, crate::Safe>;
409impl<'a, REG> CLK_RMII_W<'a, REG>
410where
411    REG: crate::Writable + crate::RegisterSpec,
412    REG::Ux: From<u8>,
413{
414    #[doc = "Data input RMIIA is selected"]
415    #[inline(always)]
416    pub fn value1(self) -> &'a mut crate::W<REG> {
417        self.variant(CLK_RMII_A::VALUE1)
418    }
419    #[doc = "Data input RMIIB is selected"]
420    #[inline(always)]
421    pub fn value2(self) -> &'a mut crate::W<REG> {
422        self.variant(CLK_RMII_A::VALUE2)
423    }
424    #[doc = "Data input RMIIC is selected"]
425    #[inline(always)]
426    pub fn value3(self) -> &'a mut crate::W<REG> {
427        self.variant(CLK_RMII_A::VALUE3)
428    }
429    #[doc = "Data input RMIID is selected"]
430    #[inline(always)]
431    pub fn value4(self) -> &'a mut crate::W<REG> {
432        self.variant(CLK_RMII_A::VALUE4)
433    }
434}
435#[doc = "CRS_DV input\n\nValue on reset: 0"]
436#[derive(Clone, Copy, Debug, PartialEq, Eq)]
437#[repr(u8)]
438pub enum CRS_DV_A {
439    #[doc = "0: Data input CRS_DVA is selected"]
440    VALUE1 = 0,
441    #[doc = "1: Data input CRS_DVB is selected"]
442    VALUE2 = 1,
443    #[doc = "2: Data input CRS_DVC is selected"]
444    VALUE3 = 2,
445    #[doc = "3: Data input CRS_DVD is selected"]
446    VALUE4 = 3,
447}
448impl From<CRS_DV_A> for u8 {
449    #[inline(always)]
450    fn from(variant: CRS_DV_A) -> Self {
451        variant as _
452    }
453}
454impl crate::FieldSpec for CRS_DV_A {
455    type Ux = u8;
456}
457impl crate::IsEnum for CRS_DV_A {}
458#[doc = "Field `CRS_DV` reader - CRS_DV input"]
459pub type CRS_DV_R = crate::FieldReader<CRS_DV_A>;
460impl CRS_DV_R {
461    #[doc = "Get enumerated values variant"]
462    #[inline(always)]
463    pub const fn variant(&self) -> CRS_DV_A {
464        match self.bits {
465            0 => CRS_DV_A::VALUE1,
466            1 => CRS_DV_A::VALUE2,
467            2 => CRS_DV_A::VALUE3,
468            3 => CRS_DV_A::VALUE4,
469            _ => unreachable!(),
470        }
471    }
472    #[doc = "Data input CRS_DVA is selected"]
473    #[inline(always)]
474    pub fn is_value1(&self) -> bool {
475        *self == CRS_DV_A::VALUE1
476    }
477    #[doc = "Data input CRS_DVB is selected"]
478    #[inline(always)]
479    pub fn is_value2(&self) -> bool {
480        *self == CRS_DV_A::VALUE2
481    }
482    #[doc = "Data input CRS_DVC is selected"]
483    #[inline(always)]
484    pub fn is_value3(&self) -> bool {
485        *self == CRS_DV_A::VALUE3
486    }
487    #[doc = "Data input CRS_DVD is selected"]
488    #[inline(always)]
489    pub fn is_value4(&self) -> bool {
490        *self == CRS_DV_A::VALUE4
491    }
492}
493#[doc = "Field `CRS_DV` writer - CRS_DV input"]
494pub type CRS_DV_W<'a, REG> = crate::FieldWriter<'a, REG, 2, CRS_DV_A, crate::Safe>;
495impl<'a, REG> CRS_DV_W<'a, REG>
496where
497    REG: crate::Writable + crate::RegisterSpec,
498    REG::Ux: From<u8>,
499{
500    #[doc = "Data input CRS_DVA is selected"]
501    #[inline(always)]
502    pub fn value1(self) -> &'a mut crate::W<REG> {
503        self.variant(CRS_DV_A::VALUE1)
504    }
505    #[doc = "Data input CRS_DVB is selected"]
506    #[inline(always)]
507    pub fn value2(self) -> &'a mut crate::W<REG> {
508        self.variant(CRS_DV_A::VALUE2)
509    }
510    #[doc = "Data input CRS_DVC is selected"]
511    #[inline(always)]
512    pub fn value3(self) -> &'a mut crate::W<REG> {
513        self.variant(CRS_DV_A::VALUE3)
514    }
515    #[doc = "Data input CRS_DVD is selected"]
516    #[inline(always)]
517    pub fn value4(self) -> &'a mut crate::W<REG> {
518        self.variant(CRS_DV_A::VALUE4)
519    }
520}
521#[doc = "CRS input\n\nValue on reset: 0"]
522#[derive(Clone, Copy, Debug, PartialEq, Eq)]
523#[repr(u8)]
524pub enum CRS_A {
525    #[doc = "0: Data input CRSA"]
526    VALUE1 = 0,
527    #[doc = "1: Data input CRSB"]
528    VALUE2 = 1,
529    #[doc = "2: Data input CRSC"]
530    VALUE3 = 2,
531    #[doc = "3: Data input CRSD"]
532    VALUE4 = 3,
533}
534impl From<CRS_A> for u8 {
535    #[inline(always)]
536    fn from(variant: CRS_A) -> Self {
537        variant as _
538    }
539}
540impl crate::FieldSpec for CRS_A {
541    type Ux = u8;
542}
543impl crate::IsEnum for CRS_A {}
544#[doc = "Field `CRS` reader - CRS input"]
545pub type CRS_R = crate::FieldReader<CRS_A>;
546impl CRS_R {
547    #[doc = "Get enumerated values variant"]
548    #[inline(always)]
549    pub const fn variant(&self) -> CRS_A {
550        match self.bits {
551            0 => CRS_A::VALUE1,
552            1 => CRS_A::VALUE2,
553            2 => CRS_A::VALUE3,
554            3 => CRS_A::VALUE4,
555            _ => unreachable!(),
556        }
557    }
558    #[doc = "Data input CRSA"]
559    #[inline(always)]
560    pub fn is_value1(&self) -> bool {
561        *self == CRS_A::VALUE1
562    }
563    #[doc = "Data input CRSB"]
564    #[inline(always)]
565    pub fn is_value2(&self) -> bool {
566        *self == CRS_A::VALUE2
567    }
568    #[doc = "Data input CRSC"]
569    #[inline(always)]
570    pub fn is_value3(&self) -> bool {
571        *self == CRS_A::VALUE3
572    }
573    #[doc = "Data input CRSD"]
574    #[inline(always)]
575    pub fn is_value4(&self) -> bool {
576        *self == CRS_A::VALUE4
577    }
578}
579#[doc = "Field `CRS` writer - CRS input"]
580pub type CRS_W<'a, REG> = crate::FieldWriter<'a, REG, 2, CRS_A, crate::Safe>;
581impl<'a, REG> CRS_W<'a, REG>
582where
583    REG: crate::Writable + crate::RegisterSpec,
584    REG::Ux: From<u8>,
585{
586    #[doc = "Data input CRSA"]
587    #[inline(always)]
588    pub fn value1(self) -> &'a mut crate::W<REG> {
589        self.variant(CRS_A::VALUE1)
590    }
591    #[doc = "Data input CRSB"]
592    #[inline(always)]
593    pub fn value2(self) -> &'a mut crate::W<REG> {
594        self.variant(CRS_A::VALUE2)
595    }
596    #[doc = "Data input CRSC"]
597    #[inline(always)]
598    pub fn value3(self) -> &'a mut crate::W<REG> {
599        self.variant(CRS_A::VALUE3)
600    }
601    #[doc = "Data input CRSD"]
602    #[inline(always)]
603    pub fn value4(self) -> &'a mut crate::W<REG> {
604        self.variant(CRS_A::VALUE4)
605    }
606}
607#[doc = "RXER Input\n\nValue on reset: 0"]
608#[derive(Clone, Copy, Debug, PartialEq, Eq)]
609#[repr(u8)]
610pub enum RXER_A {
611    #[doc = "0: Data input RXERA is selected"]
612    VALUE1 = 0,
613    #[doc = "1: Data input RXERB is selected"]
614    VALUE2 = 1,
615    #[doc = "2: Data input RXERC is selected"]
616    VALUE3 = 2,
617    #[doc = "3: Data input RXERD is selected"]
618    VALUE4 = 3,
619}
620impl From<RXER_A> for u8 {
621    #[inline(always)]
622    fn from(variant: RXER_A) -> Self {
623        variant as _
624    }
625}
626impl crate::FieldSpec for RXER_A {
627    type Ux = u8;
628}
629impl crate::IsEnum for RXER_A {}
630#[doc = "Field `RXER` reader - RXER Input"]
631pub type RXER_R = crate::FieldReader<RXER_A>;
632impl RXER_R {
633    #[doc = "Get enumerated values variant"]
634    #[inline(always)]
635    pub const fn variant(&self) -> RXER_A {
636        match self.bits {
637            0 => RXER_A::VALUE1,
638            1 => RXER_A::VALUE2,
639            2 => RXER_A::VALUE3,
640            3 => RXER_A::VALUE4,
641            _ => unreachable!(),
642        }
643    }
644    #[doc = "Data input RXERA is selected"]
645    #[inline(always)]
646    pub fn is_value1(&self) -> bool {
647        *self == RXER_A::VALUE1
648    }
649    #[doc = "Data input RXERB is selected"]
650    #[inline(always)]
651    pub fn is_value2(&self) -> bool {
652        *self == RXER_A::VALUE2
653    }
654    #[doc = "Data input RXERC is selected"]
655    #[inline(always)]
656    pub fn is_value3(&self) -> bool {
657        *self == RXER_A::VALUE3
658    }
659    #[doc = "Data input RXERD is selected"]
660    #[inline(always)]
661    pub fn is_value4(&self) -> bool {
662        *self == RXER_A::VALUE4
663    }
664}
665#[doc = "Field `RXER` writer - RXER Input"]
666pub type RXER_W<'a, REG> = crate::FieldWriter<'a, REG, 2, RXER_A, crate::Safe>;
667impl<'a, REG> RXER_W<'a, REG>
668where
669    REG: crate::Writable + crate::RegisterSpec,
670    REG::Ux: From<u8>,
671{
672    #[doc = "Data input RXERA is selected"]
673    #[inline(always)]
674    pub fn value1(self) -> &'a mut crate::W<REG> {
675        self.variant(RXER_A::VALUE1)
676    }
677    #[doc = "Data input RXERB is selected"]
678    #[inline(always)]
679    pub fn value2(self) -> &'a mut crate::W<REG> {
680        self.variant(RXER_A::VALUE2)
681    }
682    #[doc = "Data input RXERC is selected"]
683    #[inline(always)]
684    pub fn value3(self) -> &'a mut crate::W<REG> {
685        self.variant(RXER_A::VALUE3)
686    }
687    #[doc = "Data input RXERD is selected"]
688    #[inline(always)]
689    pub fn value4(self) -> &'a mut crate::W<REG> {
690        self.variant(RXER_A::VALUE4)
691    }
692}
693#[doc = "COL input\n\nValue on reset: 0"]
694#[derive(Clone, Copy, Debug, PartialEq, Eq)]
695#[repr(u8)]
696pub enum COL_A {
697    #[doc = "0: Data input COLA is selected"]
698    VALUE1 = 0,
699    #[doc = "1: Data input COLB is selected"]
700    VALUE2 = 1,
701    #[doc = "2: Data input COLC is selected"]
702    VALUE3 = 2,
703    #[doc = "3: Data input COLD is selected"]
704    VALUE4 = 3,
705}
706impl From<COL_A> for u8 {
707    #[inline(always)]
708    fn from(variant: COL_A) -> Self {
709        variant as _
710    }
711}
712impl crate::FieldSpec for COL_A {
713    type Ux = u8;
714}
715impl crate::IsEnum for COL_A {}
716#[doc = "Field `COL` reader - COL input"]
717pub type COL_R = crate::FieldReader<COL_A>;
718impl COL_R {
719    #[doc = "Get enumerated values variant"]
720    #[inline(always)]
721    pub const fn variant(&self) -> COL_A {
722        match self.bits {
723            0 => COL_A::VALUE1,
724            1 => COL_A::VALUE2,
725            2 => COL_A::VALUE3,
726            3 => COL_A::VALUE4,
727            _ => unreachable!(),
728        }
729    }
730    #[doc = "Data input COLA is selected"]
731    #[inline(always)]
732    pub fn is_value1(&self) -> bool {
733        *self == COL_A::VALUE1
734    }
735    #[doc = "Data input COLB is selected"]
736    #[inline(always)]
737    pub fn is_value2(&self) -> bool {
738        *self == COL_A::VALUE2
739    }
740    #[doc = "Data input COLC is selected"]
741    #[inline(always)]
742    pub fn is_value3(&self) -> bool {
743        *self == COL_A::VALUE3
744    }
745    #[doc = "Data input COLD is selected"]
746    #[inline(always)]
747    pub fn is_value4(&self) -> bool {
748        *self == COL_A::VALUE4
749    }
750}
751#[doc = "Field `COL` writer - COL input"]
752pub type COL_W<'a, REG> = crate::FieldWriter<'a, REG, 2, COL_A, crate::Safe>;
753impl<'a, REG> COL_W<'a, REG>
754where
755    REG: crate::Writable + crate::RegisterSpec,
756    REG::Ux: From<u8>,
757{
758    #[doc = "Data input COLA is selected"]
759    #[inline(always)]
760    pub fn value1(self) -> &'a mut crate::W<REG> {
761        self.variant(COL_A::VALUE1)
762    }
763    #[doc = "Data input COLB is selected"]
764    #[inline(always)]
765    pub fn value2(self) -> &'a mut crate::W<REG> {
766        self.variant(COL_A::VALUE2)
767    }
768    #[doc = "Data input COLC is selected"]
769    #[inline(always)]
770    pub fn value3(self) -> &'a mut crate::W<REG> {
771        self.variant(COL_A::VALUE3)
772    }
773    #[doc = "Data input COLD is selected"]
774    #[inline(always)]
775    pub fn value4(self) -> &'a mut crate::W<REG> {
776        self.variant(COL_A::VALUE4)
777    }
778}
779#[doc = "CLK_TX input\n\nValue on reset: 0"]
780#[derive(Clone, Copy, Debug, PartialEq, Eq)]
781#[repr(u8)]
782pub enum CLK_TX_A {
783    #[doc = "0: Data input CLK_TXA is selected"]
784    VALUE1 = 0,
785    #[doc = "1: Data input CLK_TXB is selected"]
786    VALUE2 = 1,
787    #[doc = "2: Data input CLK_TXC is selected"]
788    VALUE3 = 2,
789    #[doc = "3: Data input CLK_TXD is selected"]
790    VALUE4 = 3,
791}
792impl From<CLK_TX_A> for u8 {
793    #[inline(always)]
794    fn from(variant: CLK_TX_A) -> Self {
795        variant as _
796    }
797}
798impl crate::FieldSpec for CLK_TX_A {
799    type Ux = u8;
800}
801impl crate::IsEnum for CLK_TX_A {}
802#[doc = "Field `CLK_TX` reader - CLK_TX input"]
803pub type CLK_TX_R = crate::FieldReader<CLK_TX_A>;
804impl CLK_TX_R {
805    #[doc = "Get enumerated values variant"]
806    #[inline(always)]
807    pub const fn variant(&self) -> CLK_TX_A {
808        match self.bits {
809            0 => CLK_TX_A::VALUE1,
810            1 => CLK_TX_A::VALUE2,
811            2 => CLK_TX_A::VALUE3,
812            3 => CLK_TX_A::VALUE4,
813            _ => unreachable!(),
814        }
815    }
816    #[doc = "Data input CLK_TXA is selected"]
817    #[inline(always)]
818    pub fn is_value1(&self) -> bool {
819        *self == CLK_TX_A::VALUE1
820    }
821    #[doc = "Data input CLK_TXB is selected"]
822    #[inline(always)]
823    pub fn is_value2(&self) -> bool {
824        *self == CLK_TX_A::VALUE2
825    }
826    #[doc = "Data input CLK_TXC is selected"]
827    #[inline(always)]
828    pub fn is_value3(&self) -> bool {
829        *self == CLK_TX_A::VALUE3
830    }
831    #[doc = "Data input CLK_TXD is selected"]
832    #[inline(always)]
833    pub fn is_value4(&self) -> bool {
834        *self == CLK_TX_A::VALUE4
835    }
836}
837#[doc = "Field `CLK_TX` writer - CLK_TX input"]
838pub type CLK_TX_W<'a, REG> = crate::FieldWriter<'a, REG, 2, CLK_TX_A, crate::Safe>;
839impl<'a, REG> CLK_TX_W<'a, REG>
840where
841    REG: crate::Writable + crate::RegisterSpec,
842    REG::Ux: From<u8>,
843{
844    #[doc = "Data input CLK_TXA is selected"]
845    #[inline(always)]
846    pub fn value1(self) -> &'a mut crate::W<REG> {
847        self.variant(CLK_TX_A::VALUE1)
848    }
849    #[doc = "Data input CLK_TXB is selected"]
850    #[inline(always)]
851    pub fn value2(self) -> &'a mut crate::W<REG> {
852        self.variant(CLK_TX_A::VALUE2)
853    }
854    #[doc = "Data input CLK_TXC is selected"]
855    #[inline(always)]
856    pub fn value3(self) -> &'a mut crate::W<REG> {
857        self.variant(CLK_TX_A::VALUE3)
858    }
859    #[doc = "Data input CLK_TXD is selected"]
860    #[inline(always)]
861    pub fn value4(self) -> &'a mut crate::W<REG> {
862        self.variant(CLK_TX_A::VALUE4)
863    }
864}
865#[doc = "MDIO Input Select\n\nValue on reset: 0"]
866#[derive(Clone, Copy, Debug, PartialEq, Eq)]
867#[repr(u8)]
868pub enum MDIO_A {
869    #[doc = "0: Data input MDIA is selected"]
870    VALUE1 = 0,
871    #[doc = "1: Data input MDIB is selected"]
872    VALUE2 = 1,
873    #[doc = "2: Data input MDIC is selected"]
874    VALUE3 = 2,
875    #[doc = "3: Data input MDID is selected"]
876    VALUE4 = 3,
877}
878impl From<MDIO_A> for u8 {
879    #[inline(always)]
880    fn from(variant: MDIO_A) -> Self {
881        variant as _
882    }
883}
884impl crate::FieldSpec for MDIO_A {
885    type Ux = u8;
886}
887impl crate::IsEnum for MDIO_A {}
888#[doc = "Field `MDIO` reader - MDIO Input Select"]
889pub type MDIO_R = crate::FieldReader<MDIO_A>;
890impl MDIO_R {
891    #[doc = "Get enumerated values variant"]
892    #[inline(always)]
893    pub const fn variant(&self) -> MDIO_A {
894        match self.bits {
895            0 => MDIO_A::VALUE1,
896            1 => MDIO_A::VALUE2,
897            2 => MDIO_A::VALUE3,
898            3 => MDIO_A::VALUE4,
899            _ => unreachable!(),
900        }
901    }
902    #[doc = "Data input MDIA is selected"]
903    #[inline(always)]
904    pub fn is_value1(&self) -> bool {
905        *self == MDIO_A::VALUE1
906    }
907    #[doc = "Data input MDIB is selected"]
908    #[inline(always)]
909    pub fn is_value2(&self) -> bool {
910        *self == MDIO_A::VALUE2
911    }
912    #[doc = "Data input MDIC is selected"]
913    #[inline(always)]
914    pub fn is_value3(&self) -> bool {
915        *self == MDIO_A::VALUE3
916    }
917    #[doc = "Data input MDID is selected"]
918    #[inline(always)]
919    pub fn is_value4(&self) -> bool {
920        *self == MDIO_A::VALUE4
921    }
922}
923#[doc = "Field `MDIO` writer - MDIO Input Select"]
924pub type MDIO_W<'a, REG> = crate::FieldWriter<'a, REG, 2, MDIO_A, crate::Safe>;
925impl<'a, REG> MDIO_W<'a, REG>
926where
927    REG: crate::Writable + crate::RegisterSpec,
928    REG::Ux: From<u8>,
929{
930    #[doc = "Data input MDIA is selected"]
931    #[inline(always)]
932    pub fn value1(self) -> &'a mut crate::W<REG> {
933        self.variant(MDIO_A::VALUE1)
934    }
935    #[doc = "Data input MDIB is selected"]
936    #[inline(always)]
937    pub fn value2(self) -> &'a mut crate::W<REG> {
938        self.variant(MDIO_A::VALUE2)
939    }
940    #[doc = "Data input MDIC is selected"]
941    #[inline(always)]
942    pub fn value3(self) -> &'a mut crate::W<REG> {
943        self.variant(MDIO_A::VALUE3)
944    }
945    #[doc = "Data input MDID is selected"]
946    #[inline(always)]
947    pub fn value4(self) -> &'a mut crate::W<REG> {
948        self.variant(MDIO_A::VALUE4)
949    }
950}
951#[doc = "Ethernet MAC Interface Selection\n\nValue on reset: 0"]
952#[derive(Clone, Copy, Debug, PartialEq, Eq)]
953pub enum INFSEL_A {
954    #[doc = "0: MII"]
955    VALUE1 = 0,
956    #[doc = "1: RMII"]
957    VALUE2 = 1,
958}
959impl From<INFSEL_A> for bool {
960    #[inline(always)]
961    fn from(variant: INFSEL_A) -> Self {
962        variant as u8 != 0
963    }
964}
965#[doc = "Field `INFSEL` reader - Ethernet MAC Interface Selection"]
966pub type INFSEL_R = crate::BitReader<INFSEL_A>;
967impl INFSEL_R {
968    #[doc = "Get enumerated values variant"]
969    #[inline(always)]
970    pub const fn variant(&self) -> INFSEL_A {
971        match self.bits {
972            false => INFSEL_A::VALUE1,
973            true => INFSEL_A::VALUE2,
974        }
975    }
976    #[doc = "MII"]
977    #[inline(always)]
978    pub fn is_value1(&self) -> bool {
979        *self == INFSEL_A::VALUE1
980    }
981    #[doc = "RMII"]
982    #[inline(always)]
983    pub fn is_value2(&self) -> bool {
984        *self == INFSEL_A::VALUE2
985    }
986}
987#[doc = "Field `INFSEL` writer - Ethernet MAC Interface Selection"]
988pub type INFSEL_W<'a, REG> = crate::BitWriter<'a, REG, INFSEL_A>;
989impl<'a, REG> INFSEL_W<'a, REG>
990where
991    REG: crate::Writable + crate::RegisterSpec,
992{
993    #[doc = "MII"]
994    #[inline(always)]
995    pub fn value1(self) -> &'a mut crate::W<REG> {
996        self.variant(INFSEL_A::VALUE1)
997    }
998    #[doc = "RMII"]
999    #[inline(always)]
1000    pub fn value2(self) -> &'a mut crate::W<REG> {
1001        self.variant(INFSEL_A::VALUE2)
1002    }
1003}
1004impl R {
1005    #[doc = "Bits 0:1 - MAC Receive Input 0"]
1006    #[inline(always)]
1007    pub fn rxd0(&self) -> RXD0_R {
1008        RXD0_R::new((self.bits & 3) as u8)
1009    }
1010    #[doc = "Bits 2:3 - MAC Receive Input 1"]
1011    #[inline(always)]
1012    pub fn rxd1(&self) -> RXD1_R {
1013        RXD1_R::new(((self.bits >> 2) & 3) as u8)
1014    }
1015    #[doc = "Bits 4:5 - MAC Receive Input 2"]
1016    #[inline(always)]
1017    pub fn rxd2(&self) -> RXD2_R {
1018        RXD2_R::new(((self.bits >> 4) & 3) as u8)
1019    }
1020    #[doc = "Bits 6:7 - MAC Receive Input 3"]
1021    #[inline(always)]
1022    pub fn rxd3(&self) -> RXD3_R {
1023        RXD3_R::new(((self.bits >> 6) & 3) as u8)
1024    }
1025    #[doc = "Bits 8:9 - RMII clock input"]
1026    #[inline(always)]
1027    pub fn clk_rmii(&self) -> CLK_RMII_R {
1028        CLK_RMII_R::new(((self.bits >> 8) & 3) as u8)
1029    }
1030    #[doc = "Bits 10:11 - CRS_DV input"]
1031    #[inline(always)]
1032    pub fn crs_dv(&self) -> CRS_DV_R {
1033        CRS_DV_R::new(((self.bits >> 10) & 3) as u8)
1034    }
1035    #[doc = "Bits 12:13 - CRS input"]
1036    #[inline(always)]
1037    pub fn crs(&self) -> CRS_R {
1038        CRS_R::new(((self.bits >> 12) & 3) as u8)
1039    }
1040    #[doc = "Bits 14:15 - RXER Input"]
1041    #[inline(always)]
1042    pub fn rxer(&self) -> RXER_R {
1043        RXER_R::new(((self.bits >> 14) & 3) as u8)
1044    }
1045    #[doc = "Bits 16:17 - COL input"]
1046    #[inline(always)]
1047    pub fn col(&self) -> COL_R {
1048        COL_R::new(((self.bits >> 16) & 3) as u8)
1049    }
1050    #[doc = "Bits 18:19 - CLK_TX input"]
1051    #[inline(always)]
1052    pub fn clk_tx(&self) -> CLK_TX_R {
1053        CLK_TX_R::new(((self.bits >> 18) & 3) as u8)
1054    }
1055    #[doc = "Bits 22:23 - MDIO Input Select"]
1056    #[inline(always)]
1057    pub fn mdio(&self) -> MDIO_R {
1058        MDIO_R::new(((self.bits >> 22) & 3) as u8)
1059    }
1060    #[doc = "Bit 26 - Ethernet MAC Interface Selection"]
1061    #[inline(always)]
1062    pub fn infsel(&self) -> INFSEL_R {
1063        INFSEL_R::new(((self.bits >> 26) & 1) != 0)
1064    }
1065}
1066impl W {
1067    #[doc = "Bits 0:1 - MAC Receive Input 0"]
1068    #[inline(always)]
1069    pub fn rxd0(&mut self) -> RXD0_W<ETH0_CON_SPEC> {
1070        RXD0_W::new(self, 0)
1071    }
1072    #[doc = "Bits 2:3 - MAC Receive Input 1"]
1073    #[inline(always)]
1074    pub fn rxd1(&mut self) -> RXD1_W<ETH0_CON_SPEC> {
1075        RXD1_W::new(self, 2)
1076    }
1077    #[doc = "Bits 4:5 - MAC Receive Input 2"]
1078    #[inline(always)]
1079    pub fn rxd2(&mut self) -> RXD2_W<ETH0_CON_SPEC> {
1080        RXD2_W::new(self, 4)
1081    }
1082    #[doc = "Bits 6:7 - MAC Receive Input 3"]
1083    #[inline(always)]
1084    pub fn rxd3(&mut self) -> RXD3_W<ETH0_CON_SPEC> {
1085        RXD3_W::new(self, 6)
1086    }
1087    #[doc = "Bits 8:9 - RMII clock input"]
1088    #[inline(always)]
1089    pub fn clk_rmii(&mut self) -> CLK_RMII_W<ETH0_CON_SPEC> {
1090        CLK_RMII_W::new(self, 8)
1091    }
1092    #[doc = "Bits 10:11 - CRS_DV input"]
1093    #[inline(always)]
1094    pub fn crs_dv(&mut self) -> CRS_DV_W<ETH0_CON_SPEC> {
1095        CRS_DV_W::new(self, 10)
1096    }
1097    #[doc = "Bits 12:13 - CRS input"]
1098    #[inline(always)]
1099    pub fn crs(&mut self) -> CRS_W<ETH0_CON_SPEC> {
1100        CRS_W::new(self, 12)
1101    }
1102    #[doc = "Bits 14:15 - RXER Input"]
1103    #[inline(always)]
1104    pub fn rxer(&mut self) -> RXER_W<ETH0_CON_SPEC> {
1105        RXER_W::new(self, 14)
1106    }
1107    #[doc = "Bits 16:17 - COL input"]
1108    #[inline(always)]
1109    pub fn col(&mut self) -> COL_W<ETH0_CON_SPEC> {
1110        COL_W::new(self, 16)
1111    }
1112    #[doc = "Bits 18:19 - CLK_TX input"]
1113    #[inline(always)]
1114    pub fn clk_tx(&mut self) -> CLK_TX_W<ETH0_CON_SPEC> {
1115        CLK_TX_W::new(self, 18)
1116    }
1117    #[doc = "Bits 22:23 - MDIO Input Select"]
1118    #[inline(always)]
1119    pub fn mdio(&mut self) -> MDIO_W<ETH0_CON_SPEC> {
1120        MDIO_W::new(self, 22)
1121    }
1122    #[doc = "Bit 26 - Ethernet MAC Interface Selection"]
1123    #[inline(always)]
1124    pub fn infsel(&mut self) -> INFSEL_W<ETH0_CON_SPEC> {
1125        INFSEL_W::new(self, 26)
1126    }
1127}
1128#[doc = "Ethernet 0 Port Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`eth0_con::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`eth0_con::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
1129pub struct ETH0_CON_SPEC;
1130impl crate::RegisterSpec for ETH0_CON_SPEC {
1131    type Ux = u32;
1132}
1133#[doc = "`read()` method returns [`eth0_con::R`](R) reader structure"]
1134impl crate::Readable for ETH0_CON_SPEC {}
1135#[doc = "`write(|w| ..)` method takes [`eth0_con::W`](W) writer structure"]
1136impl crate::Writable for ETH0_CON_SPEC {
1137    type Safety = crate::Unsafe;
1138    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
1139    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
1140}
1141#[doc = "`reset()` method sets ETH0_CON to value 0"]
1142impl crate::Resettable for ETH0_CON_SPEC {
1143    const RESET_VALUE: u32 = 0;
1144}