efm32tg11b120_pac/can0/
route.rs1#[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}