atsaml21e18b/usb/device/
status.rs1#[doc = "Register `STATUS` reader"]
2pub struct R(crate::R<STATUS_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<STATUS_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<STATUS_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<STATUS_SPEC>) -> Self {
13 R(reader)
14 }
15}
16#[doc = "Field `SPEED` reader - Speed Status"]
17pub type SPEED_R = crate::FieldReader<u8, SPEEDSELECT_A>;
18#[doc = "Speed Status\n\nValue on reset: 0"]
19#[derive(Clone, Copy, Debug, PartialEq, Eq)]
20#[repr(u8)]
21pub enum SPEEDSELECT_A {
22 #[doc = "0: Full-speed mode"]
23 FS = 0,
24 #[doc = "1: High-speed mode"]
25 HS = 1,
26 #[doc = "2: Low-speed mode"]
27 LS = 2,
28}
29impl From<SPEEDSELECT_A> for u8 {
30 #[inline(always)]
31 fn from(variant: SPEEDSELECT_A) -> Self {
32 variant as _
33 }
34}
35impl SPEED_R {
36 #[doc = "Get enumerated values variant"]
37 #[inline(always)]
38 pub fn variant(&self) -> Option<SPEEDSELECT_A> {
39 match self.bits {
40 0 => Some(SPEEDSELECT_A::FS),
41 1 => Some(SPEEDSELECT_A::HS),
42 2 => Some(SPEEDSELECT_A::LS),
43 _ => None,
44 }
45 }
46 #[doc = "Checks if the value of the field is `FS`"]
47 #[inline(always)]
48 pub fn is_fs(&self) -> bool {
49 *self == SPEEDSELECT_A::FS
50 }
51 #[doc = "Checks if the value of the field is `HS`"]
52 #[inline(always)]
53 pub fn is_hs(&self) -> bool {
54 *self == SPEEDSELECT_A::HS
55 }
56 #[doc = "Checks if the value of the field is `LS`"]
57 #[inline(always)]
58 pub fn is_ls(&self) -> bool {
59 *self == SPEEDSELECT_A::LS
60 }
61}
62#[doc = "Field `LINESTATE` reader - USB Line State Status"]
63pub type LINESTATE_R = crate::FieldReader<u8, LINESTATESELECT_A>;
64#[doc = "USB Line State Status\n\nValue on reset: 1"]
65#[derive(Clone, Copy, Debug, PartialEq, Eq)]
66#[repr(u8)]
67pub enum LINESTATESELECT_A {
68 #[doc = "0: SE0/RESET"]
69 _0 = 0,
70 #[doc = "1: FS-J or LS-K State"]
71 _1 = 1,
72 #[doc = "2: FS-K or LS-J State"]
73 _2 = 2,
74}
75impl From<LINESTATESELECT_A> for u8 {
76 #[inline(always)]
77 fn from(variant: LINESTATESELECT_A) -> Self {
78 variant as _
79 }
80}
81impl LINESTATE_R {
82 #[doc = "Get enumerated values variant"]
83 #[inline(always)]
84 pub fn variant(&self) -> Option<LINESTATESELECT_A> {
85 match self.bits {
86 0 => Some(LINESTATESELECT_A::_0),
87 1 => Some(LINESTATESELECT_A::_1),
88 2 => Some(LINESTATESELECT_A::_2),
89 _ => None,
90 }
91 }
92 #[doc = "Checks if the value of the field is `_0`"]
93 #[inline(always)]
94 pub fn is_0(&self) -> bool {
95 *self == LINESTATESELECT_A::_0
96 }
97 #[doc = "Checks if the value of the field is `_1`"]
98 #[inline(always)]
99 pub fn is_1(&self) -> bool {
100 *self == LINESTATESELECT_A::_1
101 }
102 #[doc = "Checks if the value of the field is `_2`"]
103 #[inline(always)]
104 pub fn is_2(&self) -> bool {
105 *self == LINESTATESELECT_A::_2
106 }
107}
108impl R {
109 #[doc = "Bits 2:3 - Speed Status"]
110 #[inline(always)]
111 pub fn speed(&self) -> SPEED_R {
112 SPEED_R::new((self.bits >> 2) & 3)
113 }
114 #[doc = "Bits 6:7 - USB Line State Status"]
115 #[inline(always)]
116 pub fn linestate(&self) -> LINESTATE_R {
117 LINESTATE_R::new((self.bits >> 6) & 3)
118 }
119}
120#[doc = "DEVICE Status\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [status](index.html) module"]
121pub struct STATUS_SPEC;
122impl crate::RegisterSpec for STATUS_SPEC {
123 type Ux = u8;
124}
125#[doc = "`read()` method returns [status::R](R) reader structure"]
126impl crate::Readable for STATUS_SPEC {
127 type Reader = R;
128}
129#[doc = "`reset()` method sets STATUS to value 0x40"]
130impl crate::Resettable for STATUS_SPEC {
131 const RESET_VALUE: Self::Ux = 0x40;
132}