atsaml21e18b/usb/device/
status.rs

1#[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}