imxrt_ral/blocks/imxrt1011/
pit.rs

1#[doc = "PIT"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "PIT Module Control Register"]
5    pub MCR: crate::RWRegister<u32>,
6    _reserved0: [u8; 0xdc],
7    #[doc = "PIT Upper Lifetime Timer Register"]
8    pub LTMR64H: crate::RORegister<u32>,
9    #[doc = "PIT Lower Lifetime Timer Register"]
10    pub LTMR64L: crate::RORegister<u32>,
11    _reserved1: [u8; 0x18],
12    #[doc = "no description available"]
13    pub TIMER: [timer::RegisterBlock; 4usize],
14}
15#[doc = "PIT Module Control Register"]
16pub mod MCR {
17    #[doc = "Freeze"]
18    pub mod FRZ {
19        pub const offset: u32 = 0;
20        pub const mask: u32 = 0x01 << offset;
21        pub mod R {}
22        pub mod W {}
23        pub mod RW {
24            #[doc = "Timers continue to run in Debug mode."]
25            pub const FRZ_0: u32 = 0;
26            #[doc = "Timers are stopped in Debug mode."]
27            pub const FRZ_1: u32 = 0x01;
28        }
29    }
30    #[doc = "Module Disable for PIT"]
31    pub mod MDIS {
32        pub const offset: u32 = 1;
33        pub const mask: u32 = 0x01 << offset;
34        pub mod R {}
35        pub mod W {}
36        pub mod RW {
37            #[doc = "Clock for standard PIT timers is enabled."]
38            pub const MDIS_0: u32 = 0;
39            #[doc = "Clock for standard PIT timers is disabled."]
40            pub const MDIS_1: u32 = 0x01;
41        }
42    }
43}
44#[doc = "PIT Upper Lifetime Timer Register"]
45pub mod LTMR64H {
46    #[doc = "Life Timer value"]
47    pub mod LTH {
48        pub const offset: u32 = 0;
49        pub const mask: u32 = 0xffff_ffff << offset;
50        pub mod R {}
51        pub mod W {}
52        pub mod RW {}
53    }
54}
55#[doc = "PIT Lower Lifetime Timer Register"]
56pub mod LTMR64L {
57    #[doc = "Life Timer value"]
58    pub mod LTL {
59        pub const offset: u32 = 0;
60        pub const mask: u32 = 0xffff_ffff << offset;
61        pub mod R {}
62        pub mod W {}
63        pub mod RW {}
64    }
65}
66pub mod timer {
67    #[doc = "no description available"]
68    #[repr(C)]
69    pub struct RegisterBlock {
70        #[doc = "Timer Load Value Register"]
71        pub LDVAL: crate::RWRegister<u32>,
72        #[doc = "Current Timer Value Register"]
73        pub CVAL: crate::RORegister<u32>,
74        #[doc = "Timer Control Register"]
75        pub TCTRL: crate::RWRegister<u32>,
76        #[doc = "Timer Flag Register"]
77        pub TFLG: crate::RWRegister<u32>,
78    }
79    #[doc = "Timer Load Value Register"]
80    pub mod LDVAL {
81        #[doc = "Timer Start Value"]
82        pub mod TSV {
83            pub const offset: u32 = 0;
84            pub const mask: u32 = 0xffff_ffff << offset;
85            pub mod R {}
86            pub mod W {}
87            pub mod RW {}
88        }
89    }
90    #[doc = "Current Timer Value Register"]
91    pub mod CVAL {
92        #[doc = "Current Timer Value"]
93        pub mod TVL {
94            pub const offset: u32 = 0;
95            pub const mask: u32 = 0xffff_ffff << offset;
96            pub mod R {}
97            pub mod W {}
98            pub mod RW {}
99        }
100    }
101    #[doc = "Timer Control Register"]
102    pub mod TCTRL {
103        #[doc = "Timer Enable"]
104        pub mod TEN {
105            pub const offset: u32 = 0;
106            pub const mask: u32 = 0x01 << offset;
107            pub mod R {}
108            pub mod W {}
109            pub mod RW {
110                #[doc = "Timer n is disabled."]
111                pub const TEN_0: u32 = 0;
112                #[doc = "Timer n is enabled."]
113                pub const TEN_1: u32 = 0x01;
114            }
115        }
116        #[doc = "Timer Interrupt Enable"]
117        pub mod TIE {
118            pub const offset: u32 = 1;
119            pub const mask: u32 = 0x01 << offset;
120            pub mod R {}
121            pub mod W {}
122            pub mod RW {
123                #[doc = "Interrupt requests from Timer n are disabled."]
124                pub const TIE_0: u32 = 0;
125                #[doc = "Interrupt is requested whenever TIF is set."]
126                pub const TIE_1: u32 = 0x01;
127            }
128        }
129        #[doc = "Chain Mode"]
130        pub mod CHN {
131            pub const offset: u32 = 2;
132            pub const mask: u32 = 0x01 << offset;
133            pub mod R {}
134            pub mod W {}
135            pub mod RW {
136                #[doc = "Timer is not chained."]
137                pub const CHN_0: u32 = 0;
138                #[doc = "Timer is chained to a previous timer. For example, for channel 2, if this field is set, Timer 2 is chained to Timer 1."]
139                pub const CHN_1: u32 = 0x01;
140            }
141        }
142    }
143    #[doc = "Timer Flag Register"]
144    pub mod TFLG {
145        #[doc = "Timer Interrupt Flag"]
146        pub mod TIF {
147            pub const offset: u32 = 0;
148            pub const mask: u32 = 0x01 << offset;
149            pub mod R {}
150            pub mod W {}
151            pub mod RW {
152                #[doc = "Timeout has not yet occurred."]
153                pub const TIF_0: u32 = 0;
154                #[doc = "Timeout has occurred."]
155                pub const TIF_1: u32 = 0x01;
156            }
157        }
158    }
159}