1#[doc = "Register `GNPTXSTS` reader"]
2pub type R = crate::R<GNPTXSTS_SPEC>;
3#[doc = "Non-periodic TxFIFO Space Avail\n\nValue on reset: 16"]
4#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5#[repr(u16)]
6pub enum NPTX_FSPC_AVAIL_A {
7 #[doc = "0: Non-periodic TxFIFO is full"]
8 VALUE1 = 0,
9 #[doc = "1: 1 word available"]
10 VALUE2 = 1,
11 #[doc = "2: 2 words available"]
12 VALUE3 = 2,
13}
14impl From<NPTX_FSPC_AVAIL_A> for u16 {
15 #[inline(always)]
16 fn from(variant: NPTX_FSPC_AVAIL_A) -> Self {
17 variant as _
18 }
19}
20impl crate::FieldSpec for NPTX_FSPC_AVAIL_A {
21 type Ux = u16;
22}
23impl crate::IsEnum for NPTX_FSPC_AVAIL_A {}
24#[doc = "Field `NPTxFSpcAvail` reader - Non-periodic TxFIFO Space Avail"]
25pub type NPTX_FSPC_AVAIL_R = crate::FieldReader<NPTX_FSPC_AVAIL_A>;
26impl NPTX_FSPC_AVAIL_R {
27 #[doc = "Get enumerated values variant"]
28 #[inline(always)]
29 pub const fn variant(&self) -> Option<NPTX_FSPC_AVAIL_A> {
30 match self.bits {
31 0 => Some(NPTX_FSPC_AVAIL_A::VALUE1),
32 1 => Some(NPTX_FSPC_AVAIL_A::VALUE2),
33 2 => Some(NPTX_FSPC_AVAIL_A::VALUE3),
34 _ => None,
35 }
36 }
37 #[doc = "Non-periodic TxFIFO is full"]
38 #[inline(always)]
39 pub fn is_value1(&self) -> bool {
40 *self == NPTX_FSPC_AVAIL_A::VALUE1
41 }
42 #[doc = "1 word available"]
43 #[inline(always)]
44 pub fn is_value2(&self) -> bool {
45 *self == NPTX_FSPC_AVAIL_A::VALUE2
46 }
47 #[doc = "2 words available"]
48 #[inline(always)]
49 pub fn is_value3(&self) -> bool {
50 *self == NPTX_FSPC_AVAIL_A::VALUE3
51 }
52}
53#[doc = "Non-periodic Transmit Request Queue Space Available\n\nValue on reset: 8"]
54#[derive(Clone, Copy, Debug, PartialEq, Eq)]
55#[repr(u8)]
56pub enum NPTX_QSPC_AVAIL_A {
57 #[doc = "0: Non-periodic Transmit Request Queue is full"]
58 VALUE1 = 0,
59 #[doc = "1: 1 location available"]
60 VALUE2 = 1,
61 #[doc = "2: 2 locations available"]
62 VALUE3 = 2,
63}
64impl From<NPTX_QSPC_AVAIL_A> for u8 {
65 #[inline(always)]
66 fn from(variant: NPTX_QSPC_AVAIL_A) -> Self {
67 variant as _
68 }
69}
70impl crate::FieldSpec for NPTX_QSPC_AVAIL_A {
71 type Ux = u8;
72}
73impl crate::IsEnum for NPTX_QSPC_AVAIL_A {}
74#[doc = "Field `NPTxQSpcAvail` reader - Non-periodic Transmit Request Queue Space Available"]
75pub type NPTX_QSPC_AVAIL_R = crate::FieldReader<NPTX_QSPC_AVAIL_A>;
76impl NPTX_QSPC_AVAIL_R {
77 #[doc = "Get enumerated values variant"]
78 #[inline(always)]
79 pub const fn variant(&self) -> Option<NPTX_QSPC_AVAIL_A> {
80 match self.bits {
81 0 => Some(NPTX_QSPC_AVAIL_A::VALUE1),
82 1 => Some(NPTX_QSPC_AVAIL_A::VALUE2),
83 2 => Some(NPTX_QSPC_AVAIL_A::VALUE3),
84 _ => None,
85 }
86 }
87 #[doc = "Non-periodic Transmit Request Queue is full"]
88 #[inline(always)]
89 pub fn is_value1(&self) -> bool {
90 *self == NPTX_QSPC_AVAIL_A::VALUE1
91 }
92 #[doc = "1 location available"]
93 #[inline(always)]
94 pub fn is_value2(&self) -> bool {
95 *self == NPTX_QSPC_AVAIL_A::VALUE2
96 }
97 #[doc = "2 locations available"]
98 #[inline(always)]
99 pub fn is_value3(&self) -> bool {
100 *self == NPTX_QSPC_AVAIL_A::VALUE3
101 }
102}
103#[doc = "Top of the Non-periodic Transmit Request Queue\n\nValue on reset: 0"]
104#[derive(Clone, Copy, Debug, PartialEq, Eq)]
105#[repr(u8)]
106pub enum NPTX_QTOP_A {
107 #[doc = "0: IN/OUT token"]
108 VALUE1 = 0,
109 #[doc = "1: Zero-length transmit packet (device IN/host OUT)"]
110 VALUE2 = 1,
111 #[doc = "3: Channel halt command"]
112 VALUE4 = 3,
113}
114impl From<NPTX_QTOP_A> for u8 {
115 #[inline(always)]
116 fn from(variant: NPTX_QTOP_A) -> Self {
117 variant as _
118 }
119}
120impl crate::FieldSpec for NPTX_QTOP_A {
121 type Ux = u8;
122}
123impl crate::IsEnum for NPTX_QTOP_A {}
124#[doc = "Field `NPTxQTop` reader - Top of the Non-periodic Transmit Request Queue"]
125pub type NPTX_QTOP_R = crate::FieldReader<NPTX_QTOP_A>;
126impl NPTX_QTOP_R {
127 #[doc = "Get enumerated values variant"]
128 #[inline(always)]
129 pub const fn variant(&self) -> Option<NPTX_QTOP_A> {
130 match self.bits {
131 0 => Some(NPTX_QTOP_A::VALUE1),
132 1 => Some(NPTX_QTOP_A::VALUE2),
133 3 => Some(NPTX_QTOP_A::VALUE4),
134 _ => None,
135 }
136 }
137 #[doc = "IN/OUT token"]
138 #[inline(always)]
139 pub fn is_value1(&self) -> bool {
140 *self == NPTX_QTOP_A::VALUE1
141 }
142 #[doc = "Zero-length transmit packet (device IN/host OUT)"]
143 #[inline(always)]
144 pub fn is_value2(&self) -> bool {
145 *self == NPTX_QTOP_A::VALUE2
146 }
147 #[doc = "Channel halt command"]
148 #[inline(always)]
149 pub fn is_value4(&self) -> bool {
150 *self == NPTX_QTOP_A::VALUE4
151 }
152}
153impl R {
154 #[doc = "Bits 0:15 - Non-periodic TxFIFO Space Avail"]
155 #[inline(always)]
156 pub fn nptx_fspc_avail(&self) -> NPTX_FSPC_AVAIL_R {
157 NPTX_FSPC_AVAIL_R::new((self.bits & 0xffff) as u16)
158 }
159 #[doc = "Bits 16:23 - Non-periodic Transmit Request Queue Space Available"]
160 #[inline(always)]
161 pub fn nptx_qspc_avail(&self) -> NPTX_QSPC_AVAIL_R {
162 NPTX_QSPC_AVAIL_R::new(((self.bits >> 16) & 0xff) as u8)
163 }
164 #[doc = "Bits 24:30 - Top of the Non-periodic Transmit Request Queue"]
165 #[inline(always)]
166 pub fn nptx_qtop(&self) -> NPTX_QTOP_R {
167 NPTX_QTOP_R::new(((self.bits >> 24) & 0x7f) as u8)
168 }
169}
170#[doc = "Non-Periodic Transmit FIFO/Queue Status Register\n\nYou can [`read`](crate::Reg::read) this register and get [`gnptxsts::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
171pub struct GNPTXSTS_SPEC;
172impl crate::RegisterSpec for GNPTXSTS_SPEC {
173 type Ux = u32;
174}
175#[doc = "`read()` method returns [`gnptxsts::R`](R) reader structure"]
176impl crate::Readable for GNPTXSTS_SPEC {}
177#[doc = "`reset()` method sets GNPTXSTS to value 0x0008_0010"]
178impl crate::Resettable for GNPTXSTS_SPEC {
179 const RESET_VALUE: u32 = 0x0008_0010;
180}