1#[doc = "Register `BUSWCON3` reader"]
2pub type R = crate::R<BUSWCON3_SPEC>;
3#[doc = "Register `BUSWCON3` writer"]
4pub type W = crate::W<BUSWCON3_SPEC>;
5#[doc = "Burst Length for Synchronous Burst\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u8)]
8pub enum FETBLEN_A {
9 #[doc = "0: 1 data access (default after reset)."]
10 VALUE1 = 0,
11 #[doc = "1: 2 data accesses."]
12 VALUE2 = 1,
13 #[doc = "2: 4 data accesses."]
14 VALUE3 = 2,
15 #[doc = "3: 8 data accesses."]
16 VALUE4 = 3,
17}
18impl From<FETBLEN_A> for u8 {
19 #[inline(always)]
20 fn from(variant: FETBLEN_A) -> Self {
21 variant as _
22 }
23}
24impl crate::FieldSpec for FETBLEN_A {
25 type Ux = u8;
26}
27impl crate::IsEnum for FETBLEN_A {}
28#[doc = "Field `FETBLEN` reader - Burst Length for Synchronous Burst"]
29pub type FETBLEN_R = crate::FieldReader<FETBLEN_A>;
30impl FETBLEN_R {
31 #[doc = "Get enumerated values variant"]
32 #[inline(always)]
33 pub const fn variant(&self) -> Option<FETBLEN_A> {
34 match self.bits {
35 0 => Some(FETBLEN_A::VALUE1),
36 1 => Some(FETBLEN_A::VALUE2),
37 2 => Some(FETBLEN_A::VALUE3),
38 3 => Some(FETBLEN_A::VALUE4),
39 _ => None,
40 }
41 }
42 #[doc = "1 data access (default after reset)."]
43 #[inline(always)]
44 pub fn is_value1(&self) -> bool {
45 *self == FETBLEN_A::VALUE1
46 }
47 #[doc = "2 data accesses."]
48 #[inline(always)]
49 pub fn is_value2(&self) -> bool {
50 *self == FETBLEN_A::VALUE2
51 }
52 #[doc = "4 data accesses."]
53 #[inline(always)]
54 pub fn is_value3(&self) -> bool {
55 *self == FETBLEN_A::VALUE3
56 }
57 #[doc = "8 data accesses."]
58 #[inline(always)]
59 pub fn is_value4(&self) -> bool {
60 *self == FETBLEN_A::VALUE4
61 }
62}
63#[doc = "Field `FETBLEN` writer - Burst Length for Synchronous Burst"]
64pub type FETBLEN_W<'a, REG> = crate::FieldWriter<'a, REG, 3, FETBLEN_A>;
65impl<'a, REG> FETBLEN_W<'a, REG>
66where
67 REG: crate::Writable + crate::RegisterSpec,
68 REG::Ux: From<u8>,
69{
70 #[doc = "1 data access (default after reset)."]
71 #[inline(always)]
72 pub fn value1(self) -> &'a mut crate::W<REG> {
73 self.variant(FETBLEN_A::VALUE1)
74 }
75 #[doc = "2 data accesses."]
76 #[inline(always)]
77 pub fn value2(self) -> &'a mut crate::W<REG> {
78 self.variant(FETBLEN_A::VALUE2)
79 }
80 #[doc = "4 data accesses."]
81 #[inline(always)]
82 pub fn value3(self) -> &'a mut crate::W<REG> {
83 self.variant(FETBLEN_A::VALUE3)
84 }
85 #[doc = "8 data accesses."]
86 #[inline(always)]
87 pub fn value4(self) -> &'a mut crate::W<REG> {
88 self.variant(FETBLEN_A::VALUE4)
89 }
90}
91#[doc = "Synchronous burst buffer mode select\n\nValue on reset: 0"]
92#[derive(Clone, Copy, Debug, PartialEq, Eq)]
93pub enum FBBMSEL_A {
94 #[doc = "0: Burst buffer length defined by value in FETBLEN (default after reset)."]
95 VALUE1 = 0,
96 #[doc = "1: Continuous mode. All data required for transaction transferred in single burst"]
97 VALUE2 = 1,
98}
99impl From<FBBMSEL_A> for bool {
100 #[inline(always)]
101 fn from(variant: FBBMSEL_A) -> Self {
102 variant as u8 != 0
103 }
104}
105#[doc = "Field `FBBMSEL` reader - Synchronous burst buffer mode select"]
106pub type FBBMSEL_R = crate::BitReader<FBBMSEL_A>;
107impl FBBMSEL_R {
108 #[doc = "Get enumerated values variant"]
109 #[inline(always)]
110 pub const fn variant(&self) -> FBBMSEL_A {
111 match self.bits {
112 false => FBBMSEL_A::VALUE1,
113 true => FBBMSEL_A::VALUE2,
114 }
115 }
116 #[doc = "Burst buffer length defined by value in FETBLEN (default after reset)."]
117 #[inline(always)]
118 pub fn is_value1(&self) -> bool {
119 *self == FBBMSEL_A::VALUE1
120 }
121 #[doc = "Continuous mode. All data required for transaction transferred in single burst"]
122 #[inline(always)]
123 pub fn is_value2(&self) -> bool {
124 *self == FBBMSEL_A::VALUE2
125 }
126}
127#[doc = "Field `FBBMSEL` writer - Synchronous burst buffer mode select"]
128pub type FBBMSEL_W<'a, REG> = crate::BitWriter<'a, REG, FBBMSEL_A>;
129impl<'a, REG> FBBMSEL_W<'a, REG>
130where
131 REG: crate::Writable + crate::RegisterSpec,
132{
133 #[doc = "Burst buffer length defined by value in FETBLEN (default after reset)."]
134 #[inline(always)]
135 pub fn value1(self) -> &'a mut crate::W<REG> {
136 self.variant(FBBMSEL_A::VALUE1)
137 }
138 #[doc = "Continuous mode. All data required for transaction transferred in single burst"]
139 #[inline(always)]
140 pub fn value2(self) -> &'a mut crate::W<REG> {
141 self.variant(FBBMSEL_A::VALUE2)
142 }
143}
144#[doc = "Field `NAA` reader - Enable flash non-array access workaround"]
145pub type NAA_R = crate::BitReader;
146#[doc = "Early Chip Select for Synchronous Burst\n\nValue on reset: 1"]
147#[derive(Clone, Copy, Debug, PartialEq, Eq)]
148pub enum ECSE_A {
149 #[doc = "0: CS is delayed."]
150 VALUE1 = 0,
151 #[doc = "1: CS is not delayed."]
152 VALUE2 = 1,
153}
154impl From<ECSE_A> for bool {
155 #[inline(always)]
156 fn from(variant: ECSE_A) -> Self {
157 variant as u8 != 0
158 }
159}
160#[doc = "Field `ECSE` reader - Early Chip Select for Synchronous Burst"]
161pub type ECSE_R = crate::BitReader<ECSE_A>;
162impl ECSE_R {
163 #[doc = "Get enumerated values variant"]
164 #[inline(always)]
165 pub const fn variant(&self) -> ECSE_A {
166 match self.bits {
167 false => ECSE_A::VALUE1,
168 true => ECSE_A::VALUE2,
169 }
170 }
171 #[doc = "CS is delayed."]
172 #[inline(always)]
173 pub fn is_value1(&self) -> bool {
174 *self == ECSE_A::VALUE1
175 }
176 #[doc = "CS is not delayed."]
177 #[inline(always)]
178 pub fn is_value2(&self) -> bool {
179 *self == ECSE_A::VALUE2
180 }
181}
182#[doc = "Field `ECSE` writer - Early Chip Select for Synchronous Burst"]
183pub type ECSE_W<'a, REG> = crate::BitWriter<'a, REG, ECSE_A>;
184impl<'a, REG> ECSE_W<'a, REG>
185where
186 REG: crate::Writable + crate::RegisterSpec,
187{
188 #[doc = "CS is delayed."]
189 #[inline(always)]
190 pub fn value1(self) -> &'a mut crate::W<REG> {
191 self.variant(ECSE_A::VALUE1)
192 }
193 #[doc = "CS is not delayed."]
194 #[inline(always)]
195 pub fn value2(self) -> &'a mut crate::W<REG> {
196 self.variant(ECSE_A::VALUE2)
197 }
198}
199#[doc = "Early Burst Signal Enable for Synchronous Burst\n\nValue on reset: 1"]
200#[derive(Clone, Copy, Debug, PartialEq, Eq)]
201pub enum EBSE_A {
202 #[doc = "0: ADV is delayed."]
203 VALUE1 = 0,
204 #[doc = "1: ADV is not delayed."]
205 VALUE2 = 1,
206}
207impl From<EBSE_A> for bool {
208 #[inline(always)]
209 fn from(variant: EBSE_A) -> Self {
210 variant as u8 != 0
211 }
212}
213#[doc = "Field `EBSE` reader - Early Burst Signal Enable for Synchronous Burst"]
214pub type EBSE_R = crate::BitReader<EBSE_A>;
215impl EBSE_R {
216 #[doc = "Get enumerated values variant"]
217 #[inline(always)]
218 pub const fn variant(&self) -> EBSE_A {
219 match self.bits {
220 false => EBSE_A::VALUE1,
221 true => EBSE_A::VALUE2,
222 }
223 }
224 #[doc = "ADV is delayed."]
225 #[inline(always)]
226 pub fn is_value1(&self) -> bool {
227 *self == EBSE_A::VALUE1
228 }
229 #[doc = "ADV is not delayed."]
230 #[inline(always)]
231 pub fn is_value2(&self) -> bool {
232 *self == EBSE_A::VALUE2
233 }
234}
235#[doc = "Field `EBSE` writer - Early Burst Signal Enable for Synchronous Burst"]
236pub type EBSE_W<'a, REG> = crate::BitWriter<'a, REG, EBSE_A>;
237impl<'a, REG> EBSE_W<'a, REG>
238where
239 REG: crate::Writable + crate::RegisterSpec,
240{
241 #[doc = "ADV is delayed."]
242 #[inline(always)]
243 pub fn value1(self) -> &'a mut crate::W<REG> {
244 self.variant(EBSE_A::VALUE1)
245 }
246 #[doc = "ADV is not delayed."]
247 #[inline(always)]
248 pub fn value2(self) -> &'a mut crate::W<REG> {
249 self.variant(EBSE_A::VALUE2)
250 }
251}
252#[doc = "Reversed polarity at WAIT\n\nValue on reset: 0"]
253#[derive(Clone, Copy, Debug, PartialEq, Eq)]
254pub enum WAITINV_A {
255 #[doc = "0: input at WAIT pin is active low (default after reset)."]
256 VALUE1 = 0,
257 #[doc = "1: input at WAIT pin is active high."]
258 VALUE2 = 1,
259}
260impl From<WAITINV_A> for bool {
261 #[inline(always)]
262 fn from(variant: WAITINV_A) -> Self {
263 variant as u8 != 0
264 }
265}
266#[doc = "Field `WAITINV` reader - Reversed polarity at WAIT"]
267pub type WAITINV_R = crate::BitReader<WAITINV_A>;
268impl WAITINV_R {
269 #[doc = "Get enumerated values variant"]
270 #[inline(always)]
271 pub const fn variant(&self) -> WAITINV_A {
272 match self.bits {
273 false => WAITINV_A::VALUE1,
274 true => WAITINV_A::VALUE2,
275 }
276 }
277 #[doc = "input at WAIT pin is active low (default after reset)."]
278 #[inline(always)]
279 pub fn is_value1(&self) -> bool {
280 *self == WAITINV_A::VALUE1
281 }
282 #[doc = "input at WAIT pin is active high."]
283 #[inline(always)]
284 pub fn is_value2(&self) -> bool {
285 *self == WAITINV_A::VALUE2
286 }
287}
288#[doc = "Field `WAITINV` writer - Reversed polarity at WAIT"]
289pub type WAITINV_W<'a, REG> = crate::BitWriter<'a, REG, WAITINV_A>;
290impl<'a, REG> WAITINV_W<'a, REG>
291where
292 REG: crate::Writable + crate::RegisterSpec,
293{
294 #[doc = "input at WAIT pin is active low (default after reset)."]
295 #[inline(always)]
296 pub fn value1(self) -> &'a mut crate::W<REG> {
297 self.variant(WAITINV_A::VALUE1)
298 }
299 #[doc = "input at WAIT pin is active high."]
300 #[inline(always)]
301 pub fn value2(self) -> &'a mut crate::W<REG> {
302 self.variant(WAITINV_A::VALUE2)
303 }
304}
305#[doc = "Byte Control Signal Control\n\nValue on reset: 1"]
306#[derive(Clone, Copy, Debug, PartialEq, Eq)]
307#[repr(u8)]
308pub enum BCGEN_A {
309 #[doc = "0: Byte control signals follow chip select timing."]
310 VALUE1 = 0,
311 #[doc = "1: Byte control signals follow control signal timing (RD, RD/WR) (default after reset)."]
312 VALUE2 = 1,
313 #[doc = "2: Byte control signals follow write enable signal timing (RD/WR only)."]
314 VALUE3 = 2,
315}
316impl From<BCGEN_A> for u8 {
317 #[inline(always)]
318 fn from(variant: BCGEN_A) -> Self {
319 variant as _
320 }
321}
322impl crate::FieldSpec for BCGEN_A {
323 type Ux = u8;
324}
325impl crate::IsEnum for BCGEN_A {}
326#[doc = "Field `BCGEN` reader - Byte Control Signal Control"]
327pub type BCGEN_R = crate::FieldReader<BCGEN_A>;
328impl BCGEN_R {
329 #[doc = "Get enumerated values variant"]
330 #[inline(always)]
331 pub const fn variant(&self) -> Option<BCGEN_A> {
332 match self.bits {
333 0 => Some(BCGEN_A::VALUE1),
334 1 => Some(BCGEN_A::VALUE2),
335 2 => Some(BCGEN_A::VALUE3),
336 _ => None,
337 }
338 }
339 #[doc = "Byte control signals follow chip select timing."]
340 #[inline(always)]
341 pub fn is_value1(&self) -> bool {
342 *self == BCGEN_A::VALUE1
343 }
344 #[doc = "Byte control signals follow control signal timing (RD, RD/WR) (default after reset)."]
345 #[inline(always)]
346 pub fn is_value2(&self) -> bool {
347 *self == BCGEN_A::VALUE2
348 }
349 #[doc = "Byte control signals follow write enable signal timing (RD/WR only)."]
350 #[inline(always)]
351 pub fn is_value3(&self) -> bool {
352 *self == BCGEN_A::VALUE3
353 }
354}
355#[doc = "Field `BCGEN` writer - Byte Control Signal Control"]
356pub type BCGEN_W<'a, REG> = crate::FieldWriter<'a, REG, 2, BCGEN_A>;
357impl<'a, REG> BCGEN_W<'a, REG>
358where
359 REG: crate::Writable + crate::RegisterSpec,
360 REG::Ux: From<u8>,
361{
362 #[doc = "Byte control signals follow chip select timing."]
363 #[inline(always)]
364 pub fn value1(self) -> &'a mut crate::W<REG> {
365 self.variant(BCGEN_A::VALUE1)
366 }
367 #[doc = "Byte control signals follow control signal timing (RD, RD/WR) (default after reset)."]
368 #[inline(always)]
369 pub fn value2(self) -> &'a mut crate::W<REG> {
370 self.variant(BCGEN_A::VALUE2)
371 }
372 #[doc = "Byte control signals follow write enable signal timing (RD/WR only)."]
373 #[inline(always)]
374 pub fn value3(self) -> &'a mut crate::W<REG> {
375 self.variant(BCGEN_A::VALUE3)
376 }
377}
378#[doc = "Field `PORTW` reader - Device Addressing Mode"]
379pub type PORTW_R = crate::FieldReader;
380#[doc = "Field `WAIT` reader - External Wait Control: 0=OFF (default after reset)., 1=Asynchronous input at WAIT., 2=Synchronous input at WAIT., 3=reserved., 0=OFF (default after reset)., 1=Wait for page load (Early WAIT)., 2=Wait for page load (WAIT with data)., 3=Abort and retry access.,"]
381pub type WAIT_R = crate::FieldReader;
382#[doc = "Field `WAIT` writer - External Wait Control: 0=OFF (default after reset)., 1=Asynchronous input at WAIT., 2=Synchronous input at WAIT., 3=reserved., 0=OFF (default after reset)., 1=Wait for page load (Early WAIT)., 2=Wait for page load (WAIT with data)., 3=Abort and retry access.,"]
383pub type WAIT_W<'a, REG> = crate::FieldWriter<'a, REG, 2>;
384#[doc = "Asynchronous Address phase:\n\nValue on reset: 0"]
385#[derive(Clone, Copy, Debug, PartialEq, Eq)]
386pub enum AAP_A {
387 #[doc = "0: Clock is enabled at beginning of access."]
388 VALUE1 = 0,
389 #[doc = "1: Clock is enabled at after address phase."]
390 VALUE2 = 1,
391}
392impl From<AAP_A> for bool {
393 #[inline(always)]
394 fn from(variant: AAP_A) -> Self {
395 variant as u8 != 0
396 }
397}
398#[doc = "Field `AAP` reader - Asynchronous Address phase:"]
399pub type AAP_R = crate::BitReader<AAP_A>;
400impl AAP_R {
401 #[doc = "Get enumerated values variant"]
402 #[inline(always)]
403 pub const fn variant(&self) -> AAP_A {
404 match self.bits {
405 false => AAP_A::VALUE1,
406 true => AAP_A::VALUE2,
407 }
408 }
409 #[doc = "Clock is enabled at beginning of access."]
410 #[inline(always)]
411 pub fn is_value1(&self) -> bool {
412 *self == AAP_A::VALUE1
413 }
414 #[doc = "Clock is enabled at after address phase."]
415 #[inline(always)]
416 pub fn is_value2(&self) -> bool {
417 *self == AAP_A::VALUE2
418 }
419}
420#[doc = "Field `AAP` writer - Asynchronous Address phase:"]
421pub type AAP_W<'a, REG> = crate::BitWriter<'a, REG, AAP_A>;
422impl<'a, REG> AAP_W<'a, REG>
423where
424 REG: crate::Writable + crate::RegisterSpec,
425{
426 #[doc = "Clock is enabled at beginning of access."]
427 #[inline(always)]
428 pub fn value1(self) -> &'a mut crate::W<REG> {
429 self.variant(AAP_A::VALUE1)
430 }
431 #[doc = "Clock is enabled at after address phase."]
432 #[inline(always)]
433 pub fn value2(self) -> &'a mut crate::W<REG> {
434 self.variant(AAP_A::VALUE2)
435 }
436}
437#[doc = "Lock Chip Select\n\nValue on reset: 0"]
438#[derive(Clone, Copy, Debug, PartialEq, Eq)]
439pub enum LOCKCS_A {
440 #[doc = "0: Chip Select cannot be locked (default after reset)."]
441 VALUE1 = 0,
442 #[doc = "1: Chip Select will be automatically locked when written to from the processor data port."]
443 VALUE2 = 1,
444}
445impl From<LOCKCS_A> for bool {
446 #[inline(always)]
447 fn from(variant: LOCKCS_A) -> Self {
448 variant as u8 != 0
449 }
450}
451#[doc = "Field `LOCKCS` reader - Lock Chip Select"]
452pub type LOCKCS_R = crate::BitReader<LOCKCS_A>;
453impl LOCKCS_R {
454 #[doc = "Get enumerated values variant"]
455 #[inline(always)]
456 pub const fn variant(&self) -> LOCKCS_A {
457 match self.bits {
458 false => LOCKCS_A::VALUE1,
459 true => LOCKCS_A::VALUE2,
460 }
461 }
462 #[doc = "Chip Select cannot be locked (default after reset)."]
463 #[inline(always)]
464 pub fn is_value1(&self) -> bool {
465 *self == LOCKCS_A::VALUE1
466 }
467 #[doc = "Chip Select will be automatically locked when written to from the processor data port."]
468 #[inline(always)]
469 pub fn is_value2(&self) -> bool {
470 *self == LOCKCS_A::VALUE2
471 }
472}
473#[doc = "Field `LOCKCS` writer - Lock Chip Select"]
474pub type LOCKCS_W<'a, REG> = crate::BitWriter<'a, REG, LOCKCS_A>;
475impl<'a, REG> LOCKCS_W<'a, REG>
476where
477 REG: crate::Writable + crate::RegisterSpec,
478{
479 #[doc = "Chip Select cannot be locked (default after reset)."]
480 #[inline(always)]
481 pub fn value1(self) -> &'a mut crate::W<REG> {
482 self.variant(LOCKCS_A::VALUE1)
483 }
484 #[doc = "Chip Select will be automatically locked when written to from the processor data port."]
485 #[inline(always)]
486 pub fn value2(self) -> &'a mut crate::W<REG> {
487 self.variant(LOCKCS_A::VALUE2)
488 }
489}
490#[doc = "Field `AGEN` reader - Device Type for Region"]
491pub type AGEN_R = crate::FieldReader;
492#[doc = "Field `AGEN` writer - Device Type for Region"]
493pub type AGEN_W<'a, REG> = crate::FieldWriter<'a, REG, 4>;
494impl R {
495 #[doc = "Bits 0:2 - Burst Length for Synchronous Burst"]
496 #[inline(always)]
497 pub fn fetblen(&self) -> FETBLEN_R {
498 FETBLEN_R::new((self.bits & 7) as u8)
499 }
500 #[doc = "Bit 3 - Synchronous burst buffer mode select"]
501 #[inline(always)]
502 pub fn fbbmsel(&self) -> FBBMSEL_R {
503 FBBMSEL_R::new(((self.bits >> 3) & 1) != 0)
504 }
505 #[doc = "Bit 7 - Enable flash non-array access workaround"]
506 #[inline(always)]
507 pub fn naa(&self) -> NAA_R {
508 NAA_R::new(((self.bits >> 7) & 1) != 0)
509 }
510 #[doc = "Bit 16 - Early Chip Select for Synchronous Burst"]
511 #[inline(always)]
512 pub fn ecse(&self) -> ECSE_R {
513 ECSE_R::new(((self.bits >> 16) & 1) != 0)
514 }
515 #[doc = "Bit 17 - Early Burst Signal Enable for Synchronous Burst"]
516 #[inline(always)]
517 pub fn ebse(&self) -> EBSE_R {
518 EBSE_R::new(((self.bits >> 17) & 1) != 0)
519 }
520 #[doc = "Bit 19 - Reversed polarity at WAIT"]
521 #[inline(always)]
522 pub fn waitinv(&self) -> WAITINV_R {
523 WAITINV_R::new(((self.bits >> 19) & 1) != 0)
524 }
525 #[doc = "Bits 20:21 - Byte Control Signal Control"]
526 #[inline(always)]
527 pub fn bcgen(&self) -> BCGEN_R {
528 BCGEN_R::new(((self.bits >> 20) & 3) as u8)
529 }
530 #[doc = "Bits 22:23 - Device Addressing Mode"]
531 #[inline(always)]
532 pub fn portw(&self) -> PORTW_R {
533 PORTW_R::new(((self.bits >> 22) & 3) as u8)
534 }
535 #[doc = "Bits 24:25 - External Wait Control: 0=OFF (default after reset)., 1=Asynchronous input at WAIT., 2=Synchronous input at WAIT., 3=reserved., 0=OFF (default after reset)., 1=Wait for page load (Early WAIT)., 2=Wait for page load (WAIT with data)., 3=Abort and retry access.,"]
536 #[inline(always)]
537 pub fn wait(&self) -> WAIT_R {
538 WAIT_R::new(((self.bits >> 24) & 3) as u8)
539 }
540 #[doc = "Bit 26 - Asynchronous Address phase:"]
541 #[inline(always)]
542 pub fn aap(&self) -> AAP_R {
543 AAP_R::new(((self.bits >> 26) & 1) != 0)
544 }
545 #[doc = "Bit 27 - Lock Chip Select"]
546 #[inline(always)]
547 pub fn lockcs(&self) -> LOCKCS_R {
548 LOCKCS_R::new(((self.bits >> 27) & 1) != 0)
549 }
550 #[doc = "Bits 28:31 - Device Type for Region"]
551 #[inline(always)]
552 pub fn agen(&self) -> AGEN_R {
553 AGEN_R::new(((self.bits >> 28) & 0x0f) as u8)
554 }
555}
556impl W {
557 #[doc = "Bits 0:2 - Burst Length for Synchronous Burst"]
558 #[inline(always)]
559 pub fn fetblen(&mut self) -> FETBLEN_W<BUSWCON3_SPEC> {
560 FETBLEN_W::new(self, 0)
561 }
562 #[doc = "Bit 3 - Synchronous burst buffer mode select"]
563 #[inline(always)]
564 pub fn fbbmsel(&mut self) -> FBBMSEL_W<BUSWCON3_SPEC> {
565 FBBMSEL_W::new(self, 3)
566 }
567 #[doc = "Bit 16 - Early Chip Select for Synchronous Burst"]
568 #[inline(always)]
569 pub fn ecse(&mut self) -> ECSE_W<BUSWCON3_SPEC> {
570 ECSE_W::new(self, 16)
571 }
572 #[doc = "Bit 17 - Early Burst Signal Enable for Synchronous Burst"]
573 #[inline(always)]
574 pub fn ebse(&mut self) -> EBSE_W<BUSWCON3_SPEC> {
575 EBSE_W::new(self, 17)
576 }
577 #[doc = "Bit 19 - Reversed polarity at WAIT"]
578 #[inline(always)]
579 pub fn waitinv(&mut self) -> WAITINV_W<BUSWCON3_SPEC> {
580 WAITINV_W::new(self, 19)
581 }
582 #[doc = "Bits 20:21 - Byte Control Signal Control"]
583 #[inline(always)]
584 pub fn bcgen(&mut self) -> BCGEN_W<BUSWCON3_SPEC> {
585 BCGEN_W::new(self, 20)
586 }
587 #[doc = "Bits 24:25 - External Wait Control: 0=OFF (default after reset)., 1=Asynchronous input at WAIT., 2=Synchronous input at WAIT., 3=reserved., 0=OFF (default after reset)., 1=Wait for page load (Early WAIT)., 2=Wait for page load (WAIT with data)., 3=Abort and retry access.,"]
588 #[inline(always)]
589 pub fn wait(&mut self) -> WAIT_W<BUSWCON3_SPEC> {
590 WAIT_W::new(self, 24)
591 }
592 #[doc = "Bit 26 - Asynchronous Address phase:"]
593 #[inline(always)]
594 pub fn aap(&mut self) -> AAP_W<BUSWCON3_SPEC> {
595 AAP_W::new(self, 26)
596 }
597 #[doc = "Bit 27 - Lock Chip Select"]
598 #[inline(always)]
599 pub fn lockcs(&mut self) -> LOCKCS_W<BUSWCON3_SPEC> {
600 LOCKCS_W::new(self, 27)
601 }
602 #[doc = "Bits 28:31 - Device Type for Region"]
603 #[inline(always)]
604 pub fn agen(&mut self) -> AGEN_W<BUSWCON3_SPEC> {
605 AGEN_W::new(self, 28)
606 }
607}
608#[doc = "EBU Bus Write Configuration Register\n\nYou can [`read`](crate::Reg::read) this register and get [`buswcon3::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`buswcon3::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
609pub struct BUSWCON3_SPEC;
610impl crate::RegisterSpec for BUSWCON3_SPEC {
611 type Ux = u32;
612}
613#[doc = "`read()` method returns [`buswcon3::R`](R) reader structure"]
614impl crate::Readable for BUSWCON3_SPEC {}
615#[doc = "`write(|w| ..)` method takes [`buswcon3::W`](W) writer structure"]
616impl crate::Writable for BUSWCON3_SPEC {
617 type Safety = crate::Unsafe;
618 const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
619 const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
620}
621#[doc = "`reset()` method sets BUSWCON3 to value 0x00d3_0000"]
622impl crate::Resettable for BUSWCON3_SPEC {
623 const RESET_VALUE: u32 = 0x00d3_0000;
624}