Skip to main content

ra4m3_pac/
elc.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.40.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:07:45 +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"Event Link Controller"]
28unsafe impl ::core::marker::Send for super::Elc {}
29unsafe impl ::core::marker::Sync for super::Elc {}
30impl super::Elc {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Event Link Controller Register"]
38    #[inline(always)]
39    pub const fn elcr(&self) -> &'static crate::common::Reg<self::Elcr_SPEC, crate::common::RW> {
40        unsafe {
41            crate::common::Reg::<self::Elcr_SPEC, crate::common::RW>::from_ptr(
42                self._svd2pac_as_ptr().add(0usize),
43            )
44        }
45    }
46
47    #[doc = "Event Link Software Event Generation Register %s"]
48    #[inline(always)]
49    pub const fn elsegr(
50        &self,
51    ) -> &'static crate::common::ClusterRegisterArray<
52        crate::common::Reg<self::Elsegr_SPEC, crate::common::RW>,
53        2,
54        0x2,
55    > {
56        unsafe {
57            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2usize))
58        }
59    }
60    #[inline(always)]
61    pub const fn elsegr0(
62        &self,
63    ) -> &'static crate::common::Reg<self::Elsegr_SPEC, crate::common::RW> {
64        unsafe {
65            crate::common::Reg::<self::Elsegr_SPEC, crate::common::RW>::from_ptr(
66                self._svd2pac_as_ptr().add(0x2usize),
67            )
68        }
69    }
70    #[inline(always)]
71    pub const fn elsegr1(
72        &self,
73    ) -> &'static crate::common::Reg<self::Elsegr_SPEC, crate::common::RW> {
74        unsafe {
75            crate::common::Reg::<self::Elsegr_SPEC, crate::common::RW>::from_ptr(
76                self._svd2pac_as_ptr().add(0x4usize),
77            )
78        }
79    }
80
81    #[doc = "Event Link Setting Register %s"]
82    #[inline(always)]
83    pub const fn elsr(
84        &self,
85    ) -> &'static crate::common::ClusterRegisterArray<
86        crate::common::Reg<self::Elsr_SPEC, crate::common::RW>,
87        19,
88        0x4,
89    > {
90        unsafe {
91            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x10usize))
92        }
93    }
94    #[inline(always)]
95    pub const fn elsr0(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
96        unsafe {
97            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
98                self._svd2pac_as_ptr().add(0x10usize),
99            )
100        }
101    }
102    #[inline(always)]
103    pub const fn elsr1(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
104        unsafe {
105            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
106                self._svd2pac_as_ptr().add(0x14usize),
107            )
108        }
109    }
110    #[inline(always)]
111    pub const fn elsr2(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
112        unsafe {
113            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
114                self._svd2pac_as_ptr().add(0x18usize),
115            )
116        }
117    }
118    #[inline(always)]
119    pub const fn elsr3(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
120        unsafe {
121            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
122                self._svd2pac_as_ptr().add(0x1cusize),
123            )
124        }
125    }
126    #[inline(always)]
127    pub const fn elsr4(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
128        unsafe {
129            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
130                self._svd2pac_as_ptr().add(0x20usize),
131            )
132        }
133    }
134    #[inline(always)]
135    pub const fn elsr5(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
136        unsafe {
137            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
138                self._svd2pac_as_ptr().add(0x24usize),
139            )
140        }
141    }
142    #[inline(always)]
143    pub const fn elsr6(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
144        unsafe {
145            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
146                self._svd2pac_as_ptr().add(0x28usize),
147            )
148        }
149    }
150    #[inline(always)]
151    pub const fn elsr7(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
152        unsafe {
153            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
154                self._svd2pac_as_ptr().add(0x2cusize),
155            )
156        }
157    }
158    #[inline(always)]
159    pub const fn elsr8(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
160        unsafe {
161            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
162                self._svd2pac_as_ptr().add(0x30usize),
163            )
164        }
165    }
166    #[inline(always)]
167    pub const fn elsr9(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
168        unsafe {
169            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
170                self._svd2pac_as_ptr().add(0x34usize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn elsr10(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
176        unsafe {
177            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
178                self._svd2pac_as_ptr().add(0x38usize),
179            )
180        }
181    }
182    #[inline(always)]
183    pub const fn elsr11(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
184        unsafe {
185            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
186                self._svd2pac_as_ptr().add(0x3cusize),
187            )
188        }
189    }
190    #[inline(always)]
191    pub const fn elsr12(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
192        unsafe {
193            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
194                self._svd2pac_as_ptr().add(0x40usize),
195            )
196        }
197    }
198    #[inline(always)]
199    pub const fn elsr13(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
200        unsafe {
201            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
202                self._svd2pac_as_ptr().add(0x44usize),
203            )
204        }
205    }
206    #[inline(always)]
207    pub const fn elsr14(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
208        unsafe {
209            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
210                self._svd2pac_as_ptr().add(0x48usize),
211            )
212        }
213    }
214    #[inline(always)]
215    pub const fn elsr15(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
216        unsafe {
217            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
218                self._svd2pac_as_ptr().add(0x4cusize),
219            )
220        }
221    }
222    #[inline(always)]
223    pub const fn elsr16(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
224        unsafe {
225            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
226                self._svd2pac_as_ptr().add(0x50usize),
227            )
228        }
229    }
230    #[inline(always)]
231    pub const fn elsr17(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
232        unsafe {
233            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
234                self._svd2pac_as_ptr().add(0x54usize),
235            )
236        }
237    }
238    #[inline(always)]
239    pub const fn elsr18(&self) -> &'static crate::common::Reg<self::Elsr_SPEC, crate::common::RW> {
240        unsafe {
241            crate::common::Reg::<self::Elsr_SPEC, crate::common::RW>::from_ptr(
242                self._svd2pac_as_ptr().add(0x58usize),
243            )
244        }
245    }
246
247    #[doc = "Event Link Controller Security Attribution Register A"]
248    #[inline(always)]
249    pub const fn elcsara(
250        &self,
251    ) -> &'static crate::common::Reg<self::Elcsara_SPEC, crate::common::RW> {
252        unsafe {
253            crate::common::Reg::<self::Elcsara_SPEC, crate::common::RW>::from_ptr(
254                self._svd2pac_as_ptr().add(116usize),
255            )
256        }
257    }
258
259    #[doc = "Event Link Controller Security Attribution Register B"]
260    #[inline(always)]
261    pub const fn elcsarb(
262        &self,
263    ) -> &'static crate::common::Reg<self::Elcsarb_SPEC, crate::common::RW> {
264        unsafe {
265            crate::common::Reg::<self::Elcsarb_SPEC, crate::common::RW>::from_ptr(
266                self._svd2pac_as_ptr().add(120usize),
267            )
268        }
269    }
270
271    #[doc = "Event Link Controller Security Attribution Register C"]
272    #[inline(always)]
273    pub const fn elcsarc(
274        &self,
275    ) -> &'static crate::common::Reg<self::Elcsarc_SPEC, crate::common::RW> {
276        unsafe {
277            crate::common::Reg::<self::Elcsarc_SPEC, crate::common::RW>::from_ptr(
278                self._svd2pac_as_ptr().add(124usize),
279            )
280        }
281    }
282}
283#[doc(hidden)]
284#[derive(Copy, Clone, Eq, PartialEq)]
285pub struct Elcr_SPEC;
286impl crate::sealed::RegSpec for Elcr_SPEC {
287    type DataType = u8;
288}
289
290#[doc = "Event Link Controller Register"]
291pub type Elcr = crate::RegValueT<Elcr_SPEC>;
292
293impl Elcr {
294    #[doc = "All Event Link Enable"]
295    #[inline(always)]
296    pub fn elcon(
297        self,
298    ) -> crate::common::RegisterField<
299        7,
300        0x1,
301        1,
302        0,
303        elcr::Elcon,
304        elcr::Elcon,
305        Elcr_SPEC,
306        crate::common::RW,
307    > {
308        crate::common::RegisterField::<
309            7,
310            0x1,
311            1,
312            0,
313            elcr::Elcon,
314            elcr::Elcon,
315            Elcr_SPEC,
316            crate::common::RW,
317        >::from_register(self, 0)
318    }
319}
320impl ::core::default::Default for Elcr {
321    #[inline(always)]
322    fn default() -> Elcr {
323        <crate::RegValueT<Elcr_SPEC> as RegisterValue<_>>::new(0)
324    }
325}
326pub mod elcr {
327
328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
329    pub struct Elcon_SPEC;
330    pub type Elcon = crate::EnumBitfieldStruct<u8, Elcon_SPEC>;
331    impl Elcon {
332        #[doc = "ELC function is disabled."]
333        pub const _0: Self = Self::new(0);
334
335        #[doc = "ELC function is enabled."]
336        pub const _1: Self = Self::new(1);
337    }
338}
339#[doc(hidden)]
340#[derive(Copy, Clone, Eq, PartialEq)]
341pub struct Elsegr_SPEC;
342impl crate::sealed::RegSpec for Elsegr_SPEC {
343    type DataType = u8;
344}
345
346#[doc = "Event Link Software Event Generation Register %s"]
347pub type Elsegr = crate::RegValueT<Elsegr_SPEC>;
348
349impl Elsegr {
350    #[doc = "Software Event Generation"]
351    #[inline(always)]
352    pub fn seg(
353        self,
354    ) -> crate::common::RegisterField<
355        0,
356        0x1,
357        1,
358        0,
359        elsegr::Seg,
360        elsegr::Seg,
361        Elsegr_SPEC,
362        crate::common::W,
363    > {
364        crate::common::RegisterField::<
365            0,
366            0x1,
367            1,
368            0,
369            elsegr::Seg,
370            elsegr::Seg,
371            Elsegr_SPEC,
372            crate::common::W,
373        >::from_register(self, 0)
374    }
375
376    #[doc = "SEG Bit Write Enable"]
377    #[inline(always)]
378    pub fn we(
379        self,
380    ) -> crate::common::RegisterField<
381        6,
382        0x1,
383        1,
384        0,
385        elsegr::We,
386        elsegr::We,
387        Elsegr_SPEC,
388        crate::common::RW,
389    > {
390        crate::common::RegisterField::<
391            6,
392            0x1,
393            1,
394            0,
395            elsegr::We,
396            elsegr::We,
397            Elsegr_SPEC,
398            crate::common::RW,
399        >::from_register(self, 0)
400    }
401
402    #[doc = "ELSEGR Register Write Disable"]
403    #[inline(always)]
404    pub fn wi(
405        self,
406    ) -> crate::common::RegisterField<
407        7,
408        0x1,
409        1,
410        0,
411        elsegr::Wi,
412        elsegr::Wi,
413        Elsegr_SPEC,
414        crate::common::W,
415    > {
416        crate::common::RegisterField::<
417            7,
418            0x1,
419            1,
420            0,
421            elsegr::Wi,
422            elsegr::Wi,
423            Elsegr_SPEC,
424            crate::common::W,
425        >::from_register(self, 0)
426    }
427}
428impl ::core::default::Default for Elsegr {
429    #[inline(always)]
430    fn default() -> Elsegr {
431        <crate::RegValueT<Elsegr_SPEC> as RegisterValue<_>>::new(128)
432    }
433}
434pub mod elsegr {
435
436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
437    pub struct Seg_SPEC;
438    pub type Seg = crate::EnumBitfieldStruct<u8, Seg_SPEC>;
439    impl Seg {
440        #[doc = "Normal operation"]
441        pub const _0: Self = Self::new(0);
442
443        #[doc = "Software event is generated."]
444        pub const _1: Self = Self::new(1);
445    }
446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
447    pub struct We_SPEC;
448    pub type We = crate::EnumBitfieldStruct<u8, We_SPEC>;
449    impl We {
450        #[doc = "Write to SEG bit disabled."]
451        pub const _0: Self = Self::new(0);
452
453        #[doc = "Write to SEG bit enabled."]
454        pub const _1: Self = Self::new(1);
455    }
456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
457    pub struct Wi_SPEC;
458    pub type Wi = crate::EnumBitfieldStruct<u8, Wi_SPEC>;
459    impl Wi {
460        #[doc = "Write to ELSEGR register enabled."]
461        pub const _0: Self = Self::new(0);
462
463        #[doc = "Write to ELSEGR register disabled."]
464        pub const _1: Self = Self::new(1);
465    }
466}
467#[doc(hidden)]
468#[derive(Copy, Clone, Eq, PartialEq)]
469pub struct Elsr_SPEC;
470impl crate::sealed::RegSpec for Elsr_SPEC {
471    type DataType = u16;
472}
473
474#[doc = "Event Link Setting Register %s"]
475pub type Elsr = crate::RegValueT<Elsr_SPEC>;
476
477impl Elsr {
478    #[doc = "Event Link Select"]
479    #[inline(always)]
480    pub fn els(
481        self,
482    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Elsr_SPEC, crate::common::RW> {
483        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Elsr_SPEC,crate::common::RW>::from_register(self,0)
484    }
485}
486impl ::core::default::Default for Elsr {
487    #[inline(always)]
488    fn default() -> Elsr {
489        <crate::RegValueT<Elsr_SPEC> as RegisterValue<_>>::new(0)
490    }
491}
492
493#[doc(hidden)]
494#[derive(Copy, Clone, Eq, PartialEq)]
495pub struct Elcsara_SPEC;
496impl crate::sealed::RegSpec for Elcsara_SPEC {
497    type DataType = u16;
498}
499
500#[doc = "Event Link Controller Security Attribution Register A"]
501pub type Elcsara = crate::RegValueT<Elcsara_SPEC>;
502
503impl Elcsara {
504    #[doc = "Event Link Controller Register Security Attribution"]
505    #[inline(always)]
506    pub fn elcr(
507        self,
508    ) -> crate::common::RegisterField<
509        0,
510        0x1,
511        1,
512        0,
513        elcsara::Elcr,
514        elcsara::Elcr,
515        Elcsara_SPEC,
516        crate::common::RW,
517    > {
518        crate::common::RegisterField::<
519            0,
520            0x1,
521            1,
522            0,
523            elcsara::Elcr,
524            elcsara::Elcr,
525            Elcsara_SPEC,
526            crate::common::RW,
527        >::from_register(self, 0)
528    }
529
530    #[doc = "Event Link Software Event Generation Register 0 Security Attribution"]
531    #[inline(always)]
532    pub fn elsegr0(
533        self,
534    ) -> crate::common::RegisterField<
535        1,
536        0x1,
537        1,
538        0,
539        elcsara::Elsegr0,
540        elcsara::Elsegr0,
541        Elcsara_SPEC,
542        crate::common::RW,
543    > {
544        crate::common::RegisterField::<
545            1,
546            0x1,
547            1,
548            0,
549            elcsara::Elsegr0,
550            elcsara::Elsegr0,
551            Elcsara_SPEC,
552            crate::common::RW,
553        >::from_register(self, 0)
554    }
555
556    #[doc = "Event Link Software Event Generation Register 1 Security Attribution"]
557    #[inline(always)]
558    pub fn elsegr1(
559        self,
560    ) -> crate::common::RegisterField<
561        2,
562        0x1,
563        1,
564        0,
565        elcsara::Elsegr1,
566        elcsara::Elsegr1,
567        Elcsara_SPEC,
568        crate::common::RW,
569    > {
570        crate::common::RegisterField::<
571            2,
572            0x1,
573            1,
574            0,
575            elcsara::Elsegr1,
576            elcsara::Elsegr1,
577            Elcsara_SPEC,
578            crate::common::RW,
579        >::from_register(self, 0)
580    }
581}
582impl ::core::default::Default for Elcsara {
583    #[inline(always)]
584    fn default() -> Elcsara {
585        <crate::RegValueT<Elcsara_SPEC> as RegisterValue<_>>::new(65535)
586    }
587}
588pub mod elcsara {
589
590    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
591    pub struct Elcr_SPEC;
592    pub type Elcr = crate::EnumBitfieldStruct<u8, Elcr_SPEC>;
593    impl Elcr {
594        #[doc = "Secure"]
595        pub const _0: Self = Self::new(0);
596
597        #[doc = "Non-secure"]
598        pub const _1: Self = Self::new(1);
599    }
600    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
601    pub struct Elsegr0_SPEC;
602    pub type Elsegr0 = crate::EnumBitfieldStruct<u8, Elsegr0_SPEC>;
603    impl Elsegr0 {
604        #[doc = "Secure"]
605        pub const _0: Self = Self::new(0);
606
607        #[doc = "Non-secure"]
608        pub const _1: Self = Self::new(1);
609    }
610    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
611    pub struct Elsegr1_SPEC;
612    pub type Elsegr1 = crate::EnumBitfieldStruct<u8, Elsegr1_SPEC>;
613    impl Elsegr1 {
614        #[doc = "Secure"]
615        pub const _0: Self = Self::new(0);
616
617        #[doc = "Non-secure"]
618        pub const _1: Self = Self::new(1);
619    }
620}
621#[doc(hidden)]
622#[derive(Copy, Clone, Eq, PartialEq)]
623pub struct Elcsarb_SPEC;
624impl crate::sealed::RegSpec for Elcsarb_SPEC {
625    type DataType = u16;
626}
627
628#[doc = "Event Link Controller Security Attribution Register B"]
629pub type Elcsarb = crate::RegValueT<Elcsarb_SPEC>;
630
631impl Elcsarb {
632    #[doc = "Event Link Setting Register n Security Attribution"]
633    #[inline(always)]
634    pub fn elsr(
635        self,
636    ) -> crate::common::RegisterField<
637        0,
638        0xffff,
639        1,
640        0,
641        elcsarb::Elsr,
642        elcsarb::Elsr,
643        Elcsarb_SPEC,
644        crate::common::RW,
645    > {
646        crate::common::RegisterField::<
647            0,
648            0xffff,
649            1,
650            0,
651            elcsarb::Elsr,
652            elcsarb::Elsr,
653            Elcsarb_SPEC,
654            crate::common::RW,
655        >::from_register(self, 0)
656    }
657}
658impl ::core::default::Default for Elcsarb {
659    #[inline(always)]
660    fn default() -> Elcsarb {
661        <crate::RegValueT<Elcsarb_SPEC> as RegisterValue<_>>::new(65535)
662    }
663}
664pub mod elcsarb {
665
666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
667    pub struct Elsr_SPEC;
668    pub type Elsr = crate::EnumBitfieldStruct<u8, Elsr_SPEC>;
669    impl Elsr {
670        #[doc = "Secure"]
671        pub const _0: Self = Self::new(0);
672
673        #[doc = "Non-secure"]
674        pub const _1: Self = Self::new(1);
675    }
676}
677#[doc(hidden)]
678#[derive(Copy, Clone, Eq, PartialEq)]
679pub struct Elcsarc_SPEC;
680impl crate::sealed::RegSpec for Elcsarc_SPEC {
681    type DataType = u16;
682}
683
684#[doc = "Event Link Controller Security Attribution Register C"]
685pub type Elcsarc = crate::RegValueT<Elcsarc_SPEC>;
686
687impl Elcsarc {
688    #[doc = "Event Link Setting Register n Security Attribution (n = 16 to 18)"]
689    #[inline(always)]
690    pub fn elsr(
691        self,
692    ) -> crate::common::RegisterField<
693        0,
694        0x7,
695        1,
696        0,
697        elcsarc::Elsr,
698        elcsarc::Elsr,
699        Elcsarc_SPEC,
700        crate::common::RW,
701    > {
702        crate::common::RegisterField::<
703            0,
704            0x7,
705            1,
706            0,
707            elcsarc::Elsr,
708            elcsarc::Elsr,
709            Elcsarc_SPEC,
710            crate::common::RW,
711        >::from_register(self, 0)
712    }
713}
714impl ::core::default::Default for Elcsarc {
715    #[inline(always)]
716    fn default() -> Elcsarc {
717        <crate::RegValueT<Elcsarc_SPEC> as RegisterValue<_>>::new(65535)
718    }
719}
720pub mod elcsarc {
721
722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
723    pub struct Elsr_SPEC;
724    pub type Elsr = crate::EnumBitfieldStruct<u8, Elsr_SPEC>;
725    impl Elsr {
726        #[doc = "Secure"]
727        pub const _0: Self = Self::new(0);
728
729        #[doc = "Non-secure"]
730        pub const _1: Self = Self::new(1);
731    }
732}