efm32gg11b120_pac/can1/
route.rs

1#[doc = "Register `ROUTE` reader"]
2pub struct R(crate::R<ROUTE_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<ROUTE_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<ROUTE_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<ROUTE_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `ROUTE` writer"]
17pub struct W(crate::W<ROUTE_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<ROUTE_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<ROUTE_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<ROUTE_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Field `TXPEN` reader - TX Pin Enable"]
38pub type TXPEN_R = crate::BitReader<bool>;
39#[doc = "Field `TXPEN` writer - TX Pin Enable"]
40pub type TXPEN_W<'a> = crate::BitWriter<'a, u32, ROUTE_SPEC, bool, 0>;
41#[doc = "RX Pin Location\n\nValue on reset: 0"]
42#[derive(Clone, Copy, Debug, PartialEq)]
43#[repr(u8)]
44pub enum RXLOC_A {
45    #[doc = "0: Location 0"]
46    LOC0 = 0,
47    #[doc = "1: Location 1"]
48    LOC1 = 1,
49    #[doc = "2: Location 2"]
50    LOC2 = 2,
51    #[doc = "3: Location 3"]
52    LOC3 = 3,
53    #[doc = "4: Location 4"]
54    LOC4 = 4,
55    #[doc = "5: Location 5"]
56    LOC5 = 5,
57    #[doc = "6: Location 6"]
58    LOC6 = 6,
59    #[doc = "7: Location 7"]
60    LOC7 = 7,
61}
62impl From<RXLOC_A> for u8 {
63    #[inline(always)]
64    fn from(variant: RXLOC_A) -> Self {
65        variant as _
66    }
67}
68#[doc = "Field `RXLOC` reader - RX Pin Location"]
69pub type RXLOC_R = crate::FieldReader<u8, RXLOC_A>;
70impl RXLOC_R {
71    #[doc = "Get enumerated values variant"]
72    #[inline(always)]
73    pub fn variant(&self) -> Option<RXLOC_A> {
74        match self.bits {
75            0 => Some(RXLOC_A::LOC0),
76            1 => Some(RXLOC_A::LOC1),
77            2 => Some(RXLOC_A::LOC2),
78            3 => Some(RXLOC_A::LOC3),
79            4 => Some(RXLOC_A::LOC4),
80            5 => Some(RXLOC_A::LOC5),
81            6 => Some(RXLOC_A::LOC6),
82            7 => Some(RXLOC_A::LOC7),
83            _ => None,
84        }
85    }
86    #[doc = "Checks if the value of the field is `LOC0`"]
87    #[inline(always)]
88    pub fn is_loc0(&self) -> bool {
89        *self == RXLOC_A::LOC0
90    }
91    #[doc = "Checks if the value of the field is `LOC1`"]
92    #[inline(always)]
93    pub fn is_loc1(&self) -> bool {
94        *self == RXLOC_A::LOC1
95    }
96    #[doc = "Checks if the value of the field is `LOC2`"]
97    #[inline(always)]
98    pub fn is_loc2(&self) -> bool {
99        *self == RXLOC_A::LOC2
100    }
101    #[doc = "Checks if the value of the field is `LOC3`"]
102    #[inline(always)]
103    pub fn is_loc3(&self) -> bool {
104        *self == RXLOC_A::LOC3
105    }
106    #[doc = "Checks if the value of the field is `LOC4`"]
107    #[inline(always)]
108    pub fn is_loc4(&self) -> bool {
109        *self == RXLOC_A::LOC4
110    }
111    #[doc = "Checks if the value of the field is `LOC5`"]
112    #[inline(always)]
113    pub fn is_loc5(&self) -> bool {
114        *self == RXLOC_A::LOC5
115    }
116    #[doc = "Checks if the value of the field is `LOC6`"]
117    #[inline(always)]
118    pub fn is_loc6(&self) -> bool {
119        *self == RXLOC_A::LOC6
120    }
121    #[doc = "Checks if the value of the field is `LOC7`"]
122    #[inline(always)]
123    pub fn is_loc7(&self) -> bool {
124        *self == RXLOC_A::LOC7
125    }
126}
127#[doc = "Field `RXLOC` writer - RX Pin Location"]
128pub type RXLOC_W<'a> = crate::FieldWriter<'a, u32, ROUTE_SPEC, u8, RXLOC_A, 6, 2>;
129impl<'a> RXLOC_W<'a> {
130    #[doc = "Location 0"]
131    #[inline(always)]
132    pub fn loc0(self) -> &'a mut W {
133        self.variant(RXLOC_A::LOC0)
134    }
135    #[doc = "Location 1"]
136    #[inline(always)]
137    pub fn loc1(self) -> &'a mut W {
138        self.variant(RXLOC_A::LOC1)
139    }
140    #[doc = "Location 2"]
141    #[inline(always)]
142    pub fn loc2(self) -> &'a mut W {
143        self.variant(RXLOC_A::LOC2)
144    }
145    #[doc = "Location 3"]
146    #[inline(always)]
147    pub fn loc3(self) -> &'a mut W {
148        self.variant(RXLOC_A::LOC3)
149    }
150    #[doc = "Location 4"]
151    #[inline(always)]
152    pub fn loc4(self) -> &'a mut W {
153        self.variant(RXLOC_A::LOC4)
154    }
155    #[doc = "Location 5"]
156    #[inline(always)]
157    pub fn loc5(self) -> &'a mut W {
158        self.variant(RXLOC_A::LOC5)
159    }
160    #[doc = "Location 6"]
161    #[inline(always)]
162    pub fn loc6(self) -> &'a mut W {
163        self.variant(RXLOC_A::LOC6)
164    }
165    #[doc = "Location 7"]
166    #[inline(always)]
167    pub fn loc7(self) -> &'a mut W {
168        self.variant(RXLOC_A::LOC7)
169    }
170}
171#[doc = "TX Pin Location\n\nValue on reset: 0"]
172#[derive(Clone, Copy, Debug, PartialEq)]
173#[repr(u8)]
174pub enum TXLOC_A {
175    #[doc = "0: Location 0"]
176    LOC0 = 0,
177    #[doc = "1: Location 1"]
178    LOC1 = 1,
179    #[doc = "2: Location 2"]
180    LOC2 = 2,
181    #[doc = "3: Location 3"]
182    LOC3 = 3,
183    #[doc = "4: Location 4"]
184    LOC4 = 4,
185    #[doc = "5: Location 5"]
186    LOC5 = 5,
187    #[doc = "6: Location 6"]
188    LOC6 = 6,
189    #[doc = "7: Location 7"]
190    LOC7 = 7,
191}
192impl From<TXLOC_A> for u8 {
193    #[inline(always)]
194    fn from(variant: TXLOC_A) -> Self {
195        variant as _
196    }
197}
198#[doc = "Field `TXLOC` reader - TX Pin Location"]
199pub type TXLOC_R = crate::FieldReader<u8, TXLOC_A>;
200impl TXLOC_R {
201    #[doc = "Get enumerated values variant"]
202    #[inline(always)]
203    pub fn variant(&self) -> Option<TXLOC_A> {
204        match self.bits {
205            0 => Some(TXLOC_A::LOC0),
206            1 => Some(TXLOC_A::LOC1),
207            2 => Some(TXLOC_A::LOC2),
208            3 => Some(TXLOC_A::LOC3),
209            4 => Some(TXLOC_A::LOC4),
210            5 => Some(TXLOC_A::LOC5),
211            6 => Some(TXLOC_A::LOC6),
212            7 => Some(TXLOC_A::LOC7),
213            _ => None,
214        }
215    }
216    #[doc = "Checks if the value of the field is `LOC0`"]
217    #[inline(always)]
218    pub fn is_loc0(&self) -> bool {
219        *self == TXLOC_A::LOC0
220    }
221    #[doc = "Checks if the value of the field is `LOC1`"]
222    #[inline(always)]
223    pub fn is_loc1(&self) -> bool {
224        *self == TXLOC_A::LOC1
225    }
226    #[doc = "Checks if the value of the field is `LOC2`"]
227    #[inline(always)]
228    pub fn is_loc2(&self) -> bool {
229        *self == TXLOC_A::LOC2
230    }
231    #[doc = "Checks if the value of the field is `LOC3`"]
232    #[inline(always)]
233    pub fn is_loc3(&self) -> bool {
234        *self == TXLOC_A::LOC3
235    }
236    #[doc = "Checks if the value of the field is `LOC4`"]
237    #[inline(always)]
238    pub fn is_loc4(&self) -> bool {
239        *self == TXLOC_A::LOC4
240    }
241    #[doc = "Checks if the value of the field is `LOC5`"]
242    #[inline(always)]
243    pub fn is_loc5(&self) -> bool {
244        *self == TXLOC_A::LOC5
245    }
246    #[doc = "Checks if the value of the field is `LOC6`"]
247    #[inline(always)]
248    pub fn is_loc6(&self) -> bool {
249        *self == TXLOC_A::LOC6
250    }
251    #[doc = "Checks if the value of the field is `LOC7`"]
252    #[inline(always)]
253    pub fn is_loc7(&self) -> bool {
254        *self == TXLOC_A::LOC7
255    }
256}
257#[doc = "Field `TXLOC` writer - TX Pin Location"]
258pub type TXLOC_W<'a> = crate::FieldWriter<'a, u32, ROUTE_SPEC, u8, TXLOC_A, 6, 8>;
259impl<'a> TXLOC_W<'a> {
260    #[doc = "Location 0"]
261    #[inline(always)]
262    pub fn loc0(self) -> &'a mut W {
263        self.variant(TXLOC_A::LOC0)
264    }
265    #[doc = "Location 1"]
266    #[inline(always)]
267    pub fn loc1(self) -> &'a mut W {
268        self.variant(TXLOC_A::LOC1)
269    }
270    #[doc = "Location 2"]
271    #[inline(always)]
272    pub fn loc2(self) -> &'a mut W {
273        self.variant(TXLOC_A::LOC2)
274    }
275    #[doc = "Location 3"]
276    #[inline(always)]
277    pub fn loc3(self) -> &'a mut W {
278        self.variant(TXLOC_A::LOC3)
279    }
280    #[doc = "Location 4"]
281    #[inline(always)]
282    pub fn loc4(self) -> &'a mut W {
283        self.variant(TXLOC_A::LOC4)
284    }
285    #[doc = "Location 5"]
286    #[inline(always)]
287    pub fn loc5(self) -> &'a mut W {
288        self.variant(TXLOC_A::LOC5)
289    }
290    #[doc = "Location 6"]
291    #[inline(always)]
292    pub fn loc6(self) -> &'a mut W {
293        self.variant(TXLOC_A::LOC6)
294    }
295    #[doc = "Location 7"]
296    #[inline(always)]
297    pub fn loc7(self) -> &'a mut W {
298        self.variant(TXLOC_A::LOC7)
299    }
300}
301impl R {
302    #[doc = "Bit 0 - TX Pin Enable"]
303    #[inline(always)]
304    pub fn txpen(&self) -> TXPEN_R {
305        TXPEN_R::new((self.bits & 1) != 0)
306    }
307    #[doc = "Bits 2:7 - RX Pin Location"]
308    #[inline(always)]
309    pub fn rxloc(&self) -> RXLOC_R {
310        RXLOC_R::new(((self.bits >> 2) & 0x3f) as u8)
311    }
312    #[doc = "Bits 8:13 - TX Pin Location"]
313    #[inline(always)]
314    pub fn txloc(&self) -> TXLOC_R {
315        TXLOC_R::new(((self.bits >> 8) & 0x3f) as u8)
316    }
317}
318impl W {
319    #[doc = "Bit 0 - TX Pin Enable"]
320    #[inline(always)]
321    pub fn txpen(&mut self) -> TXPEN_W {
322        TXPEN_W::new(self)
323    }
324    #[doc = "Bits 2:7 - RX Pin Location"]
325    #[inline(always)]
326    pub fn rxloc(&mut self) -> RXLOC_W {
327        RXLOC_W::new(self)
328    }
329    #[doc = "Bits 8:13 - TX Pin Location"]
330    #[inline(always)]
331    pub fn txloc(&mut self) -> TXLOC_W {
332        TXLOC_W::new(self)
333    }
334    #[doc = "Writes raw bits to the register."]
335    #[inline(always)]
336    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
337        self.0.bits(bits);
338        self
339    }
340}
341#[doc = "I/O Routing 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 [route](index.html) module"]
342pub struct ROUTE_SPEC;
343impl crate::RegisterSpec for ROUTE_SPEC {
344    type Ux = u32;
345}
346#[doc = "`read()` method returns [route::R](R) reader structure"]
347impl crate::Readable for ROUTE_SPEC {
348    type Reader = R;
349}
350#[doc = "`write(|w| ..)` method takes [route::W](W) writer structure"]
351impl crate::Writable for ROUTE_SPEC {
352    type Writer = W;
353}
354#[doc = "`reset()` method sets ROUTE to value 0"]
355impl crate::Resettable for ROUTE_SPEC {
356    #[inline(always)]
357    fn reset_value() -> Self::Ux {
358        0
359    }
360}