da14697_pac/
lcdc.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:45:38 +0000
19
20#![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}