Skip to main content

ra0e1_pac/
crc.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.10.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:00:13 +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"CRC Calculator"]
28unsafe impl ::core::marker::Send for super::Crc {}
29unsafe impl ::core::marker::Sync for super::Crc {}
30impl super::Crc {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "CRC Control Register 0"]
38    #[inline(always)]
39    pub const fn crccr0(
40        &self,
41    ) -> &'static crate::common::Reg<self::Crccr0_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::Crccr0_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(0usize),
45            )
46        }
47    }
48
49    #[doc = "CRC Data Input Register"]
50    #[inline(always)]
51    pub const fn crcdir(
52        &self,
53    ) -> &'static crate::common::Reg<self::Crcdir_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::Crcdir_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(4usize),
57            )
58        }
59    }
60
61    #[doc = "CRC Data Input Register"]
62    #[inline(always)]
63    pub const fn crcdir_by(
64        &self,
65    ) -> &'static crate::common::Reg<self::CrcdirBy_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::CrcdirBy_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(4usize),
69            )
70        }
71    }
72
73    #[doc = "CRC Data Output Register"]
74    #[inline(always)]
75    pub const fn crcdor(
76        &self,
77    ) -> &'static crate::common::Reg<self::Crcdor_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::Crcdor_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(8usize),
81            )
82        }
83    }
84
85    #[doc = "CRC Data Output Register"]
86    #[inline(always)]
87    pub const fn crcdor_ha(
88        &self,
89    ) -> &'static crate::common::Reg<self::CrcdorHa_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::CrcdorHa_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(8usize),
93            )
94        }
95    }
96}
97#[doc(hidden)]
98#[derive(Copy, Clone, Eq, PartialEq)]
99pub struct Crccr0_SPEC;
100impl crate::sealed::RegSpec for Crccr0_SPEC {
101    type DataType = u8;
102}
103
104#[doc = "CRC Control Register 0"]
105pub type Crccr0 = crate::RegValueT<Crccr0_SPEC>;
106
107impl Crccr0 {
108    #[doc = "CRC Generating Polynomial Switching"]
109    #[inline(always)]
110    pub fn gps(
111        self,
112    ) -> crate::common::RegisterField<
113        0,
114        0x7,
115        1,
116        0,
117        crccr0::Gps,
118        crccr0::Gps,
119        Crccr0_SPEC,
120        crate::common::RW,
121    > {
122        crate::common::RegisterField::<
123            0,
124            0x7,
125            1,
126            0,
127            crccr0::Gps,
128            crccr0::Gps,
129            Crccr0_SPEC,
130            crate::common::RW,
131        >::from_register(self, 0)
132    }
133
134    #[doc = "CRCDOR/CRCDOR_HA Register Clear"]
135    #[inline(always)]
136    pub fn dorclr(
137        self,
138    ) -> crate::common::RegisterField<
139        7,
140        0x1,
141        1,
142        0,
143        crccr0::Dorclr,
144        crccr0::Dorclr,
145        Crccr0_SPEC,
146        crate::common::W,
147    > {
148        crate::common::RegisterField::<
149            7,
150            0x1,
151            1,
152            0,
153            crccr0::Dorclr,
154            crccr0::Dorclr,
155            Crccr0_SPEC,
156            crate::common::W,
157        >::from_register(self, 0)
158    }
159}
160impl ::core::default::Default for Crccr0 {
161    #[inline(always)]
162    fn default() -> Crccr0 {
163        <crate::RegValueT<Crccr0_SPEC> as RegisterValue<_>>::new(0)
164    }
165}
166pub mod crccr0 {
167
168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
169    pub struct Gps_SPEC;
170    pub type Gps = crate::EnumBitfieldStruct<u8, Gps_SPEC>;
171    impl Gps {
172        #[doc = "16-bit CRC-CCITT (X16 + X12 + X5 + 1)"]
173        pub const _011: Self = Self::new(3);
174
175        #[doc = "32-bit CRC-32 (X32 + X26 + X23 + X22 + X16 + X12 + X11 +X10 + X8 + X7 + X5 + X4 + X2 + X + 1)"]
176        pub const _100: Self = Self::new(4);
177    }
178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
179    pub struct Dorclr_SPEC;
180    pub type Dorclr = crate::EnumBitfieldStruct<u8, Dorclr_SPEC>;
181    impl Dorclr {
182        #[doc = "No effect"]
183        pub const _0: Self = Self::new(0);
184
185        #[doc = "Clear the CRCDOR/CRCDOR_HA register"]
186        pub const _1: Self = Self::new(1);
187    }
188}
189#[doc(hidden)]
190#[derive(Copy, Clone, Eq, PartialEq)]
191pub struct Crcdir_SPEC;
192impl crate::sealed::RegSpec for Crcdir_SPEC {
193    type DataType = u32;
194}
195
196#[doc = "CRC Data Input Register"]
197pub type Crcdir = crate::RegValueT<Crcdir_SPEC>;
198
199impl NoBitfieldReg<Crcdir_SPEC> for Crcdir {}
200impl ::core::default::Default for Crcdir {
201    #[inline(always)]
202    fn default() -> Crcdir {
203        <crate::RegValueT<Crcdir_SPEC> as RegisterValue<_>>::new(0)
204    }
205}
206
207#[doc(hidden)]
208#[derive(Copy, Clone, Eq, PartialEq)]
209pub struct CrcdirBy_SPEC;
210impl crate::sealed::RegSpec for CrcdirBy_SPEC {
211    type DataType = u8;
212}
213
214#[doc = "CRC Data Input Register"]
215pub type CrcdirBy = crate::RegValueT<CrcdirBy_SPEC>;
216
217impl NoBitfieldReg<CrcdirBy_SPEC> for CrcdirBy {}
218impl ::core::default::Default for CrcdirBy {
219    #[inline(always)]
220    fn default() -> CrcdirBy {
221        <crate::RegValueT<CrcdirBy_SPEC> as RegisterValue<_>>::new(0)
222    }
223}
224
225#[doc(hidden)]
226#[derive(Copy, Clone, Eq, PartialEq)]
227pub struct Crcdor_SPEC;
228impl crate::sealed::RegSpec for Crcdor_SPEC {
229    type DataType = u32;
230}
231
232#[doc = "CRC Data Output Register"]
233pub type Crcdor = crate::RegValueT<Crcdor_SPEC>;
234
235impl NoBitfieldReg<Crcdor_SPEC> for Crcdor {}
236impl ::core::default::Default for Crcdor {
237    #[inline(always)]
238    fn default() -> Crcdor {
239        <crate::RegValueT<Crcdor_SPEC> as RegisterValue<_>>::new(0)
240    }
241}
242
243#[doc(hidden)]
244#[derive(Copy, Clone, Eq, PartialEq)]
245pub struct CrcdorHa_SPEC;
246impl crate::sealed::RegSpec for CrcdorHa_SPEC {
247    type DataType = u16;
248}
249
250#[doc = "CRC Data Output Register"]
251pub type CrcdorHa = crate::RegValueT<CrcdorHa_SPEC>;
252
253impl NoBitfieldReg<CrcdorHa_SPEC> for CrcdorHa {}
254impl ::core::default::Default for CrcdorHa {
255    #[inline(always)]
256    fn default() -> CrcdorHa {
257        <crate::RegValueT<CrcdorHa_SPEC> as RegisterValue<_>>::new(0)
258    }
259}