1#[doc = "Register `pe_cfg2` reader"]
2pub type R = crate::R<PE_CFG2_SPEC>;
3#[doc = "Register `pe_cfg2` writer"]
4pub type W = crate::W<PE_CFG2_SPEC>;
5#[doc = "Field `pe16_select` reader - PE16 Select"]
6pub type PE16_SELECT_R = crate::FieldReader<PE16_SELECT_A>;
7#[doc = "PE16 Select\n\nValue on reset: 0"]
8#[derive(Clone, Copy, Debug, PartialEq, Eq)]
9#[repr(u8)]
10pub enum PE16_SELECT_A {
11 #[doc = "0: `0`"]
12 INPUT = 0,
13 #[doc = "2: `10`"]
14 TWI3_SCK = 2,
15 #[doc = "4: `100`"]
16 PWM7 = 4,
17 #[doc = "6: `110`"]
18 DMIC_DATA0 = 6,
19 #[doc = "14: `1110`"]
20 PE_EINT16 = 14,
21 #[doc = "1: `1`"]
22 OUTPUT = 1,
23 #[doc = "3: `11`"]
24 D_JTAG_DO = 3,
25 #[doc = "5: `101`"]
26 I2S0_BCLK = 5,
27 #[doc = "15: `1111`"]
28 IO_DISABLE = 15,
29}
30impl From<PE16_SELECT_A> for u8 {
31 #[inline(always)]
32 fn from(variant: PE16_SELECT_A) -> Self {
33 variant as _
34 }
35}
36impl crate::FieldSpec for PE16_SELECT_A {
37 type Ux = u8;
38}
39impl PE16_SELECT_R {
40 #[doc = "Get enumerated values variant"]
41 #[inline(always)]
42 pub const fn variant(&self) -> Option<PE16_SELECT_A> {
43 match self.bits {
44 0 => Some(PE16_SELECT_A::INPUT),
45 2 => Some(PE16_SELECT_A::TWI3_SCK),
46 4 => Some(PE16_SELECT_A::PWM7),
47 6 => Some(PE16_SELECT_A::DMIC_DATA0),
48 14 => Some(PE16_SELECT_A::PE_EINT16),
49 1 => Some(PE16_SELECT_A::OUTPUT),
50 3 => Some(PE16_SELECT_A::D_JTAG_DO),
51 5 => Some(PE16_SELECT_A::I2S0_BCLK),
52 15 => Some(PE16_SELECT_A::IO_DISABLE),
53 _ => None,
54 }
55 }
56 #[doc = "`0`"]
57 #[inline(always)]
58 pub fn is_input(&self) -> bool {
59 *self == PE16_SELECT_A::INPUT
60 }
61 #[doc = "`10`"]
62 #[inline(always)]
63 pub fn is_twi3_sck(&self) -> bool {
64 *self == PE16_SELECT_A::TWI3_SCK
65 }
66 #[doc = "`100`"]
67 #[inline(always)]
68 pub fn is_pwm7(&self) -> bool {
69 *self == PE16_SELECT_A::PWM7
70 }
71 #[doc = "`110`"]
72 #[inline(always)]
73 pub fn is_dmic_data0(&self) -> bool {
74 *self == PE16_SELECT_A::DMIC_DATA0
75 }
76 #[doc = "`1110`"]
77 #[inline(always)]
78 pub fn is_pe_eint16(&self) -> bool {
79 *self == PE16_SELECT_A::PE_EINT16
80 }
81 #[doc = "`1`"]
82 #[inline(always)]
83 pub fn is_output(&self) -> bool {
84 *self == PE16_SELECT_A::OUTPUT
85 }
86 #[doc = "`11`"]
87 #[inline(always)]
88 pub fn is_d_jtag_do(&self) -> bool {
89 *self == PE16_SELECT_A::D_JTAG_DO
90 }
91 #[doc = "`101`"]
92 #[inline(always)]
93 pub fn is_i2s0_bclk(&self) -> bool {
94 *self == PE16_SELECT_A::I2S0_BCLK
95 }
96 #[doc = "`1111`"]
97 #[inline(always)]
98 pub fn is_io_disable(&self) -> bool {
99 *self == PE16_SELECT_A::IO_DISABLE
100 }
101}
102#[doc = "Field `pe16_select` writer - PE16 Select"]
103pub type PE16_SELECT_W<'a, REG> = crate::FieldWriter<'a, REG, 4, PE16_SELECT_A>;
104impl<'a, REG> PE16_SELECT_W<'a, REG>
105where
106 REG: crate::Writable + crate::RegisterSpec,
107 REG::Ux: From<u8>,
108{
109 #[doc = "`0`"]
110 #[inline(always)]
111 pub fn input(self) -> &'a mut crate::W<REG> {
112 self.variant(PE16_SELECT_A::INPUT)
113 }
114 #[doc = "`10`"]
115 #[inline(always)]
116 pub fn twi3_sck(self) -> &'a mut crate::W<REG> {
117 self.variant(PE16_SELECT_A::TWI3_SCK)
118 }
119 #[doc = "`100`"]
120 #[inline(always)]
121 pub fn pwm7(self) -> &'a mut crate::W<REG> {
122 self.variant(PE16_SELECT_A::PWM7)
123 }
124 #[doc = "`110`"]
125 #[inline(always)]
126 pub fn dmic_data0(self) -> &'a mut crate::W<REG> {
127 self.variant(PE16_SELECT_A::DMIC_DATA0)
128 }
129 #[doc = "`1110`"]
130 #[inline(always)]
131 pub fn pe_eint16(self) -> &'a mut crate::W<REG> {
132 self.variant(PE16_SELECT_A::PE_EINT16)
133 }
134 #[doc = "`1`"]
135 #[inline(always)]
136 pub fn output(self) -> &'a mut crate::W<REG> {
137 self.variant(PE16_SELECT_A::OUTPUT)
138 }
139 #[doc = "`11`"]
140 #[inline(always)]
141 pub fn d_jtag_do(self) -> &'a mut crate::W<REG> {
142 self.variant(PE16_SELECT_A::D_JTAG_DO)
143 }
144 #[doc = "`101`"]
145 #[inline(always)]
146 pub fn i2s0_bclk(self) -> &'a mut crate::W<REG> {
147 self.variant(PE16_SELECT_A::I2S0_BCLK)
148 }
149 #[doc = "`1111`"]
150 #[inline(always)]
151 pub fn io_disable(self) -> &'a mut crate::W<REG> {
152 self.variant(PE16_SELECT_A::IO_DISABLE)
153 }
154}
155#[doc = "Field `pe17_select` reader - PE17 Select"]
156pub type PE17_SELECT_R = crate::FieldReader<PE17_SELECT_A>;
157#[doc = "PE17 Select\n\nValue on reset: 0"]
158#[derive(Clone, Copy, Debug, PartialEq, Eq)]
159#[repr(u8)]
160pub enum PE17_SELECT_A {
161 #[doc = "0: `0`"]
162 INPUT = 0,
163 #[doc = "2: `10`"]
164 TWI3_SDA = 2,
165 #[doc = "4: `100`"]
166 IR_TX = 4,
167 #[doc = "6: `110`"]
168 DMIC_CLK = 6,
169 #[doc = "14: `1110`"]
170 PE_EINT17 = 14,
171 #[doc = "1: `1`"]
172 OUTPUT = 1,
173 #[doc = "3: `11`"]
174 D_JTAG_CK = 3,
175 #[doc = "5: `101`"]
176 I2S0_MCLK = 5,
177 #[doc = "15: `1111`"]
178 IO_DISABLE = 15,
179}
180impl From<PE17_SELECT_A> for u8 {
181 #[inline(always)]
182 fn from(variant: PE17_SELECT_A) -> Self {
183 variant as _
184 }
185}
186impl crate::FieldSpec for PE17_SELECT_A {
187 type Ux = u8;
188}
189impl PE17_SELECT_R {
190 #[doc = "Get enumerated values variant"]
191 #[inline(always)]
192 pub const fn variant(&self) -> Option<PE17_SELECT_A> {
193 match self.bits {
194 0 => Some(PE17_SELECT_A::INPUT),
195 2 => Some(PE17_SELECT_A::TWI3_SDA),
196 4 => Some(PE17_SELECT_A::IR_TX),
197 6 => Some(PE17_SELECT_A::DMIC_CLK),
198 14 => Some(PE17_SELECT_A::PE_EINT17),
199 1 => Some(PE17_SELECT_A::OUTPUT),
200 3 => Some(PE17_SELECT_A::D_JTAG_CK),
201 5 => Some(PE17_SELECT_A::I2S0_MCLK),
202 15 => Some(PE17_SELECT_A::IO_DISABLE),
203 _ => None,
204 }
205 }
206 #[doc = "`0`"]
207 #[inline(always)]
208 pub fn is_input(&self) -> bool {
209 *self == PE17_SELECT_A::INPUT
210 }
211 #[doc = "`10`"]
212 #[inline(always)]
213 pub fn is_twi3_sda(&self) -> bool {
214 *self == PE17_SELECT_A::TWI3_SDA
215 }
216 #[doc = "`100`"]
217 #[inline(always)]
218 pub fn is_ir_tx(&self) -> bool {
219 *self == PE17_SELECT_A::IR_TX
220 }
221 #[doc = "`110`"]
222 #[inline(always)]
223 pub fn is_dmic_clk(&self) -> bool {
224 *self == PE17_SELECT_A::DMIC_CLK
225 }
226 #[doc = "`1110`"]
227 #[inline(always)]
228 pub fn is_pe_eint17(&self) -> bool {
229 *self == PE17_SELECT_A::PE_EINT17
230 }
231 #[doc = "`1`"]
232 #[inline(always)]
233 pub fn is_output(&self) -> bool {
234 *self == PE17_SELECT_A::OUTPUT
235 }
236 #[doc = "`11`"]
237 #[inline(always)]
238 pub fn is_d_jtag_ck(&self) -> bool {
239 *self == PE17_SELECT_A::D_JTAG_CK
240 }
241 #[doc = "`101`"]
242 #[inline(always)]
243 pub fn is_i2s0_mclk(&self) -> bool {
244 *self == PE17_SELECT_A::I2S0_MCLK
245 }
246 #[doc = "`1111`"]
247 #[inline(always)]
248 pub fn is_io_disable(&self) -> bool {
249 *self == PE17_SELECT_A::IO_DISABLE
250 }
251}
252#[doc = "Field `pe17_select` writer - PE17 Select"]
253pub type PE17_SELECT_W<'a, REG> = crate::FieldWriter<'a, REG, 4, PE17_SELECT_A>;
254impl<'a, REG> PE17_SELECT_W<'a, REG>
255where
256 REG: crate::Writable + crate::RegisterSpec,
257 REG::Ux: From<u8>,
258{
259 #[doc = "`0`"]
260 #[inline(always)]
261 pub fn input(self) -> &'a mut crate::W<REG> {
262 self.variant(PE17_SELECT_A::INPUT)
263 }
264 #[doc = "`10`"]
265 #[inline(always)]
266 pub fn twi3_sda(self) -> &'a mut crate::W<REG> {
267 self.variant(PE17_SELECT_A::TWI3_SDA)
268 }
269 #[doc = "`100`"]
270 #[inline(always)]
271 pub fn ir_tx(self) -> &'a mut crate::W<REG> {
272 self.variant(PE17_SELECT_A::IR_TX)
273 }
274 #[doc = "`110`"]
275 #[inline(always)]
276 pub fn dmic_clk(self) -> &'a mut crate::W<REG> {
277 self.variant(PE17_SELECT_A::DMIC_CLK)
278 }
279 #[doc = "`1110`"]
280 #[inline(always)]
281 pub fn pe_eint17(self) -> &'a mut crate::W<REG> {
282 self.variant(PE17_SELECT_A::PE_EINT17)
283 }
284 #[doc = "`1`"]
285 #[inline(always)]
286 pub fn output(self) -> &'a mut crate::W<REG> {
287 self.variant(PE17_SELECT_A::OUTPUT)
288 }
289 #[doc = "`11`"]
290 #[inline(always)]
291 pub fn d_jtag_ck(self) -> &'a mut crate::W<REG> {
292 self.variant(PE17_SELECT_A::D_JTAG_CK)
293 }
294 #[doc = "`101`"]
295 #[inline(always)]
296 pub fn i2s0_mclk(self) -> &'a mut crate::W<REG> {
297 self.variant(PE17_SELECT_A::I2S0_MCLK)
298 }
299 #[doc = "`1111`"]
300 #[inline(always)]
301 pub fn io_disable(self) -> &'a mut crate::W<REG> {
302 self.variant(PE17_SELECT_A::IO_DISABLE)
303 }
304}
305impl R {
306 #[doc = "Bits 0:3 - PE16 Select"]
307 #[inline(always)]
308 pub fn pe16_select(&self) -> PE16_SELECT_R {
309 PE16_SELECT_R::new((self.bits & 0x0f) as u8)
310 }
311 #[doc = "Bits 4:7 - PE17 Select"]
312 #[inline(always)]
313 pub fn pe17_select(&self) -> PE17_SELECT_R {
314 PE17_SELECT_R::new(((self.bits >> 4) & 0x0f) as u8)
315 }
316}
317impl W {
318 #[doc = "Bits 0:3 - PE16 Select"]
319 #[inline(always)]
320 #[must_use]
321 pub fn pe16_select(&mut self) -> PE16_SELECT_W<PE_CFG2_SPEC> {
322 PE16_SELECT_W::new(self, 0)
323 }
324 #[doc = "Bits 4:7 - PE17 Select"]
325 #[inline(always)]
326 #[must_use]
327 pub fn pe17_select(&mut self) -> PE17_SELECT_W<PE_CFG2_SPEC> {
328 PE17_SELECT_W::new(self, 4)
329 }
330 #[doc = r" Writes raw bits to the register."]
331 #[doc = r""]
332 #[doc = r" # Safety"]
333 #[doc = r""]
334 #[doc = r" Passing incorrect value can cause undefined behaviour. See reference manual"]
335 #[inline(always)]
336 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
337 self.bits = bits;
338 self
339 }
340}
341#[doc = "PE Configure Register 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`pe_cfg2::R`](R). You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`pe_cfg2::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
342pub struct PE_CFG2_SPEC;
343impl crate::RegisterSpec for PE_CFG2_SPEC {
344 type Ux = u32;
345}
346#[doc = "`read()` method returns [`pe_cfg2::R`](R) reader structure"]
347impl crate::Readable for PE_CFG2_SPEC {}
348#[doc = "`write(|w| ..)` method takes [`pe_cfg2::W`](W) writer structure"]
349impl crate::Writable for PE_CFG2_SPEC {
350 const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
351 const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
352}
353#[doc = "`reset()` method sets pe_cfg2 to value 0"]
354impl crate::Resettable for PE_CFG2_SPEC {
355 const RESET_VALUE: Self::Ux = 0;
356}