1#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"LCDC registers"]
28unsafe impl ::core::marker::Send for super::Lcdc {}
29unsafe impl ::core::marker::Sync for super::Lcdc {}
30impl super::Lcdc {
31 #[allow(unused)]
32 #[inline(always)]
33 pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34 self.ptr
35 }
36
37 #[doc = "Back Porch X and Y"]
38 #[inline(always)]
39 pub const fn lcdc_backporchxy_reg(
40 &self,
41 ) -> &'static crate::common::Reg<self::LcdcBackporchxyReg_SPEC, crate::common::RW> {
42 unsafe {
43 crate::common::Reg::<self::LcdcBackporchxyReg_SPEC, crate::common::RW>::from_ptr(
44 self._svd2pac_as_ptr().add(28usize),
45 )
46 }
47 }
48
49 #[doc = "Background Color"]
50 #[inline(always)]
51 pub const fn lcdc_bgcolor_reg(
52 &self,
53 ) -> &'static crate::common::Reg<self::LcdcBgcolorReg_SPEC, crate::common::RW> {
54 unsafe {
55 crate::common::Reg::<self::LcdcBgcolorReg_SPEC, crate::common::RW>::from_ptr(
56 self._svd2pac_as_ptr().add(8usize),
57 )
58 }
59 }
60
61 #[doc = "Blanking X and Y"]
62 #[inline(always)]
63 pub const fn lcdc_blankingxy_reg(
64 &self,
65 ) -> &'static crate::common::Reg<self::LcdcBlankingxyReg_SPEC, crate::common::RW> {
66 unsafe {
67 crate::common::Reg::<self::LcdcBlankingxyReg_SPEC, crate::common::RW>::from_ptr(
68 self._svd2pac_as_ptr().add(24usize),
69 )
70 }
71 }
72
73 #[doc = "Clock Divider"]
74 #[inline(always)]
75 pub const fn lcdc_clkctrl_reg(
76 &self,
77 ) -> &'static crate::common::Reg<self::LcdcClkctrlReg_SPEC, crate::common::RW> {
78 unsafe {
79 crate::common::Reg::<self::LcdcClkctrlReg_SPEC, crate::common::RW>::from_ptr(
80 self._svd2pac_as_ptr().add(4usize),
81 )
82 }
83 }
84
85 #[doc = "CRC check"]
86 #[inline(always)]
87 pub const fn lcdc_crc_reg(
88 &self,
89 ) -> &'static crate::common::Reg<self::LcdcCrcReg_SPEC, crate::common::RW> {
90 unsafe {
91 crate::common::Reg::<self::LcdcCrcReg_SPEC, crate::common::RW>::from_ptr(
92 self._svd2pac_as_ptr().add(388usize),
93 )
94 }
95 }
96
97 #[doc = "MIPI Config Register"]
98 #[inline(always)]
99 pub const fn lcdc_dbib_cfg_reg(
100 &self,
101 ) -> &'static crate::common::Reg<self::LcdcDbibCfgReg_SPEC, crate::common::RW> {
102 unsafe {
103 crate::common::Reg::<self::LcdcDbibCfgReg_SPEC, crate::common::RW>::from_ptr(
104 self._svd2pac_as_ptr().add(40usize),
105 )
106 }
107 }
108
109 #[doc = "MIPI DBIB Command Register"]
110 #[inline(always)]
111 pub const fn lcdc_dbib_cmd_reg(
112 &self,
113 ) -> &'static crate::common::Reg<self::LcdcDbibCmdReg_SPEC, crate::common::RW> {
114 unsafe {
115 crate::common::Reg::<self::LcdcDbibCmdReg_SPEC, crate::common::RW>::from_ptr(
116 self._svd2pac_as_ptr().add(232usize),
117 )
118 }
119 }
120
121 #[doc = "Front Porch X and Y"]
122 #[inline(always)]
123 pub const fn lcdc_frontporchxy_reg(
124 &self,
125 ) -> &'static crate::common::Reg<self::LcdcFrontporchxyReg_SPEC, crate::common::RW> {
126 unsafe {
127 crate::common::Reg::<self::LcdcFrontporchxyReg_SPEC, crate::common::RW>::from_ptr(
128 self._svd2pac_as_ptr().add(20usize),
129 )
130 }
131 }
132
133 #[doc = "General Purpose IO (2-bits)"]
134 #[inline(always)]
135 pub const fn lcdc_gpio_reg(
136 &self,
137 ) -> &'static crate::common::Reg<self::LcdcGpioReg_SPEC, crate::common::RW> {
138 unsafe {
139 crate::common::Reg::<self::LcdcGpioReg_SPEC, crate::common::RW>::from_ptr(
140 self._svd2pac_as_ptr().add(44usize),
141 )
142 }
143 }
144
145 #[doc = "Identification Register"]
146 #[inline(always)]
147 pub const fn lcdc_idreg_reg(
148 &self,
149 ) -> &'static crate::common::Reg<self::LcdcIdregReg_SPEC, crate::common::RW> {
150 unsafe {
151 crate::common::Reg::<self::LcdcIdregReg_SPEC, crate::common::RW>::from_ptr(
152 self._svd2pac_as_ptr().add(244usize),
153 )
154 }
155 }
156
157 #[doc = "Interrupt Register"]
158 #[inline(always)]
159 pub const fn lcdc_interrupt_reg(
160 &self,
161 ) -> &'static crate::common::Reg<self::LcdcInterruptReg_SPEC, crate::common::RW> {
162 unsafe {
163 crate::common::Reg::<self::LcdcInterruptReg_SPEC, crate::common::RW>::from_ptr(
164 self._svd2pac_as_ptr().add(248usize),
165 )
166 }
167 }
168
169 #[doc = "ENB end horizontal line"]
170 #[inline(always)]
171 pub const fn lcdc_jdi_enb_end_hline_reg(
172 &self,
173 ) -> &'static crate::common::Reg<self::LcdcJdiEnbEndHlineReg_SPEC, crate::common::RW> {
174 unsafe {
175 crate::common::Reg::<self::LcdcJdiEnbEndHlineReg_SPEC, crate::common::RW>::from_ptr(
176 self._svd2pac_as_ptr().add(188usize),
177 )
178 }
179 }
180
181 #[doc = "ENB start delay"]
182 #[inline(always)]
183 pub const fn lcdc_jdi_enb_start_clk_reg(
184 &self,
185 ) -> &'static crate::common::Reg<self::LcdcJdiEnbStartClkReg_SPEC, crate::common::RW> {
186 unsafe {
187 crate::common::Reg::<self::LcdcJdiEnbStartClkReg_SPEC, crate::common::RW>::from_ptr(
188 self._svd2pac_as_ptr().add(192usize),
189 )
190 }
191 }
192
193 #[doc = "ENB start horizontal line"]
194 #[inline(always)]
195 pub const fn lcdc_jdi_enb_start_hline_reg(
196 &self,
197 ) -> &'static crate::common::Reg<self::LcdcJdiEnbStartHlineReg_SPEC, crate::common::RW> {
198 unsafe {
199 crate::common::Reg::<self::LcdcJdiEnbStartHlineReg_SPEC, crate::common::RW>::from_ptr(
200 self._svd2pac_as_ptr().add(184usize),
201 )
202 }
203 }
204
205 #[doc = "ENB width"]
206 #[inline(always)]
207 pub const fn lcdc_jdi_enb_width_clk_reg(
208 &self,
209 ) -> &'static crate::common::Reg<self::LcdcJdiEnbWidthClkReg_SPEC, crate::common::RW> {
210 unsafe {
211 crate::common::Reg::<self::LcdcJdiEnbWidthClkReg_SPEC, crate::common::RW>::from_ptr(
212 self._svd2pac_as_ptr().add(196usize),
213 )
214 }
215 }
216
217 #[doc = "Horizontal front/back blanking (hck half periods)"]
218 #[inline(always)]
219 pub const fn lcdc_jdi_fbx_blanking_reg(
220 &self,
221 ) -> &'static crate::common::Reg<self::LcdcJdiFbxBlankingReg_SPEC, crate::common::RW> {
222 unsafe {
223 crate::common::Reg::<self::LcdcJdiFbxBlankingReg_SPEC, crate::common::RW>::from_ptr(
224 self._svd2pac_as_ptr().add(148usize),
225 )
226 }
227 }
228
229 #[doc = "Vertical front/back blanking (vck half periods)"]
230 #[inline(always)]
231 pub const fn lcdc_jdi_fby_blanking_reg(
232 &self,
233 ) -> &'static crate::common::Reg<self::LcdcJdiFbyBlankingReg_SPEC, crate::common::RW> {
234 unsafe {
235 crate::common::Reg::<self::LcdcJdiFbyBlankingReg_SPEC, crate::common::RW>::from_ptr(
236 self._svd2pac_as_ptr().add(152usize),
237 )
238 }
239 }
240
241 #[doc = "HCK high/low width"]
242 #[inline(always)]
243 pub const fn lcdc_jdi_hck_width_reg(
244 &self,
245 ) -> &'static crate::common::Reg<self::LcdcJdiHckWidthReg_SPEC, crate::common::RW> {
246 unsafe {
247 crate::common::Reg::<self::LcdcJdiHckWidthReg_SPEC, crate::common::RW>::from_ptr(
248 self._svd2pac_as_ptr().add(156usize),
249 )
250 }
251 }
252
253 #[doc = "VCK-to-HST delay"]
254 #[inline(always)]
255 pub const fn lcdc_jdi_hst_delay_reg(
256 &self,
257 ) -> &'static crate::common::Reg<self::LcdcJdiHstDelayReg_SPEC, crate::common::RW> {
258 unsafe {
259 crate::common::Reg::<self::LcdcJdiHstDelayReg_SPEC, crate::common::RW>::from_ptr(
260 self._svd2pac_as_ptr().add(176usize),
261 )
262 }
263 }
264
265 #[doc = "HST width"]
266 #[inline(always)]
267 pub const fn lcdc_jdi_hst_width_reg(
268 &self,
269 ) -> &'static crate::common::Reg<self::LcdcJdiHstWidthReg_SPEC, crate::common::RW> {
270 unsafe {
271 crate::common::Reg::<self::LcdcJdiHstWidthReg_SPEC, crate::common::RW>::from_ptr(
272 self._svd2pac_as_ptr().add(180usize),
273 )
274 }
275 }
276
277 #[doc = "Resolution XY for the JDI parallel I/F"]
278 #[inline(always)]
279 pub const fn lcdc_jdi_resxy_reg(
280 &self,
281 ) -> &'static crate::common::Reg<self::LcdcJdiResxyReg_SPEC, crate::common::RW> {
282 unsafe {
283 crate::common::Reg::<self::LcdcJdiResxyReg_SPEC, crate::common::RW>::from_ptr(
284 self._svd2pac_as_ptr().add(144usize),
285 )
286 }
287 }
288
289 #[doc = "XRST-to-VCK delay"]
290 #[inline(always)]
291 pub const fn lcdc_jdi_vck_delay_reg(
292 &self,
293 ) -> &'static crate::common::Reg<self::LcdcJdiVckDelayReg_SPEC, crate::common::RW> {
294 unsafe {
295 crate::common::Reg::<self::LcdcJdiVckDelayReg_SPEC, crate::common::RW>::from_ptr(
296 self._svd2pac_as_ptr().add(172usize),
297 )
298 }
299 }
300
301 #[doc = "XRST-to-VST delay"]
302 #[inline(always)]
303 pub const fn lcdc_jdi_vst_delay_reg(
304 &self,
305 ) -> &'static crate::common::Reg<self::LcdcJdiVstDelayReg_SPEC, crate::common::RW> {
306 unsafe {
307 crate::common::Reg::<self::LcdcJdiVstDelayReg_SPEC, crate::common::RW>::from_ptr(
308 self._svd2pac_as_ptr().add(164usize),
309 )
310 }
311 }
312
313 #[doc = "VST width"]
314 #[inline(always)]
315 pub const fn lcdc_jdi_vst_width_reg(
316 &self,
317 ) -> &'static crate::common::Reg<self::LcdcJdiVstWidthReg_SPEC, crate::common::RW> {
318 unsafe {
319 crate::common::Reg::<self::LcdcJdiVstWidthReg_SPEC, crate::common::RW>::from_ptr(
320 self._svd2pac_as_ptr().add(168usize),
321 )
322 }
323 }
324
325 #[doc = "XRST width"]
326 #[inline(always)]
327 pub const fn lcdc_jdi_xrst_width_reg(
328 &self,
329 ) -> &'static crate::common::Reg<self::LcdcJdiXrstWidthReg_SPEC, crate::common::RW> {
330 unsafe {
331 crate::common::Reg::<self::LcdcJdiXrstWidthReg_SPEC, crate::common::RW>::from_ptr(
332 self._svd2pac_as_ptr().add(160usize),
333 )
334 }
335 }
336
337 #[doc = "Layer0 Base Addr"]
338 #[inline(always)]
339 pub const fn lcdc_layer0_baseaddr_reg(
340 &self,
341 ) -> &'static crate::common::Reg<self::LcdcLayer0BaseaddrReg_SPEC, crate::common::RW> {
342 unsafe {
343 crate::common::Reg::<self::LcdcLayer0BaseaddrReg_SPEC, crate::common::RW>::from_ptr(
344 self._svd2pac_as_ptr().add(60usize),
345 )
346 }
347 }
348
349 #[doc = "Layer0 Mode"]
350 #[inline(always)]
351 pub const fn lcdc_layer0_mode_reg(
352 &self,
353 ) -> &'static crate::common::Reg<self::LcdcLayer0ModeReg_SPEC, crate::common::RW> {
354 unsafe {
355 crate::common::Reg::<self::LcdcLayer0ModeReg_SPEC, crate::common::RW>::from_ptr(
356 self._svd2pac_as_ptr().add(48usize),
357 )
358 }
359 }
360
361 #[doc = "Layer0 OffsetX and DMA prefetch"]
362 #[inline(always)]
363 pub const fn lcdc_layer0_offsetx_reg(
364 &self,
365 ) -> &'static crate::common::Reg<self::LcdcLayer0OffsetxReg_SPEC, crate::common::RW> {
366 unsafe {
367 crate::common::Reg::<self::LcdcLayer0OffsetxReg_SPEC, crate::common::RW>::from_ptr(
368 self._svd2pac_as_ptr().add(392usize),
369 )
370 }
371 }
372
373 #[doc = "Layer0 Res XY"]
374 #[inline(always)]
375 pub const fn lcdc_layer0_resxy_reg(
376 &self,
377 ) -> &'static crate::common::Reg<self::LcdcLayer0ResxyReg_SPEC, crate::common::RW> {
378 unsafe {
379 crate::common::Reg::<self::LcdcLayer0ResxyReg_SPEC, crate::common::RW>::from_ptr(
380 self._svd2pac_as_ptr().add(68usize),
381 )
382 }
383 }
384
385 #[doc = "Layer0 Size XY"]
386 #[inline(always)]
387 pub const fn lcdc_layer0_sizexy_reg(
388 &self,
389 ) -> &'static crate::common::Reg<self::LcdcLayer0SizexyReg_SPEC, crate::common::RW> {
390 unsafe {
391 crate::common::Reg::<self::LcdcLayer0SizexyReg_SPEC, crate::common::RW>::from_ptr(
392 self._svd2pac_as_ptr().add(56usize),
393 )
394 }
395 }
396
397 #[doc = "Layer0 Start XY"]
398 #[inline(always)]
399 pub const fn lcdc_layer0_startxy_reg(
400 &self,
401 ) -> &'static crate::common::Reg<self::LcdcLayer0StartxyReg_SPEC, crate::common::RW> {
402 unsafe {
403 crate::common::Reg::<self::LcdcLayer0StartxyReg_SPEC, crate::common::RW>::from_ptr(
404 self._svd2pac_as_ptr().add(52usize),
405 )
406 }
407 }
408
409 #[doc = "Layer0 Stride"]
410 #[inline(always)]
411 pub const fn lcdc_layer0_stride_reg(
412 &self,
413 ) -> &'static crate::common::Reg<self::LcdcLayer0StrideReg_SPEC, crate::common::RW> {
414 unsafe {
415 crate::common::Reg::<self::LcdcLayer0StrideReg_SPEC, crate::common::RW>::from_ptr(
416 self._svd2pac_as_ptr().add(64usize),
417 )
418 }
419 }
420
421 #[doc = "Display Mode"]
422 #[inline(always)]
423 pub const fn lcdc_mode_reg(
424 &self,
425 ) -> &'static crate::common::Reg<self::LcdcModeReg_SPEC, crate::common::RW> {
426 unsafe {
427 crate::common::Reg::<self::LcdcModeReg_SPEC, crate::common::RW>::from_ptr(
428 self._svd2pac_as_ptr().add(0usize),
429 )
430 }
431 }
432
433 #[doc = "Resolution X,Y"]
434 #[inline(always)]
435 pub const fn lcdc_resxy_reg(
436 &self,
437 ) -> &'static crate::common::Reg<self::LcdcResxyReg_SPEC, crate::common::RW> {
438 unsafe {
439 crate::common::Reg::<self::LcdcResxyReg_SPEC, crate::common::RW>::from_ptr(
440 self._svd2pac_as_ptr().add(12usize),
441 )
442 }
443 }
444
445 #[doc = "Status Register"]
446 #[inline(always)]
447 pub const fn lcdc_status_reg(
448 &self,
449 ) -> &'static crate::common::Reg<self::LcdcStatusReg_SPEC, crate::common::RW> {
450 unsafe {
451 crate::common::Reg::<self::LcdcStatusReg_SPEC, crate::common::RW>::from_ptr(
452 self._svd2pac_as_ptr().add(252usize),
453 )
454 }
455 }
456}
457#[doc(hidden)]
458#[derive(Copy, Clone, Eq, PartialEq)]
459pub struct LcdcBackporchxyReg_SPEC;
460impl crate::sealed::RegSpec for LcdcBackporchxyReg_SPEC {
461 type DataType = u32;
462}
463
464#[doc = "Back Porch X and Y"]
465pub type LcdcBackporchxyReg = crate::RegValueT<LcdcBackporchxyReg_SPEC>;
466
467impl LcdcBackporchxyReg {
468 #[doc = "Back porch X (lines)"]
469 #[inline(always)]
470 pub fn lcdc_bporch_x(
471 self,
472 ) -> crate::common::RegisterField<
473 16,
474 0xffff,
475 1,
476 0,
477 u16,
478 u16,
479 LcdcBackporchxyReg_SPEC,
480 crate::common::RW,
481 > {
482 crate::common::RegisterField::<
483 16,
484 0xffff,
485 1,
486 0,
487 u16,
488 u16,
489 LcdcBackporchxyReg_SPEC,
490 crate::common::RW,
491 >::from_register(self, 0)
492 }
493
494 #[doc = "Back porch Y (pixel clocks)"]
495 #[inline(always)]
496 pub fn lcdc_bporch_y(
497 self,
498 ) -> crate::common::RegisterField<
499 0,
500 0xffff,
501 1,
502 0,
503 u16,
504 u16,
505 LcdcBackporchxyReg_SPEC,
506 crate::common::RW,
507 > {
508 crate::common::RegisterField::<
509 0,
510 0xffff,
511 1,
512 0,
513 u16,
514 u16,
515 LcdcBackporchxyReg_SPEC,
516 crate::common::RW,
517 >::from_register(self, 0)
518 }
519}
520impl ::core::default::Default for LcdcBackporchxyReg {
521 #[inline(always)]
522 fn default() -> LcdcBackporchxyReg {
523 <crate::RegValueT<LcdcBackporchxyReg_SPEC> as RegisterValue<_>>::new(0)
524 }
525}
526
527#[doc(hidden)]
528#[derive(Copy, Clone, Eq, PartialEq)]
529pub struct LcdcBgcolorReg_SPEC;
530impl crate::sealed::RegSpec for LcdcBgcolorReg_SPEC {
531 type DataType = u32;
532}
533
534#[doc = "Background Color"]
535pub type LcdcBgcolorReg = crate::RegValueT<LcdcBgcolorReg_SPEC>;
536
537impl LcdcBgcolorReg {
538 #[doc = "Red color used as background."]
539 #[inline(always)]
540 pub fn lcdc_bg_red(
541 self,
542 ) -> crate::common::RegisterField<24, 0xff, 1, 0, u8, u8, LcdcBgcolorReg_SPEC, crate::common::RW>
543 {
544 crate::common::RegisterField::<24,0xff,1,0,u8,u8,LcdcBgcolorReg_SPEC,crate::common::RW>::from_register(self,0)
545 }
546
547 #[doc = "Green color used as background."]
548 #[inline(always)]
549 pub fn lcdc_bg_green(
550 self,
551 ) -> crate::common::RegisterField<16, 0xff, 1, 0, u8, u8, LcdcBgcolorReg_SPEC, crate::common::RW>
552 {
553 crate::common::RegisterField::<16,0xff,1,0,u8,u8,LcdcBgcolorReg_SPEC,crate::common::RW>::from_register(self,0)
554 }
555
556 #[doc = "Blue color used as background."]
557 #[inline(always)]
558 pub fn lcdc_bg_blue(
559 self,
560 ) -> crate::common::RegisterField<8, 0xff, 1, 0, u8, u8, LcdcBgcolorReg_SPEC, crate::common::RW>
561 {
562 crate::common::RegisterField::<8,0xff,1,0,u8,u8,LcdcBgcolorReg_SPEC,crate::common::RW>::from_register(self,0)
563 }
564
565 #[doc = "Alpha color used as background."]
566 #[inline(always)]
567 pub fn lcdc_bg_alpha(
568 self,
569 ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, LcdcBgcolorReg_SPEC, crate::common::RW>
570 {
571 crate::common::RegisterField::<0,0xff,1,0,u8,u8,LcdcBgcolorReg_SPEC,crate::common::RW>::from_register(self,0)
572 }
573}
574impl ::core::default::Default for LcdcBgcolorReg {
575 #[inline(always)]
576 fn default() -> LcdcBgcolorReg {
577 <crate::RegValueT<LcdcBgcolorReg_SPEC> as RegisterValue<_>>::new(0)
578 }
579}
580
581#[doc(hidden)]
582#[derive(Copy, Clone, Eq, PartialEq)]
583pub struct LcdcBlankingxyReg_SPEC;
584impl crate::sealed::RegSpec for LcdcBlankingxyReg_SPEC {
585 type DataType = u32;
586}
587
588#[doc = "Blanking X and Y"]
589pub type LcdcBlankingxyReg = crate::RegValueT<LcdcBlankingxyReg_SPEC>;
590
591impl LcdcBlankingxyReg {
592 #[doc = "Blanking period X (VSYNC lines)"]
593 #[inline(always)]
594 pub fn lcdc_blanking_x(
595 self,
596 ) -> crate::common::RegisterField<
597 16,
598 0xffff,
599 1,
600 0,
601 u16,
602 u16,
603 LcdcBlankingxyReg_SPEC,
604 crate::common::RW,
605 > {
606 crate::common::RegisterField::<
607 16,
608 0xffff,
609 1,
610 0,
611 u16,
612 u16,
613 LcdcBlankingxyReg_SPEC,
614 crate::common::RW,
615 >::from_register(self, 0)
616 }
617
618 #[doc = "Blanking period Y (HSYNC pulse length)"]
619 #[inline(always)]
620 pub fn lcdc_blanking_y(
621 self,
622 ) -> crate::common::RegisterField<
623 0,
624 0xffff,
625 1,
626 0,
627 u16,
628 u16,
629 LcdcBlankingxyReg_SPEC,
630 crate::common::RW,
631 > {
632 crate::common::RegisterField::<
633 0,
634 0xffff,
635 1,
636 0,
637 u16,
638 u16,
639 LcdcBlankingxyReg_SPEC,
640 crate::common::RW,
641 >::from_register(self, 0)
642 }
643}
644impl ::core::default::Default for LcdcBlankingxyReg {
645 #[inline(always)]
646 fn default() -> LcdcBlankingxyReg {
647 <crate::RegValueT<LcdcBlankingxyReg_SPEC> as RegisterValue<_>>::new(0)
648 }
649}
650
651#[doc(hidden)]
652#[derive(Copy, Clone, Eq, PartialEq)]
653pub struct LcdcClkctrlReg_SPEC;
654impl crate::sealed::RegSpec for LcdcClkctrlReg_SPEC {
655 type DataType = u32;
656}
657
658#[doc = "Clock Divider"]
659pub type LcdcClkctrlReg = crate::RegValueT<LcdcClkctrlReg_SPEC>;
660
661impl LcdcClkctrlReg {
662 #[doc = "Secondary clock divider that generates the format pipeline clock. Source clock of this divider is the main clock of LCD controller. The period of the generated clock is defined as : (LCDC_SEC_CLK_DIV + 1) x period_of_main_clock."]
663 #[inline(always)]
664 pub fn lcdc_sec_clk_div(
665 self,
666 ) -> crate::common::RegisterField<27, 0x1f, 1, 0, u8, u8, LcdcClkctrlReg_SPEC, crate::common::RW>
667 {
668 crate::common::RegisterField::<27,0x1f,1,0,u8,u8,LcdcClkctrlReg_SPEC,crate::common::RW>::from_register(self,0)
669 }
670
671 #[doc = "Hold time before DMA activated."]
672 #[inline(always)]
673 pub fn lcdc_dma_hold(
674 self,
675 ) -> crate::common::RegisterField<8, 0x3f, 1, 0, u8, u8, LcdcClkctrlReg_SPEC, crate::common::RW>
676 {
677 crate::common::RegisterField::<8,0x3f,1,0,u8,u8,LcdcClkctrlReg_SPEC,crate::common::RW>::from_register(self,0)
678 }
679
680 #[doc = "Clock divider that generates the pixel pipeline clock. Source clock of this divider is the format pipeline clock (see also LCDC_SEC_CLK_DIV). The period of the generated clock is defines as : LCDC_CLK_DIV x period_of_format_clk. A zero value gives division by one."]
681 #[inline(always)]
682 pub fn lcdc_clk_div(
683 self,
684 ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, LcdcClkctrlReg_SPEC, crate::common::RW>
685 {
686 crate::common::RegisterField::<0,0x3f,1,0,u8,u8,LcdcClkctrlReg_SPEC,crate::common::RW>::from_register(self,0)
687 }
688}
689impl ::core::default::Default for LcdcClkctrlReg {
690 #[inline(always)]
691 fn default() -> LcdcClkctrlReg {
692 <crate::RegValueT<LcdcClkctrlReg_SPEC> as RegisterValue<_>>::new(1025)
693 }
694}
695
696#[doc(hidden)]
697#[derive(Copy, Clone, Eq, PartialEq)]
698pub struct LcdcCrcReg_SPEC;
699impl crate::sealed::RegSpec for LcdcCrcReg_SPEC {
700 type DataType = u32;
701}
702
703#[doc = "CRC check"]
704pub type LcdcCrcReg = crate::RegValueT<LcdcCrcReg_SPEC>;
705
706impl LcdcCrcReg {
707 #[doc = "CRC check."]
708 #[inline(always)]
709 pub fn lcdc_crc(
710 self,
711 ) -> crate::common::RegisterField<
712 0,
713 0xffffffff,
714 1,
715 0,
716 u32,
717 u32,
718 LcdcCrcReg_SPEC,
719 crate::common::R,
720 > {
721 crate::common::RegisterField::<
722 0,
723 0xffffffff,
724 1,
725 0,
726 u32,
727 u32,
728 LcdcCrcReg_SPEC,
729 crate::common::R,
730 >::from_register(self, 0)
731 }
732}
733impl ::core::default::Default for LcdcCrcReg {
734 #[inline(always)]
735 fn default() -> LcdcCrcReg {
736 <crate::RegValueT<LcdcCrcReg_SPEC> as RegisterValue<_>>::new(0)
737 }
738}
739
740#[doc(hidden)]
741#[derive(Copy, Clone, Eq, PartialEq)]
742pub struct LcdcDbibCfgReg_SPEC;
743impl crate::sealed::RegSpec for LcdcDbibCfgReg_SPEC {
744 type DataType = u32;
745}
746
747#[doc = "MIPI Config Register"]
748pub type LcdcDbibCfgReg = crate::RegValueT<LcdcDbibCfgReg_SPEC>;
749
750impl LcdcDbibCfgReg {
751 #[doc = "Disable the sampling of the tearing effect signal, which is provided by the LCD device.\n0: the tearing effect signal is sampled\n1: the tearing effect signal is not sampled."]
752 #[inline(always)]
753 pub fn lcdc_dbib_te_dis(
754 self,
755 ) -> crate::common::RegisterFieldBool<31, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
756 crate::common::RegisterFieldBool::<31,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
757 }
758
759 #[doc = "Forces the DBIB CSX value. When is enabled the DBIB CSX takes the value of the LCDC_DBIB_CSX_FORCE_VAL.\n0 : disable\n1 : enable"]
760 #[inline(always)]
761 pub fn lcdc_dbib_csx_force(
762 self,
763 ) -> crate::common::RegisterFieldBool<30, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
764 crate::common::RegisterFieldBool::<30,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
765 }
766
767 #[doc = "Value of DBIB CSX to be forced, if bit 30 is set. Defines also the active level of the DBIB CSX even if the bit 30 is not set."]
768 #[inline(always)]
769 pub fn lcdc_dbib_csx_force_val(
770 self,
771 ) -> crate::common::RegisterFieldBool<29, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
772 crate::common::RegisterFieldBool::<29,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
773 }
774
775 #[doc = "Data padding :\n0 : disable\n1 : enable"]
776 #[inline(always)]
777 pub fn lcdc_dbib_spi_pad(
778 self,
779 ) -> crate::common::RegisterFieldBool<28, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
780 crate::common::RegisterFieldBool::<28,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
781 }
782
783 #[doc = "DBIB RESX, reset signal for MIPI DBIB display."]
784 #[inline(always)]
785 pub fn lcdc_dbib_resx(
786 self,
787 ) -> crate::common::RegisterFieldBool<25, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
788 crate::common::RegisterFieldBool::<25,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
789 }
790
791 #[doc = "Send pixels from DMA to DBIB display.\n0 : disable\n1 : enable"]
792 #[inline(always)]
793 pub fn lcdc_dbib_dma_en(
794 self,
795 ) -> crate::common::RegisterFieldBool<24, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
796 crate::common::RegisterFieldBool::<24,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
797 }
798
799 #[doc = "Enable SPI3 interface.\n0 : disable\n1 : enable"]
800 #[inline(always)]
801 pub fn lcdc_dbib_spi3_en(
802 self,
803 ) -> crate::common::RegisterFieldBool<23, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
804 crate::common::RegisterFieldBool::<23,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
805 }
806
807 #[doc = "Enable SPI4 interface.\n0 : disable\n1 : enable"]
808 #[inline(always)]
809 pub fn lcdc_dbib_spi4_en(
810 self,
811 ) -> crate::common::RegisterFieldBool<22, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
812 crate::common::RegisterFieldBool::<22,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
813 }
814
815 #[doc = "Sets the data phase for the SPI interface"]
816 #[inline(always)]
817 pub fn lcdc_dbib_spi_cpha(
818 self,
819 ) -> crate::common::RegisterFieldBool<20, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
820 crate::common::RegisterFieldBool::<20,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
821 }
822
823 #[doc = "Sets the polarity of the clock (SCL)"]
824 #[inline(always)]
825 pub fn lcdc_dbib_spi_cpol(
826 self,
827 ) -> crate::common::RegisterFieldBool<19, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
828 crate::common::RegisterFieldBool::<19,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
829 }
830
831 #[doc = "Enables the line addressing between the horizontal lines (JDI SPI output format).\n0 : disable\n1 : enable"]
832 #[inline(always)]
833 pub fn lcdc_dbib_spi_jdi(
834 self,
835 ) -> crate::common::RegisterFieldBool<18, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
836 crate::common::RegisterFieldBool::<18,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
837 }
838
839 #[doc = "Enables the command HOLD mode of operation. Commands and data transmissions binding.\n0 : disable\n1 : enable"]
840 #[inline(always)]
841 pub fn lcdc_dbib_spi_hold(
842 self,
843 ) -> crate::common::RegisterFieldBool<17, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
844 crate::common::RegisterFieldBool::<17,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
845 }
846
847 #[doc = "Enables horizontal line address inversion.\n0 : disable\n1 : enable"]
848 #[inline(always)]
849 pub fn lcdc_dbib_spi_inv_addr(
850 self,
851 ) -> crate::common::RegisterFieldBool<16, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
852 crate::common::RegisterFieldBool::<16,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
853 }
854
855 #[doc = "Data inversion\n0 : disable\n1 : enable"]
856 #[inline(always)]
857 pub fn lcdc_dbib_inv_data(
858 self,
859 ) -> crate::common::RegisterFieldBool<15, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
860 crate::common::RegisterFieldBool::<15,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
861 }
862
863 #[doc = "MSB-LSB bit selection for JDI parallel interface\n0 : disable (MSB - LSB)\n1 : enable (LSB -MSB)"]
864 #[inline(always)]
865 pub fn lcdc_dbib_jdi_inv_pix(
866 self,
867 ) -> crate::common::RegisterFieldBool<14, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
868 crate::common::RegisterFieldBool::<14,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
869 }
870
871 #[doc = "JDI timing generation soft reset.\n0 : disable\n1 : enable"]
872 #[inline(always)]
873 pub fn lcdc_dbib_jdi_soft_rst(
874 self,
875 ) -> crate::common::RegisterFieldBool<13, 1, 0, LcdcDbibCfgReg_SPEC, crate::common::RW> {
876 crate::common::RegisterFieldBool::<13,1,0,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
877 }
878
879 #[doc = "Defines the output format and depends of the type of the output interface. For the SPI3/SPI4 are supported the following formats:\n0x06 : RGB111-1 {2b00, R(n), G(n), B(n), R(n+1), G(n+1), B(n+1)}\n0x07 : RGB111-2 {R(n), G(n), B(n), 1b0, R(n+1), G(n+1), B(n+1), 1b0}\n0x08 : RGB111-3 {R(n), G(n), B(n), R(n+1), G(n+1), B(n+1), R(n+2), G(n+2), B(n+2),... }\n0x09 : RGB111-4 {D(n), D(n+1), D(n+2),...}\n0x10 : RGB332\n0x11 : RGB444\n0x12 : RGB565\n0x13 : RGB666\n0x14 : RGB888\n\nFor the JDI parallel interface should be used the format :\n0x0A : RGB222"]
880 #[inline(always)]
881 pub fn lcdc_dbib_fmt(
882 self,
883 ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, LcdcDbibCfgReg_SPEC, crate::common::RW>
884 {
885 crate::common::RegisterField::<0,0x1f,1,0,u8,u8,LcdcDbibCfgReg_SPEC,crate::common::RW>::from_register(self,0)
886 }
887}
888impl ::core::default::Default for LcdcDbibCfgReg {
889 #[inline(always)]
890 fn default() -> LcdcDbibCfgReg {
891 <crate::RegValueT<LcdcDbibCfgReg_SPEC> as RegisterValue<_>>::new(0)
892 }
893}
894
895#[doc(hidden)]
896#[derive(Copy, Clone, Eq, PartialEq)]
897pub struct LcdcDbibCmdReg_SPEC;
898impl crate::sealed::RegSpec for LcdcDbibCmdReg_SPEC {
899 type DataType = u32;
900}
901
902#[doc = "MIPI DBIB Command Register"]
903pub type LcdcDbibCmdReg = crate::RegValueT<LcdcDbibCmdReg_SPEC>;
904
905impl LcdcDbibCmdReg {
906 #[doc = "Send command to the DBI interface"]
907 #[inline(always)]
908 pub fn lcdc_dbib_cmd_send(
909 self,
910 ) -> crate::common::RegisterFieldBool<30, 1, 0, LcdcDbibCmdReg_SPEC, crate::common::RW> {
911 crate::common::RegisterFieldBool::<30,1,0,LcdcDbibCmdReg_SPEC,crate::common::RW>::from_register(self,0)
912 }
913
914 #[doc = "This bit has meaning only when LCDC_DBIB_CFG_REG\\[LCDC_DBIB_SPI_JDI\\] = 1. When is enabled, stores the LCDC_DBIB_CMD_VAL to the register that keeps the Y position."]
915 #[inline(always)]
916 pub fn lcdc_dbib_cmd_store(
917 self,
918 ) -> crate::common::RegisterFieldBool<27, 1, 0, LcdcDbibCmdReg_SPEC, crate::common::RW> {
919 crate::common::RegisterFieldBool::<27,1,0,LcdcDbibCmdReg_SPEC,crate::common::RW>::from_register(self,0)
920 }
921
922 #[doc = "Data to send to the DBI interface"]
923 #[inline(always)]
924 pub fn lcdc_dbib_cmd_val(
925 self,
926 ) -> crate::common::RegisterField<
927 0,
928 0xffff,
929 1,
930 0,
931 u16,
932 u16,
933 LcdcDbibCmdReg_SPEC,
934 crate::common::RW,
935 > {
936 crate::common::RegisterField::<
937 0,
938 0xffff,
939 1,
940 0,
941 u16,
942 u16,
943 LcdcDbibCmdReg_SPEC,
944 crate::common::RW,
945 >::from_register(self, 0)
946 }
947}
948impl ::core::default::Default for LcdcDbibCmdReg {
949 #[inline(always)]
950 fn default() -> LcdcDbibCmdReg {
951 <crate::RegValueT<LcdcDbibCmdReg_SPEC> as RegisterValue<_>>::new(0)
952 }
953}
954
955#[doc(hidden)]
956#[derive(Copy, Clone, Eq, PartialEq)]
957pub struct LcdcFrontporchxyReg_SPEC;
958impl crate::sealed::RegSpec for LcdcFrontporchxyReg_SPEC {
959 type DataType = u32;
960}
961
962#[doc = "Front Porch X and Y"]
963pub type LcdcFrontporchxyReg = crate::RegValueT<LcdcFrontporchxyReg_SPEC>;
964
965impl LcdcFrontporchxyReg {
966 #[doc = "Front porch X (lines)"]
967 #[inline(always)]
968 pub fn lcdc_fporch_x(
969 self,
970 ) -> crate::common::RegisterField<
971 16,
972 0xffff,
973 1,
974 0,
975 u16,
976 u16,
977 LcdcFrontporchxyReg_SPEC,
978 crate::common::RW,
979 > {
980 crate::common::RegisterField::<
981 16,
982 0xffff,
983 1,
984 0,
985 u16,
986 u16,
987 LcdcFrontporchxyReg_SPEC,
988 crate::common::RW,
989 >::from_register(self, 0)
990 }
991
992 #[doc = "Front porch Y (pixel clocks)"]
993 #[inline(always)]
994 pub fn lcdc_fporch_y(
995 self,
996 ) -> crate::common::RegisterField<
997 0,
998 0xffff,
999 1,
1000 0,
1001 u16,
1002 u16,
1003 LcdcFrontporchxyReg_SPEC,
1004 crate::common::RW,
1005 > {
1006 crate::common::RegisterField::<
1007 0,
1008 0xffff,
1009 1,
1010 0,
1011 u16,
1012 u16,
1013 LcdcFrontporchxyReg_SPEC,
1014 crate::common::RW,
1015 >::from_register(self, 0)
1016 }
1017}
1018impl ::core::default::Default for LcdcFrontporchxyReg {
1019 #[inline(always)]
1020 fn default() -> LcdcFrontporchxyReg {
1021 <crate::RegValueT<LcdcFrontporchxyReg_SPEC> as RegisterValue<_>>::new(0)
1022 }
1023}
1024
1025#[doc(hidden)]
1026#[derive(Copy, Clone, Eq, PartialEq)]
1027pub struct LcdcGpioReg_SPEC;
1028impl crate::sealed::RegSpec for LcdcGpioReg_SPEC {
1029 type DataType = u32;
1030}
1031
1032#[doc = "General Purpose IO (2-bits)"]
1033pub type LcdcGpioReg = crate::RegValueT<LcdcGpioReg_SPEC>;
1034
1035impl LcdcGpioReg {
1036 #[doc = "Applies an inversion on the TE (tearing effect) signal.\n0 : the inversion is not applied on the TE signal\n1 : the inversion is applied on TE signal"]
1037 #[inline(always)]
1038 pub fn lcdc_te_inv(
1039 self,
1040 ) -> crate::common::RegisterFieldBool<1, 1, 0, LcdcGpioReg_SPEC, crate::common::RW> {
1041 crate::common::RegisterFieldBool::<1,1,0,LcdcGpioReg_SPEC,crate::common::RW>::from_register(self,0)
1042 }
1043
1044 #[doc = "Selection of the parallel interface type that is forwarded to the gpio pins.\n0 : JDI interface signals\n1 : Clasic parallel interface"]
1045 #[inline(always)]
1046 pub fn lcdc_parif_sel(
1047 self,
1048 ) -> crate::common::RegisterFieldBool<0, 1, 0, LcdcGpioReg_SPEC, crate::common::RW> {
1049 crate::common::RegisterFieldBool::<0,1,0,LcdcGpioReg_SPEC,crate::common::RW>::from_register(self,0)
1050 }
1051}
1052impl ::core::default::Default for LcdcGpioReg {
1053 #[inline(always)]
1054 fn default() -> LcdcGpioReg {
1055 <crate::RegValueT<LcdcGpioReg_SPEC> as RegisterValue<_>>::new(0)
1056 }
1057}
1058
1059#[doc(hidden)]
1060#[derive(Copy, Clone, Eq, PartialEq)]
1061pub struct LcdcIdregReg_SPEC;
1062impl crate::sealed::RegSpec for LcdcIdregReg_SPEC {
1063 type DataType = u32;
1064}
1065
1066#[doc = "Identification Register"]
1067pub type LcdcIdregReg = crate::RegValueT<LcdcIdregReg_SPEC>;
1068
1069impl LcdcIdregReg {
1070 #[doc = "Identification register"]
1071 #[inline(always)]
1072 pub fn lcdc_id(
1073 self,
1074 ) -> crate::common::RegisterField<
1075 0,
1076 0xffffffff,
1077 1,
1078 0,
1079 u32,
1080 u32,
1081 LcdcIdregReg_SPEC,
1082 crate::common::R,
1083 > {
1084 crate::common::RegisterField::<
1085 0,
1086 0xffffffff,
1087 1,
1088 0,
1089 u32,
1090 u32,
1091 LcdcIdregReg_SPEC,
1092 crate::common::R,
1093 >::from_register(self, 0)
1094 }
1095}
1096impl ::core::default::Default for LcdcIdregReg {
1097 #[inline(always)]
1098 fn default() -> LcdcIdregReg {
1099 <crate::RegValueT<LcdcIdregReg_SPEC> as RegisterValue<_>>::new(2147483647)
1100 }
1101}
1102
1103#[doc(hidden)]
1104#[derive(Copy, Clone, Eq, PartialEq)]
1105pub struct LcdcInterruptReg_SPEC;
1106impl crate::sealed::RegSpec for LcdcInterruptReg_SPEC {
1107 type DataType = u32;
1108}
1109
1110#[doc = "Interrupt Register"]
1111pub type LcdcInterruptReg = crate::RegValueT<LcdcInterruptReg_SPEC>;
1112
1113impl LcdcInterruptReg {
1114 #[doc = "IRQ trigger control\n0: Level triggering\n1: Edge triggering\nIn the case of the level triggering, the request remains active in the LCDC until to be cleared. The request can be cleared by performing a write access in the LCDC_INTERRUPT_REG. This is not required in the case of the edge triggering."]
1115 #[inline(always)]
1116 pub fn lcdc_irq_trigger_sel(
1117 self,
1118 ) -> crate::common::RegisterFieldBool<31, 1, 0, LcdcInterruptReg_SPEC, crate::common::RW> {
1119 crate::common::RegisterFieldBool::<31,1,0,LcdcInterruptReg_SPEC,crate::common::RW>::from_register(self,0)
1120 }
1121
1122 #[doc = "Continuous mode: frame end. Single mode: frame end or idle."]
1123 #[inline(always)]
1124 pub fn lcdc_frame_end_irq_en(
1125 self,
1126 ) -> crate::common::RegisterFieldBool<5, 1, 0, LcdcInterruptReg_SPEC, crate::common::RW> {
1127 crate::common::RegisterFieldBool::<5,1,0,LcdcInterruptReg_SPEC,crate::common::RW>::from_register(self,0)
1128 }
1129
1130 #[doc = "TE interrupt enable. See also the configuration bit LCDC_DBIB_CFG_REG\\[LCDC_DBIB_TE_DIS\\]"]
1131 #[inline(always)]
1132 pub fn lcdc_te_irq_en(
1133 self,
1134 ) -> crate::common::RegisterFieldBool<3, 1, 0, LcdcInterruptReg_SPEC, crate::common::RW> {
1135 crate::common::RegisterFieldBool::<3,1,0,LcdcInterruptReg_SPEC,crate::common::RW>::from_register(self,0)
1136 }
1137
1138 #[doc = "HSYNC interrupt enabled"]
1139 #[inline(always)]
1140 pub fn lcdc_hsync_irq_en(
1141 self,
1142 ) -> crate::common::RegisterFieldBool<1, 1, 0, LcdcInterruptReg_SPEC, crate::common::RW> {
1143 crate::common::RegisterFieldBool::<1,1,0,LcdcInterruptReg_SPEC,crate::common::RW>::from_register(self,0)
1144 }
1145
1146 #[doc = "VSYNC or TE interrupt enabled. See also the configuration bit LCDC_DBIB_CFG_REG\\[LCDC_DBIB_TE_DIS\\] for the TE signal."]
1147 #[inline(always)]
1148 pub fn lcdc_vsync_irq_en(
1149 self,
1150 ) -> crate::common::RegisterFieldBool<0, 1, 0, LcdcInterruptReg_SPEC, crate::common::RW> {
1151 crate::common::RegisterFieldBool::<0,1,0,LcdcInterruptReg_SPEC,crate::common::RW>::from_register(self,0)
1152 }
1153}
1154impl ::core::default::Default for LcdcInterruptReg {
1155 #[inline(always)]
1156 fn default() -> LcdcInterruptReg {
1157 <crate::RegValueT<LcdcInterruptReg_SPEC> as RegisterValue<_>>::new(1)
1158 }
1159}
1160
1161#[doc(hidden)]
1162#[derive(Copy, Clone, Eq, PartialEq)]
1163pub struct LcdcJdiEnbEndHlineReg_SPEC;
1164impl crate::sealed::RegSpec for LcdcJdiEnbEndHlineReg_SPEC {
1165 type DataType = u32;
1166}
1167
1168#[doc = "ENB end horizontal line"]
1169pub type LcdcJdiEnbEndHlineReg = crate::RegValueT<LcdcJdiEnbEndHlineReg_SPEC>;
1170
1171impl LcdcJdiEnbEndHlineReg {
1172 #[doc = "The number of the last horizontal line where the ENB signal is asserted"]
1173 #[inline(always)]
1174 pub fn lcdc_jdi_enb_end_hline(
1175 self,
1176 ) -> crate::common::RegisterField<
1177 0,
1178 0xffffffff,
1179 1,
1180 0,
1181 u32,
1182 u32,
1183 LcdcJdiEnbEndHlineReg_SPEC,
1184 crate::common::RW,
1185 > {
1186 crate::common::RegisterField::<
1187 0,
1188 0xffffffff,
1189 1,
1190 0,
1191 u32,
1192 u32,
1193 LcdcJdiEnbEndHlineReg_SPEC,
1194 crate::common::RW,
1195 >::from_register(self, 0)
1196 }
1197}
1198impl ::core::default::Default for LcdcJdiEnbEndHlineReg {
1199 #[inline(always)]
1200 fn default() -> LcdcJdiEnbEndHlineReg {
1201 <crate::RegValueT<LcdcJdiEnbEndHlineReg_SPEC> as RegisterValue<_>>::new(0)
1202 }
1203}
1204
1205#[doc(hidden)]
1206#[derive(Copy, Clone, Eq, PartialEq)]
1207pub struct LcdcJdiEnbStartClkReg_SPEC;
1208impl crate::sealed::RegSpec for LcdcJdiEnbStartClkReg_SPEC {
1209 type DataType = u32;
1210}
1211
1212#[doc = "ENB start delay"]
1213pub type LcdcJdiEnbStartClkReg = crate::RegValueT<LcdcJdiEnbStartClkReg_SPEC>;
1214
1215impl LcdcJdiEnbStartClkReg {
1216 #[doc = "Defines the number of the HCK half periods that should take place after a transtion in the VCK and before to be enabled of the ENB."]
1217 #[inline(always)]
1218 pub fn lcdc_jdi_enb_start_clk(
1219 self,
1220 ) -> crate::common::RegisterField<
1221 0,
1222 0xffffffff,
1223 1,
1224 0,
1225 u32,
1226 u32,
1227 LcdcJdiEnbStartClkReg_SPEC,
1228 crate::common::RW,
1229 > {
1230 crate::common::RegisterField::<
1231 0,
1232 0xffffffff,
1233 1,
1234 0,
1235 u32,
1236 u32,
1237 LcdcJdiEnbStartClkReg_SPEC,
1238 crate::common::RW,
1239 >::from_register(self, 0)
1240 }
1241}
1242impl ::core::default::Default for LcdcJdiEnbStartClkReg {
1243 #[inline(always)]
1244 fn default() -> LcdcJdiEnbStartClkReg {
1245 <crate::RegValueT<LcdcJdiEnbStartClkReg_SPEC> as RegisterValue<_>>::new(0)
1246 }
1247}
1248
1249#[doc(hidden)]
1250#[derive(Copy, Clone, Eq, PartialEq)]
1251pub struct LcdcJdiEnbStartHlineReg_SPEC;
1252impl crate::sealed::RegSpec for LcdcJdiEnbStartHlineReg_SPEC {
1253 type DataType = u32;
1254}
1255
1256#[doc = "ENB start horizontal line"]
1257pub type LcdcJdiEnbStartHlineReg = crate::RegValueT<LcdcJdiEnbStartHlineReg_SPEC>;
1258
1259impl LcdcJdiEnbStartHlineReg {
1260 #[doc = "The number of the first horizontal line where the ENB signal is asserted"]
1261 #[inline(always)]
1262 pub fn lcdc_jdi_enb_start_hline(
1263 self,
1264 ) -> crate::common::RegisterField<
1265 0,
1266 0xffffffff,
1267 1,
1268 0,
1269 u32,
1270 u32,
1271 LcdcJdiEnbStartHlineReg_SPEC,
1272 crate::common::RW,
1273 > {
1274 crate::common::RegisterField::<
1275 0,
1276 0xffffffff,
1277 1,
1278 0,
1279 u32,
1280 u32,
1281 LcdcJdiEnbStartHlineReg_SPEC,
1282 crate::common::RW,
1283 >::from_register(self, 0)
1284 }
1285}
1286impl ::core::default::Default for LcdcJdiEnbStartHlineReg {
1287 #[inline(always)]
1288 fn default() -> LcdcJdiEnbStartHlineReg {
1289 <crate::RegValueT<LcdcJdiEnbStartHlineReg_SPEC> as RegisterValue<_>>::new(0)
1290 }
1291}
1292
1293#[doc(hidden)]
1294#[derive(Copy, Clone, Eq, PartialEq)]
1295pub struct LcdcJdiEnbWidthClkReg_SPEC;
1296impl crate::sealed::RegSpec for LcdcJdiEnbWidthClkReg_SPEC {
1297 type DataType = u32;
1298}
1299
1300#[doc = "ENB width"]
1301pub type LcdcJdiEnbWidthClkReg = crate::RegValueT<LcdcJdiEnbWidthClkReg_SPEC>;
1302
1303impl LcdcJdiEnbWidthClkReg {
1304 #[doc = "ENB (high) width in HCK half periods"]
1305 #[inline(always)]
1306 pub fn lcdc_jdi_enb_width_clk(
1307 self,
1308 ) -> crate::common::RegisterField<
1309 0,
1310 0xffffffff,
1311 1,
1312 0,
1313 u32,
1314 u32,
1315 LcdcJdiEnbWidthClkReg_SPEC,
1316 crate::common::RW,
1317 > {
1318 crate::common::RegisterField::<
1319 0,
1320 0xffffffff,
1321 1,
1322 0,
1323 u32,
1324 u32,
1325 LcdcJdiEnbWidthClkReg_SPEC,
1326 crate::common::RW,
1327 >::from_register(self, 0)
1328 }
1329}
1330impl ::core::default::Default for LcdcJdiEnbWidthClkReg {
1331 #[inline(always)]
1332 fn default() -> LcdcJdiEnbWidthClkReg {
1333 <crate::RegValueT<LcdcJdiEnbWidthClkReg_SPEC> as RegisterValue<_>>::new(0)
1334 }
1335}
1336
1337#[doc(hidden)]
1338#[derive(Copy, Clone, Eq, PartialEq)]
1339pub struct LcdcJdiFbxBlankingReg_SPEC;
1340impl crate::sealed::RegSpec for LcdcJdiFbxBlankingReg_SPEC {
1341 type DataType = u32;
1342}
1343
1344#[doc = "Horizontal front/back blanking (hck half periods)"]
1345pub type LcdcJdiFbxBlankingReg = crate::RegValueT<LcdcJdiFbxBlankingReg_SPEC>;
1346
1347impl LcdcJdiFbxBlankingReg {
1348 #[doc = "Horizontal front blanking as a number of hck half periods"]
1349 #[inline(always)]
1350 pub fn lcdc_jdi_fxblanking(
1351 self,
1352 ) -> crate::common::RegisterField<
1353 16,
1354 0xffff,
1355 1,
1356 0,
1357 u16,
1358 u16,
1359 LcdcJdiFbxBlankingReg_SPEC,
1360 crate::common::RW,
1361 > {
1362 crate::common::RegisterField::<
1363 16,
1364 0xffff,
1365 1,
1366 0,
1367 u16,
1368 u16,
1369 LcdcJdiFbxBlankingReg_SPEC,
1370 crate::common::RW,
1371 >::from_register(self, 0)
1372 }
1373
1374 #[doc = "Horizontal back blanking as a number of hck half periods"]
1375 #[inline(always)]
1376 pub fn lcdc_jdi_bxblanking(
1377 self,
1378 ) -> crate::common::RegisterField<
1379 0,
1380 0xffff,
1381 1,
1382 0,
1383 u16,
1384 u16,
1385 LcdcJdiFbxBlankingReg_SPEC,
1386 crate::common::RW,
1387 > {
1388 crate::common::RegisterField::<
1389 0,
1390 0xffff,
1391 1,
1392 0,
1393 u16,
1394 u16,
1395 LcdcJdiFbxBlankingReg_SPEC,
1396 crate::common::RW,
1397 >::from_register(self, 0)
1398 }
1399}
1400impl ::core::default::Default for LcdcJdiFbxBlankingReg {
1401 #[inline(always)]
1402 fn default() -> LcdcJdiFbxBlankingReg {
1403 <crate::RegValueT<LcdcJdiFbxBlankingReg_SPEC> as RegisterValue<_>>::new(0)
1404 }
1405}
1406
1407#[doc(hidden)]
1408#[derive(Copy, Clone, Eq, PartialEq)]
1409pub struct LcdcJdiFbyBlankingReg_SPEC;
1410impl crate::sealed::RegSpec for LcdcJdiFbyBlankingReg_SPEC {
1411 type DataType = u32;
1412}
1413
1414#[doc = "Vertical front/back blanking (vck half periods)"]
1415pub type LcdcJdiFbyBlankingReg = crate::RegValueT<LcdcJdiFbyBlankingReg_SPEC>;
1416
1417impl LcdcJdiFbyBlankingReg {
1418 #[doc = "Vertical front blanking as a number of vck half periods"]
1419 #[inline(always)]
1420 pub fn lcdc_jdi_fyblanking(
1421 self,
1422 ) -> crate::common::RegisterField<
1423 16,
1424 0xffff,
1425 1,
1426 0,
1427 u16,
1428 u16,
1429 LcdcJdiFbyBlankingReg_SPEC,
1430 crate::common::RW,
1431 > {
1432 crate::common::RegisterField::<
1433 16,
1434 0xffff,
1435 1,
1436 0,
1437 u16,
1438 u16,
1439 LcdcJdiFbyBlankingReg_SPEC,
1440 crate::common::RW,
1441 >::from_register(self, 0)
1442 }
1443
1444 #[doc = "Vertical back blanking as a number of vck half periods"]
1445 #[inline(always)]
1446 pub fn lcdc_jdi_byblanking(
1447 self,
1448 ) -> crate::common::RegisterField<
1449 0,
1450 0xffff,
1451 1,
1452 0,
1453 u16,
1454 u16,
1455 LcdcJdiFbyBlankingReg_SPEC,
1456 crate::common::RW,
1457 > {
1458 crate::common::RegisterField::<
1459 0,
1460 0xffff,
1461 1,
1462 0,
1463 u16,
1464 u16,
1465 LcdcJdiFbyBlankingReg_SPEC,
1466 crate::common::RW,
1467 >::from_register(self, 0)
1468 }
1469}
1470impl ::core::default::Default for LcdcJdiFbyBlankingReg {
1471 #[inline(always)]
1472 fn default() -> LcdcJdiFbyBlankingReg {
1473 <crate::RegValueT<LcdcJdiFbyBlankingReg_SPEC> as RegisterValue<_>>::new(0)
1474 }
1475}
1476
1477#[doc(hidden)]
1478#[derive(Copy, Clone, Eq, PartialEq)]
1479pub struct LcdcJdiHckWidthReg_SPEC;
1480impl crate::sealed::RegSpec for LcdcJdiHckWidthReg_SPEC {
1481 type DataType = u32;
1482}
1483
1484#[doc = "HCK high/low width"]
1485pub type LcdcJdiHckWidthReg = crate::RegValueT<LcdcJdiHckWidthReg_SPEC>;
1486
1487impl LcdcJdiHckWidthReg {
1488 #[doc = "Number of format pipeline clock cycles that define the half period of the of the HCK (high and low width). The minimum allowed value is 2."]
1489 #[inline(always)]
1490 pub fn lcdc_jdi_hck_width(
1491 self,
1492 ) -> crate::common::RegisterField<
1493 0,
1494 0xffffffff,
1495 1,
1496 0,
1497 u32,
1498 u32,
1499 LcdcJdiHckWidthReg_SPEC,
1500 crate::common::RW,
1501 > {
1502 crate::common::RegisterField::<
1503 0,
1504 0xffffffff,
1505 1,
1506 0,
1507 u32,
1508 u32,
1509 LcdcJdiHckWidthReg_SPEC,
1510 crate::common::RW,
1511 >::from_register(self, 0)
1512 }
1513}
1514impl ::core::default::Default for LcdcJdiHckWidthReg {
1515 #[inline(always)]
1516 fn default() -> LcdcJdiHckWidthReg {
1517 <crate::RegValueT<LcdcJdiHckWidthReg_SPEC> as RegisterValue<_>>::new(0)
1518 }
1519}
1520
1521#[doc(hidden)]
1522#[derive(Copy, Clone, Eq, PartialEq)]
1523pub struct LcdcJdiHstDelayReg_SPEC;
1524impl crate::sealed::RegSpec for LcdcJdiHstDelayReg_SPEC {
1525 type DataType = u32;
1526}
1527
1528#[doc = "VCK-to-HST delay"]
1529pub type LcdcJdiHstDelayReg = crate::RegValueT<LcdcJdiHstDelayReg_SPEC>;
1530
1531impl LcdcJdiHstDelayReg {
1532 #[doc = "VCK-to-HST delay in format pipeline clock cycles"]
1533 #[inline(always)]
1534 pub fn lcdc_jdi_hst_delay(
1535 self,
1536 ) -> crate::common::RegisterField<
1537 0,
1538 0xffffffff,
1539 1,
1540 0,
1541 u32,
1542 u32,
1543 LcdcJdiHstDelayReg_SPEC,
1544 crate::common::RW,
1545 > {
1546 crate::common::RegisterField::<
1547 0,
1548 0xffffffff,
1549 1,
1550 0,
1551 u32,
1552 u32,
1553 LcdcJdiHstDelayReg_SPEC,
1554 crate::common::RW,
1555 >::from_register(self, 0)
1556 }
1557}
1558impl ::core::default::Default for LcdcJdiHstDelayReg {
1559 #[inline(always)]
1560 fn default() -> LcdcJdiHstDelayReg {
1561 <crate::RegValueT<LcdcJdiHstDelayReg_SPEC> as RegisterValue<_>>::new(0)
1562 }
1563}
1564
1565#[doc(hidden)]
1566#[derive(Copy, Clone, Eq, PartialEq)]
1567pub struct LcdcJdiHstWidthReg_SPEC;
1568impl crate::sealed::RegSpec for LcdcJdiHstWidthReg_SPEC {
1569 type DataType = u32;
1570}
1571
1572#[doc = "HST width"]
1573pub type LcdcJdiHstWidthReg = crate::RegValueT<LcdcJdiHstWidthReg_SPEC>;
1574
1575impl LcdcJdiHstWidthReg {
1576 #[doc = "HST width in format pipeline clock cycles"]
1577 #[inline(always)]
1578 pub fn lcdc_jdi_hst_width(
1579 self,
1580 ) -> crate::common::RegisterField<
1581 0,
1582 0xffffffff,
1583 1,
1584 0,
1585 u32,
1586 u32,
1587 LcdcJdiHstWidthReg_SPEC,
1588 crate::common::RW,
1589 > {
1590 crate::common::RegisterField::<
1591 0,
1592 0xffffffff,
1593 1,
1594 0,
1595 u32,
1596 u32,
1597 LcdcJdiHstWidthReg_SPEC,
1598 crate::common::RW,
1599 >::from_register(self, 0)
1600 }
1601}
1602impl ::core::default::Default for LcdcJdiHstWidthReg {
1603 #[inline(always)]
1604 fn default() -> LcdcJdiHstWidthReg {
1605 <crate::RegValueT<LcdcJdiHstWidthReg_SPEC> as RegisterValue<_>>::new(0)
1606 }
1607}
1608
1609#[doc(hidden)]
1610#[derive(Copy, Clone, Eq, PartialEq)]
1611pub struct LcdcJdiResxyReg_SPEC;
1612impl crate::sealed::RegSpec for LcdcJdiResxyReg_SPEC {
1613 type DataType = u32;
1614}
1615
1616#[doc = "Resolution XY for the JDI parallel I/F"]
1617pub type LcdcJdiResxyReg = crate::RegValueT<LcdcJdiResxyReg_SPEC>;
1618
1619impl LcdcJdiResxyReg {
1620 #[doc = "Number of horizontal transfers. Should be equal to the half of the horizontal resolution (in pixels)."]
1621 #[inline(always)]
1622 pub fn lcdc_jdi_res_x(
1623 self,
1624 ) -> crate::common::RegisterField<
1625 16,
1626 0xffff,
1627 1,
1628 0,
1629 u16,
1630 u16,
1631 LcdcJdiResxyReg_SPEC,
1632 crate::common::RW,
1633 > {
1634 crate::common::RegisterField::<
1635 16,
1636 0xffff,
1637 1,
1638 0,
1639 u16,
1640 u16,
1641 LcdcJdiResxyReg_SPEC,
1642 crate::common::RW,
1643 >::from_register(self, 0)
1644 }
1645
1646 #[doc = "Number of vertical transfers. Should be equal to the double of the vertical resolution (in lines)."]
1647 #[inline(always)]
1648 pub fn lcdc_jdi_res_y(
1649 self,
1650 ) -> crate::common::RegisterField<
1651 0,
1652 0xffff,
1653 1,
1654 0,
1655 u16,
1656 u16,
1657 LcdcJdiResxyReg_SPEC,
1658 crate::common::RW,
1659 > {
1660 crate::common::RegisterField::<
1661 0,
1662 0xffff,
1663 1,
1664 0,
1665 u16,
1666 u16,
1667 LcdcJdiResxyReg_SPEC,
1668 crate::common::RW,
1669 >::from_register(self, 0)
1670 }
1671}
1672impl ::core::default::Default for LcdcJdiResxyReg {
1673 #[inline(always)]
1674 fn default() -> LcdcJdiResxyReg {
1675 <crate::RegValueT<LcdcJdiResxyReg_SPEC> as RegisterValue<_>>::new(0)
1676 }
1677}
1678
1679#[doc(hidden)]
1680#[derive(Copy, Clone, Eq, PartialEq)]
1681pub struct LcdcJdiVckDelayReg_SPEC;
1682impl crate::sealed::RegSpec for LcdcJdiVckDelayReg_SPEC {
1683 type DataType = u32;
1684}
1685
1686#[doc = "XRST-to-VCK delay"]
1687pub type LcdcJdiVckDelayReg = crate::RegValueT<LcdcJdiVckDelayReg_SPEC>;
1688
1689impl LcdcJdiVckDelayReg {
1690 #[doc = "XRST-to-VCK delay in format pipeline clock cycles"]
1691 #[inline(always)]
1692 pub fn lcdc_jdi_vck_delay(
1693 self,
1694 ) -> crate::common::RegisterField<
1695 0,
1696 0xffffffff,
1697 1,
1698 0,
1699 u32,
1700 u32,
1701 LcdcJdiVckDelayReg_SPEC,
1702 crate::common::RW,
1703 > {
1704 crate::common::RegisterField::<
1705 0,
1706 0xffffffff,
1707 1,
1708 0,
1709 u32,
1710 u32,
1711 LcdcJdiVckDelayReg_SPEC,
1712 crate::common::RW,
1713 >::from_register(self, 0)
1714 }
1715}
1716impl ::core::default::Default for LcdcJdiVckDelayReg {
1717 #[inline(always)]
1718 fn default() -> LcdcJdiVckDelayReg {
1719 <crate::RegValueT<LcdcJdiVckDelayReg_SPEC> as RegisterValue<_>>::new(0)
1720 }
1721}
1722
1723#[doc(hidden)]
1724#[derive(Copy, Clone, Eq, PartialEq)]
1725pub struct LcdcJdiVstDelayReg_SPEC;
1726impl crate::sealed::RegSpec for LcdcJdiVstDelayReg_SPEC {
1727 type DataType = u32;
1728}
1729
1730#[doc = "XRST-to-VST delay"]
1731pub type LcdcJdiVstDelayReg = crate::RegValueT<LcdcJdiVstDelayReg_SPEC>;
1732
1733impl LcdcJdiVstDelayReg {
1734 #[doc = "XRST-to-VST delay in format pipeline clock cycles"]
1735 #[inline(always)]
1736 pub fn lcdc_jdi_vst_delay(
1737 self,
1738 ) -> crate::common::RegisterField<
1739 0,
1740 0xffffffff,
1741 1,
1742 0,
1743 u32,
1744 u32,
1745 LcdcJdiVstDelayReg_SPEC,
1746 crate::common::RW,
1747 > {
1748 crate::common::RegisterField::<
1749 0,
1750 0xffffffff,
1751 1,
1752 0,
1753 u32,
1754 u32,
1755 LcdcJdiVstDelayReg_SPEC,
1756 crate::common::RW,
1757 >::from_register(self, 0)
1758 }
1759}
1760impl ::core::default::Default for LcdcJdiVstDelayReg {
1761 #[inline(always)]
1762 fn default() -> LcdcJdiVstDelayReg {
1763 <crate::RegValueT<LcdcJdiVstDelayReg_SPEC> as RegisterValue<_>>::new(0)
1764 }
1765}
1766
1767#[doc(hidden)]
1768#[derive(Copy, Clone, Eq, PartialEq)]
1769pub struct LcdcJdiVstWidthReg_SPEC;
1770impl crate::sealed::RegSpec for LcdcJdiVstWidthReg_SPEC {
1771 type DataType = u32;
1772}
1773
1774#[doc = "VST width"]
1775pub type LcdcJdiVstWidthReg = crate::RegValueT<LcdcJdiVstWidthReg_SPEC>;
1776
1777impl LcdcJdiVstWidthReg {
1778 #[doc = "VST width in format pipeline clock cycles"]
1779 #[inline(always)]
1780 pub fn lcdc_jdi_vst_width(
1781 self,
1782 ) -> crate::common::RegisterField<
1783 0,
1784 0xffffffff,
1785 1,
1786 0,
1787 u32,
1788 u32,
1789 LcdcJdiVstWidthReg_SPEC,
1790 crate::common::RW,
1791 > {
1792 crate::common::RegisterField::<
1793 0,
1794 0xffffffff,
1795 1,
1796 0,
1797 u32,
1798 u32,
1799 LcdcJdiVstWidthReg_SPEC,
1800 crate::common::RW,
1801 >::from_register(self, 0)
1802 }
1803}
1804impl ::core::default::Default for LcdcJdiVstWidthReg {
1805 #[inline(always)]
1806 fn default() -> LcdcJdiVstWidthReg {
1807 <crate::RegValueT<LcdcJdiVstWidthReg_SPEC> as RegisterValue<_>>::new(0)
1808 }
1809}
1810
1811#[doc(hidden)]
1812#[derive(Copy, Clone, Eq, PartialEq)]
1813pub struct LcdcJdiXrstWidthReg_SPEC;
1814impl crate::sealed::RegSpec for LcdcJdiXrstWidthReg_SPEC {
1815 type DataType = u32;
1816}
1817
1818#[doc = "XRST width"]
1819pub type LcdcJdiXrstWidthReg = crate::RegValueT<LcdcJdiXrstWidthReg_SPEC>;
1820
1821impl LcdcJdiXrstWidthReg {
1822 #[doc = "Number of format pipeline clock cycles of XRST width"]
1823 #[inline(always)]
1824 pub fn lcdc_jdi_xrst_width(
1825 self,
1826 ) -> crate::common::RegisterField<
1827 0,
1828 0xffffffff,
1829 1,
1830 0,
1831 u32,
1832 u32,
1833 LcdcJdiXrstWidthReg_SPEC,
1834 crate::common::RW,
1835 > {
1836 crate::common::RegisterField::<
1837 0,
1838 0xffffffff,
1839 1,
1840 0,
1841 u32,
1842 u32,
1843 LcdcJdiXrstWidthReg_SPEC,
1844 crate::common::RW,
1845 >::from_register(self, 0)
1846 }
1847}
1848impl ::core::default::Default for LcdcJdiXrstWidthReg {
1849 #[inline(always)]
1850 fn default() -> LcdcJdiXrstWidthReg {
1851 <crate::RegValueT<LcdcJdiXrstWidthReg_SPEC> as RegisterValue<_>>::new(0)
1852 }
1853}
1854
1855#[doc(hidden)]
1856#[derive(Copy, Clone, Eq, PartialEq)]
1857pub struct LcdcLayer0BaseaddrReg_SPEC;
1858impl crate::sealed::RegSpec for LcdcLayer0BaseaddrReg_SPEC {
1859 type DataType = u32;
1860}
1861
1862#[doc = "Layer0 Base Addr"]
1863pub type LcdcLayer0BaseaddrReg = crate::RegValueT<LcdcLayer0BaseaddrReg_SPEC>;
1864
1865impl LcdcLayer0BaseaddrReg {
1866 #[doc = "Base Address of the frame buffer"]
1867 #[inline(always)]
1868 pub fn lcdc_l0_fb_addr(
1869 self,
1870 ) -> crate::common::RegisterField<
1871 0,
1872 0xffffffff,
1873 1,
1874 0,
1875 u32,
1876 u32,
1877 LcdcLayer0BaseaddrReg_SPEC,
1878 crate::common::RW,
1879 > {
1880 crate::common::RegisterField::<
1881 0,
1882 0xffffffff,
1883 1,
1884 0,
1885 u32,
1886 u32,
1887 LcdcLayer0BaseaddrReg_SPEC,
1888 crate::common::RW,
1889 >::from_register(self, 0)
1890 }
1891}
1892impl ::core::default::Default for LcdcLayer0BaseaddrReg {
1893 #[inline(always)]
1894 fn default() -> LcdcLayer0BaseaddrReg {
1895 <crate::RegValueT<LcdcLayer0BaseaddrReg_SPEC> as RegisterValue<_>>::new(0)
1896 }
1897}
1898
1899#[doc(hidden)]
1900#[derive(Copy, Clone, Eq, PartialEq)]
1901pub struct LcdcLayer0ModeReg_SPEC;
1902impl crate::sealed::RegSpec for LcdcLayer0ModeReg_SPEC {
1903 type DataType = u32;
1904}
1905
1906#[doc = "Layer0 Mode"]
1907pub type LcdcLayer0ModeReg = crate::RegValueT<LcdcLayer0ModeReg_SPEC>;
1908
1909impl LcdcLayer0ModeReg {
1910 #[doc = "Enable layer.\n0 : disable\n1 : enable"]
1911 #[inline(always)]
1912 pub fn lcdc_l0_en(
1913 self,
1914 ) -> crate::common::RegisterFieldBool<31, 1, 0, LcdcLayer0ModeReg_SPEC, crate::common::RW> {
1915 crate::common::RegisterFieldBool::<31,1,0,LcdcLayer0ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1916 }
1917
1918 #[doc = "Colour Mode:\n00001: 16-bit RGBX5551 color format,\n00010: 32-bit RGBX8888 color format,\n00100: 8-bit RGB332 color format,\n00101: 16-bit RGB565 color format,\n00110: 32-bit XRGB8888,\n00111: L8 Grayscale/Palette format,\n01000: L1 Grayscale/Palette format,\n01001: L4 Grayscale/Palette format,\n01101: ABGR8888,\n01110: BGRA8888"]
1919 #[inline(always)]
1920 pub fn lcdc_l0_colour_mode(
1921 self,
1922 ) -> crate::common::RegisterField<
1923 0,
1924 0x1f,
1925 1,
1926 0,
1927 u8,
1928 u8,
1929 LcdcLayer0ModeReg_SPEC,
1930 crate::common::RW,
1931 > {
1932 crate::common::RegisterField::<
1933 0,
1934 0x1f,
1935 1,
1936 0,
1937 u8,
1938 u8,
1939 LcdcLayer0ModeReg_SPEC,
1940 crate::common::RW,
1941 >::from_register(self, 0)
1942 }
1943}
1944impl ::core::default::Default for LcdcLayer0ModeReg {
1945 #[inline(always)]
1946 fn default() -> LcdcLayer0ModeReg {
1947 <crate::RegValueT<LcdcLayer0ModeReg_SPEC> as RegisterValue<_>>::new(0)
1948 }
1949}
1950
1951#[doc(hidden)]
1952#[derive(Copy, Clone, Eq, PartialEq)]
1953pub struct LcdcLayer0OffsetxReg_SPEC;
1954impl crate::sealed::RegSpec for LcdcLayer0OffsetxReg_SPEC {
1955 type DataType = u32;
1956}
1957
1958#[doc = "Layer0 OffsetX and DMA prefetch"]
1959pub type LcdcLayer0OffsetxReg = crate::RegValueT<LcdcLayer0OffsetxReg_SPEC>;
1960
1961impl LcdcLayer0OffsetxReg {
1962 #[doc = "DMA fifo prefetch level (range: 0-4)\n0x0 : Prefetch mechanism is disabled\n0x1 : Prefetch at least 44 bytes\n0x2 : Prefetch at least 84 bytes\n0x3 : Prefetch at least 116 bytes\n0x4 : Prefetch at least 108 bytes\nAny other value : Reserved"]
1963 #[inline(always)]
1964 pub fn lcdc_l0_dma_prefetch(
1965 self,
1966 ) -> crate::common::RegisterField<
1967 16,
1968 0xffff,
1969 1,
1970 0,
1971 u16,
1972 u16,
1973 LcdcLayer0OffsetxReg_SPEC,
1974 crate::common::RW,
1975 > {
1976 crate::common::RegisterField::<
1977 16,
1978 0xffff,
1979 1,
1980 0,
1981 u16,
1982 u16,
1983 LcdcLayer0OffsetxReg_SPEC,
1984 crate::common::RW,
1985 >::from_register(self, 0)
1986 }
1987
1988 #[doc = "Offset X (negative) of X start pixel (range \\[n-1,0\\], n : pixels /8)"]
1989 #[inline(always)]
1990 pub fn lcdc_l0_offsetx(
1991 self,
1992 ) -> crate::common::RegisterField<
1993 0,
1994 0xffff,
1995 1,
1996 0,
1997 u16,
1998 u16,
1999 LcdcLayer0OffsetxReg_SPEC,
2000 crate::common::RW,
2001 > {
2002 crate::common::RegisterField::<
2003 0,
2004 0xffff,
2005 1,
2006 0,
2007 u16,
2008 u16,
2009 LcdcLayer0OffsetxReg_SPEC,
2010 crate::common::RW,
2011 >::from_register(self, 0)
2012 }
2013}
2014impl ::core::default::Default for LcdcLayer0OffsetxReg {
2015 #[inline(always)]
2016 fn default() -> LcdcLayer0OffsetxReg {
2017 <crate::RegValueT<LcdcLayer0OffsetxReg_SPEC> as RegisterValue<_>>::new(0)
2018 }
2019}
2020
2021#[doc(hidden)]
2022#[derive(Copy, Clone, Eq, PartialEq)]
2023pub struct LcdcLayer0ResxyReg_SPEC;
2024impl crate::sealed::RegSpec for LcdcLayer0ResxyReg_SPEC {
2025 type DataType = u32;
2026}
2027
2028#[doc = "Layer0 Res XY"]
2029pub type LcdcLayer0ResxyReg = crate::RegValueT<LcdcLayer0ResxyReg_SPEC>;
2030
2031impl LcdcLayer0ResxyReg {
2032 #[doc = "Resolution X (Resolution of layer in pixels)"]
2033 #[inline(always)]
2034 pub fn lcdc_l0_res_x(
2035 self,
2036 ) -> crate::common::RegisterField<
2037 16,
2038 0xffff,
2039 1,
2040 0,
2041 u16,
2042 u16,
2043 LcdcLayer0ResxyReg_SPEC,
2044 crate::common::RW,
2045 > {
2046 crate::common::RegisterField::<
2047 16,
2048 0xffff,
2049 1,
2050 0,
2051 u16,
2052 u16,
2053 LcdcLayer0ResxyReg_SPEC,
2054 crate::common::RW,
2055 >::from_register(self, 0)
2056 }
2057
2058 #[doc = "Resolution Y (Resolution of layer in pixels)"]
2059 #[inline(always)]
2060 pub fn lcdc_l0_res_y(
2061 self,
2062 ) -> crate::common::RegisterField<
2063 0,
2064 0xffff,
2065 1,
2066 0,
2067 u16,
2068 u16,
2069 LcdcLayer0ResxyReg_SPEC,
2070 crate::common::RW,
2071 > {
2072 crate::common::RegisterField::<
2073 0,
2074 0xffff,
2075 1,
2076 0,
2077 u16,
2078 u16,
2079 LcdcLayer0ResxyReg_SPEC,
2080 crate::common::RW,
2081 >::from_register(self, 0)
2082 }
2083}
2084impl ::core::default::Default for LcdcLayer0ResxyReg {
2085 #[inline(always)]
2086 fn default() -> LcdcLayer0ResxyReg {
2087 <crate::RegValueT<LcdcLayer0ResxyReg_SPEC> as RegisterValue<_>>::new(0)
2088 }
2089}
2090
2091#[doc(hidden)]
2092#[derive(Copy, Clone, Eq, PartialEq)]
2093pub struct LcdcLayer0SizexyReg_SPEC;
2094impl crate::sealed::RegSpec for LcdcLayer0SizexyReg_SPEC {
2095 type DataType = u32;
2096}
2097
2098#[doc = "Layer0 Size XY"]
2099pub type LcdcLayer0SizexyReg = crate::RegValueT<LcdcLayer0SizexyReg_SPEC>;
2100
2101impl LcdcLayer0SizexyReg {
2102 #[doc = "Size X (Size of layer in pixels)"]
2103 #[inline(always)]
2104 pub fn lcdc_l0_size_x(
2105 self,
2106 ) -> crate::common::RegisterField<
2107 16,
2108 0xffff,
2109 1,
2110 0,
2111 u16,
2112 u16,
2113 LcdcLayer0SizexyReg_SPEC,
2114 crate::common::RW,
2115 > {
2116 crate::common::RegisterField::<
2117 16,
2118 0xffff,
2119 1,
2120 0,
2121 u16,
2122 u16,
2123 LcdcLayer0SizexyReg_SPEC,
2124 crate::common::RW,
2125 >::from_register(self, 0)
2126 }
2127
2128 #[doc = "Size Y (Size of layer in pixels)"]
2129 #[inline(always)]
2130 pub fn lcdc_l0_size_y(
2131 self,
2132 ) -> crate::common::RegisterField<
2133 0,
2134 0xffff,
2135 1,
2136 0,
2137 u16,
2138 u16,
2139 LcdcLayer0SizexyReg_SPEC,
2140 crate::common::RW,
2141 > {
2142 crate::common::RegisterField::<
2143 0,
2144 0xffff,
2145 1,
2146 0,
2147 u16,
2148 u16,
2149 LcdcLayer0SizexyReg_SPEC,
2150 crate::common::RW,
2151 >::from_register(self, 0)
2152 }
2153}
2154impl ::core::default::Default for LcdcLayer0SizexyReg {
2155 #[inline(always)]
2156 fn default() -> LcdcLayer0SizexyReg {
2157 <crate::RegValueT<LcdcLayer0SizexyReg_SPEC> as RegisterValue<_>>::new(0)
2158 }
2159}
2160
2161#[doc(hidden)]
2162#[derive(Copy, Clone, Eq, PartialEq)]
2163pub struct LcdcLayer0StartxyReg_SPEC;
2164impl crate::sealed::RegSpec for LcdcLayer0StartxyReg_SPEC {
2165 type DataType = u32;
2166}
2167
2168#[doc = "Layer0 Start XY"]
2169pub type LcdcLayer0StartxyReg = crate::RegValueT<LcdcLayer0StartxyReg_SPEC>;
2170
2171impl LcdcLayer0StartxyReg {
2172 #[doc = "Start X (offset pixels)"]
2173 #[inline(always)]
2174 pub fn lcdc_l0_start_x(
2175 self,
2176 ) -> crate::common::RegisterField<
2177 16,
2178 0xffff,
2179 1,
2180 0,
2181 u16,
2182 u16,
2183 LcdcLayer0StartxyReg_SPEC,
2184 crate::common::RW,
2185 > {
2186 crate::common::RegisterField::<
2187 16,
2188 0xffff,
2189 1,
2190 0,
2191 u16,
2192 u16,
2193 LcdcLayer0StartxyReg_SPEC,
2194 crate::common::RW,
2195 >::from_register(self, 0)
2196 }
2197
2198 #[doc = "Start Y (offset pixels)"]
2199 #[inline(always)]
2200 pub fn lcdc_l0_start_y(
2201 self,
2202 ) -> crate::common::RegisterField<
2203 0,
2204 0xffff,
2205 1,
2206 0,
2207 u16,
2208 u16,
2209 LcdcLayer0StartxyReg_SPEC,
2210 crate::common::RW,
2211 > {
2212 crate::common::RegisterField::<
2213 0,
2214 0xffff,
2215 1,
2216 0,
2217 u16,
2218 u16,
2219 LcdcLayer0StartxyReg_SPEC,
2220 crate::common::RW,
2221 >::from_register(self, 0)
2222 }
2223}
2224impl ::core::default::Default for LcdcLayer0StartxyReg {
2225 #[inline(always)]
2226 fn default() -> LcdcLayer0StartxyReg {
2227 <crate::RegValueT<LcdcLayer0StartxyReg_SPEC> as RegisterValue<_>>::new(0)
2228 }
2229}
2230
2231#[doc(hidden)]
2232#[derive(Copy, Clone, Eq, PartialEq)]
2233pub struct LcdcLayer0StrideReg_SPEC;
2234impl crate::sealed::RegSpec for LcdcLayer0StrideReg_SPEC {
2235 type DataType = u32;
2236}
2237
2238#[doc = "Layer0 Stride"]
2239pub type LcdcLayer0StrideReg = crate::RegValueT<LcdcLayer0StrideReg_SPEC>;
2240
2241impl LcdcLayer0StrideReg {
2242 #[doc = "Layer dma fifo threshold burst start\n00: half fifo (default)\n01: 2 burst size\n10: 4 burst size\n11: 8 burst size"]
2243 #[inline(always)]
2244 pub fn lcdc_l0_fifo_thr(
2245 self,
2246 ) -> crate::common::RegisterField<
2247 19,
2248 0x3,
2249 1,
2250 0,
2251 u8,
2252 u8,
2253 LcdcLayer0StrideReg_SPEC,
2254 crate::common::RW,
2255 > {
2256 crate::common::RegisterField::<
2257 19,
2258 0x3,
2259 1,
2260 0,
2261 u8,
2262 u8,
2263 LcdcLayer0StrideReg_SPEC,
2264 crate::common::RW,
2265 >::from_register(self, 0)
2266 }
2267
2268 #[doc = "Layer burst length\n000: 16-beats (default)\n001: 2-beats\n010: 4-beats\n011: 8-beats\n100: 16-beats"]
2269 #[inline(always)]
2270 pub fn lcdc_l0_burst_len(
2271 self,
2272 ) -> crate::common::RegisterField<
2273 16,
2274 0x7,
2275 1,
2276 0,
2277 u8,
2278 u8,
2279 LcdcLayer0StrideReg_SPEC,
2280 crate::common::RW,
2281 > {
2282 crate::common::RegisterField::<
2283 16,
2284 0x7,
2285 1,
2286 0,
2287 u8,
2288 u8,
2289 LcdcLayer0StrideReg_SPEC,
2290 crate::common::RW,
2291 >::from_register(self, 0)
2292 }
2293
2294 #[doc = "Layer Stride (distance from line to line in bytes)"]
2295 #[inline(always)]
2296 pub fn lcdc_l0_stride(
2297 self,
2298 ) -> crate::common::RegisterField<
2299 0,
2300 0xffff,
2301 1,
2302 0,
2303 u16,
2304 u16,
2305 LcdcLayer0StrideReg_SPEC,
2306 crate::common::RW,
2307 > {
2308 crate::common::RegisterField::<
2309 0,
2310 0xffff,
2311 1,
2312 0,
2313 u16,
2314 u16,
2315 LcdcLayer0StrideReg_SPEC,
2316 crate::common::RW,
2317 >::from_register(self, 0)
2318 }
2319}
2320impl ::core::default::Default for LcdcLayer0StrideReg {
2321 #[inline(always)]
2322 fn default() -> LcdcLayer0StrideReg {
2323 <crate::RegValueT<LcdcLayer0StrideReg_SPEC> as RegisterValue<_>>::new(0)
2324 }
2325}
2326
2327#[doc(hidden)]
2328#[derive(Copy, Clone, Eq, PartialEq)]
2329pub struct LcdcModeReg_SPEC;
2330impl crate::sealed::RegSpec for LcdcModeReg_SPEC {
2331 type DataType = u32;
2332}
2333
2334#[doc = "Display Mode"]
2335pub type LcdcModeReg = crate::RegValueT<LcdcModeReg_SPEC>;
2336
2337impl LcdcModeReg {
2338 #[doc = "Mode register.\n0 : disable\n1 : enable"]
2339 #[inline(always)]
2340 pub fn lcdc_mode_en(
2341 self,
2342 ) -> crate::common::RegisterFieldBool<31, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2343 crate::common::RegisterFieldBool::<31,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2344 }
2345
2346 #[doc = "VSYNC polarity.\n0: positive\n1: negative"]
2347 #[inline(always)]
2348 pub fn lcdc_vsync_pol(
2349 self,
2350 ) -> crate::common::RegisterFieldBool<28, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2351 crate::common::RegisterFieldBool::<28,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2352 }
2353
2354 #[doc = "HSYNC polarity.\n0: positive\n1: negative"]
2355 #[inline(always)]
2356 pub fn lcdc_hsync_pol(
2357 self,
2358 ) -> crate::common::RegisterFieldBool<27, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2359 crate::common::RegisterFieldBool::<27,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2360 }
2361
2362 #[doc = "DE polarity.\n0: positive\n1: negative"]
2363 #[inline(always)]
2364 pub fn lcdc_de_pol(
2365 self,
2366 ) -> crate::common::RegisterFieldBool<26, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2367 crate::common::RegisterFieldBool::<26,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2368 }
2369
2370 #[doc = "Set VSYNC for a single cycle per line.\n0: disable\n1: enable"]
2371 #[inline(always)]
2372 pub fn lcdc_vsync_scpl(
2373 self,
2374 ) -> crate::common::RegisterFieldBool<23, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2375 crate::common::RegisterFieldBool::<23,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2376 }
2377
2378 #[doc = "Pixel clock out polarity.\n0: positive\n1: negative"]
2379 #[inline(always)]
2380 pub fn lcdc_pixclkout_pol(
2381 self,
2382 ) -> crate::common::RegisterFieldBool<22, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2383 crate::common::RegisterFieldBool::<22,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2384 }
2385
2386 #[doc = "Forces output to blank.\n0: disable\n1: enable"]
2387 #[inline(always)]
2388 pub fn lcdc_force_blank(
2389 self,
2390 ) -> crate::common::RegisterFieldBool<19, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2391 crate::common::RegisterFieldBool::<19,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2392 }
2393
2394 #[doc = "Single frame update.\n0: disable\n1: enable"]
2395 #[inline(always)]
2396 pub fn lcdc_sframe_upd(
2397 self,
2398 ) -> crate::common::RegisterFieldBool<17, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2399 crate::common::RegisterFieldBool::<17,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2400 }
2401
2402 #[doc = "Selects the pixel out clock for the display.\n0: based on the pixel pipeline clock\n1: based on the format pipeline clock\nSee also the LCDC_CLKCTRL_REG."]
2403 #[inline(always)]
2404 pub fn lcdc_pixclkout_sel(
2405 self,
2406 ) -> crate::common::RegisterFieldBool<11, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2407 crate::common::RegisterFieldBool::<11,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2408 }
2409
2410 #[doc = "Selection of the output mode\n0000: Parallel RGB\n1000: JDI MIP\nAll the other values are reserved."]
2411 #[inline(always)]
2412 pub fn lcdc_out_mode(
2413 self,
2414 ) -> crate::common::RegisterField<5, 0xf, 1, 0, u8, u8, LcdcModeReg_SPEC, crate::common::RW>
2415 {
2416 crate::common::RegisterField::<5,0xf,1,0,u8,u8,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2417 }
2418
2419 #[doc = "MIPI off. (SPI mode of MIPI standard)\n0: disabled\n1: enabled"]
2420 #[inline(always)]
2421 pub fn lcdc_mipi_off(
2422 self,
2423 ) -> crate::common::RegisterFieldBool<4, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2424 crate::common::RegisterFieldBool::<4,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2425 }
2426
2427 #[doc = "Formating off\n0: disabled\n1: enabled"]
2428 #[inline(always)]
2429 pub fn lcdc_form_off(
2430 self,
2431 ) -> crate::common::RegisterFieldBool<3, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2432 crate::common::RegisterFieldBool::<3,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2433 }
2434
2435 #[doc = "Double horizontal scan\n0: disabled\n1: enabled"]
2436 #[inline(always)]
2437 pub fn lcdc_dscan(
2438 self,
2439 ) -> crate::common::RegisterFieldBool<1, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2440 crate::common::RegisterFieldBool::<1,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2441 }
2442
2443 #[doc = "Test mode\n0: disabled\n1: enabled"]
2444 #[inline(always)]
2445 pub fn lcdc_tmode(
2446 self,
2447 ) -> crate::common::RegisterFieldBool<0, 1, 0, LcdcModeReg_SPEC, crate::common::RW> {
2448 crate::common::RegisterFieldBool::<0,1,0,LcdcModeReg_SPEC,crate::common::RW>::from_register(self,0)
2449 }
2450}
2451impl ::core::default::Default for LcdcModeReg {
2452 #[inline(always)]
2453 fn default() -> LcdcModeReg {
2454 <crate::RegValueT<LcdcModeReg_SPEC> as RegisterValue<_>>::new(0)
2455 }
2456}
2457
2458#[doc(hidden)]
2459#[derive(Copy, Clone, Eq, PartialEq)]
2460pub struct LcdcResxyReg_SPEC;
2461impl crate::sealed::RegSpec for LcdcResxyReg_SPEC {
2462 type DataType = u32;
2463}
2464
2465#[doc = "Resolution X,Y"]
2466pub type LcdcResxyReg = crate::RegValueT<LcdcResxyReg_SPEC>;
2467
2468impl LcdcResxyReg {
2469 #[doc = "Resolution X in pixels."]
2470 #[inline(always)]
2471 pub fn lcdc_res_x(
2472 self,
2473 ) -> crate::common::RegisterField<
2474 16,
2475 0xffff,
2476 1,
2477 0,
2478 u16,
2479 u16,
2480 LcdcResxyReg_SPEC,
2481 crate::common::RW,
2482 > {
2483 crate::common::RegisterField::<
2484 16,
2485 0xffff,
2486 1,
2487 0,
2488 u16,
2489 u16,
2490 LcdcResxyReg_SPEC,
2491 crate::common::RW,
2492 >::from_register(self, 0)
2493 }
2494
2495 #[doc = "Resolution Y in pixels."]
2496 #[inline(always)]
2497 pub fn lcdc_res_y(
2498 self,
2499 ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, LcdcResxyReg_SPEC, crate::common::RW>
2500 {
2501 crate::common::RegisterField::<
2502 0,
2503 0xffff,
2504 1,
2505 0,
2506 u16,
2507 u16,
2508 LcdcResxyReg_SPEC,
2509 crate::common::RW,
2510 >::from_register(self, 0)
2511 }
2512}
2513impl ::core::default::Default for LcdcResxyReg {
2514 #[inline(always)]
2515 fn default() -> LcdcResxyReg {
2516 <crate::RegValueT<LcdcResxyReg_SPEC> as RegisterValue<_>>::new(0)
2517 }
2518}
2519
2520#[doc(hidden)]
2521#[derive(Copy, Clone, Eq, PartialEq)]
2522pub struct LcdcStatusReg_SPEC;
2523impl crate::sealed::RegSpec for LcdcStatusReg_SPEC {
2524 type DataType = u32;
2525}
2526
2527#[doc = "Status Register"]
2528pub type LcdcStatusReg = crate::RegValueT<LcdcStatusReg_SPEC>;
2529
2530impl LcdcStatusReg {
2531 #[doc = "JDI timing generation soft reset (active high)"]
2532 #[inline(always)]
2533 pub fn lcdc_jdi_tim_sw_rst(
2534 self,
2535 ) -> crate::common::RegisterFieldBool<15, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2536 crate::common::RegisterFieldBool::<15,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2537 }
2538
2539 #[doc = "Frame start (active high)"]
2540 #[inline(always)]
2541 pub fn lcdc_frame_start(
2542 self,
2543 ) -> crate::common::RegisterFieldBool<14, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2544 crate::common::RegisterFieldBool::<14,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2545 }
2546
2547 #[doc = "Frame end (active high)"]
2548 #[inline(always)]
2549 pub fn lcdc_frame_end(
2550 self,
2551 ) -> crate::common::RegisterFieldBool<13, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2552 crate::common::RegisterFieldBool::<13,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2553 }
2554
2555 #[doc = "Transferring of command in progress.\n0: idle\n1: in progress"]
2556 #[inline(always)]
2557 pub fn lcdc_dbib_cmd_pending(
2558 self,
2559 ) -> crate::common::RegisterFieldBool<12, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2560 crate::common::RegisterFieldBool::<12,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2561 }
2562
2563 #[doc = "Command fifo full indication.\n0: is not full\n1: is full"]
2564 #[inline(always)]
2565 pub fn lcdc_dbib_cmd_fifo_full(
2566 self,
2567 ) -> crate::common::RegisterFieldBool<11, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2568 crate::common::RegisterFieldBool::<11,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2569 }
2570
2571 #[doc = "Command fifo empty indication (negative)\n0: the fifo is empty\n1: the fifo is not empty"]
2572 #[inline(always)]
2573 pub fn lcdc_dbib_cmd_fifo_empty_n(
2574 self,
2575 ) -> crate::common::RegisterFieldBool<10, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2576 crate::common::RegisterFieldBool::<10,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2577 }
2578
2579 #[doc = "The DBIB tearing effect signal"]
2580 #[inline(always)]
2581 pub fn lcdc_dbib_te(
2582 self,
2583 ) -> crate::common::RegisterFieldBool<8, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2584 crate::common::RegisterFieldBool::<8,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2585 }
2586
2587 #[doc = "Sticky underflow(clear with write in the LCDC_INTERRUPT_REG)\n0: There is no underflow\n1: Underflow has been detected.Remains high until to be cleared by performing a write access on the register LCDC_INTERRUPT_REG."]
2588 #[inline(always)]
2589 pub fn lcdc_sticky_underflow(
2590 self,
2591 ) -> crate::common::RegisterFieldBool<7, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2592 crate::common::RegisterFieldBool::<7,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2593 }
2594
2595 #[doc = "Underflow on the current transfer.\n0: There is no underflow\n1: Underflow has been detected."]
2596 #[inline(always)]
2597 pub fn lcdc_underflow(
2598 self,
2599 ) -> crate::common::RegisterFieldBool<6, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2600 crate::common::RegisterFieldBool::<6,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2601 }
2602
2603 #[doc = "Last row (Last row is currently displayed)"]
2604 #[inline(always)]
2605 pub fn lcdc_last_row(
2606 self,
2607 ) -> crate::common::RegisterFieldBool<5, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2608 crate::common::RegisterFieldBool::<5,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2609 }
2610
2611 #[doc = "CSYNC signal level"]
2612 #[inline(always)]
2613 pub fn lcdc_stat_csync(
2614 self,
2615 ) -> crate::common::RegisterFieldBool<4, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2616 crate::common::RegisterFieldBool::<4,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2617 }
2618
2619 #[doc = "VSYNC signal level"]
2620 #[inline(always)]
2621 pub fn lcdc_stat_vsync(
2622 self,
2623 ) -> crate::common::RegisterFieldBool<3, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2624 crate::common::RegisterFieldBool::<3,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2625 }
2626
2627 #[doc = "HSYNC signal level"]
2628 #[inline(always)]
2629 pub fn lcdc_stat_hsync(
2630 self,
2631 ) -> crate::common::RegisterFieldBool<2, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2632 crate::common::RegisterFieldBool::<2,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2633 }
2634
2635 #[doc = "The frame generator is busy (active high)."]
2636 #[inline(always)]
2637 pub fn lcdc_framegen_busy(
2638 self,
2639 ) -> crate::common::RegisterFieldBool<1, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2640 crate::common::RegisterFieldBool::<1,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2641 }
2642
2643 #[doc = "Active (When not in vertical blanking)"]
2644 #[inline(always)]
2645 pub fn lcdc_stat_active(
2646 self,
2647 ) -> crate::common::RegisterFieldBool<0, 1, 0, LcdcStatusReg_SPEC, crate::common::R> {
2648 crate::common::RegisterFieldBool::<0,1,0,LcdcStatusReg_SPEC,crate::common::R>::from_register(self,0)
2649 }
2650}
2651impl ::core::default::Default for LcdcStatusReg {
2652 #[inline(always)]
2653 fn default() -> LcdcStatusReg {
2654 <crate::RegValueT<LcdcStatusReg_SPEC> as RegisterValue<_>>::new(0)
2655 }
2656}