1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
#[repr(C)]
#[allow(non_snake_case)]
pub struct RegisterBlock {
pub CONTROL: u32,
pub CONTROL_SET: u32,
pub CONTROL_CLR: u32,
pub CONTROL_TOG: u32,
_reserved0: [u8; 16],
pub STATUS0: u32,
pub STATUS1: u32,
_reserved1: [u8; 4],
pub CONFIG: u32,
pub AUTHEN: u32,
pub AUTHEN_SET: u32,
pub AUTHEN_CLR: u32,
pub AUTHEN_TOG: u32,
pub SETPOINT: [u32; 16],
}
ral_registers::register! {
#[doc = "Clock root control"]
pub CONTROL<u32> RW [
#[doc = "Clock divider"]
DIV start(0) width(8) RW {}
#[doc = "Clock multiplexer"]
MUX start(8) width(3) RW {}
#[doc = "OFF"]
OFF start(24) width(1) RW {}
]
}
pub use CONTROL as CONTROL_SET;
pub use CONTROL as CONTROL_CLR;
pub use CONTROL as CONTROL_TOG;
#[allow(non_snake_case)]
pub mod STATUS0 {
pub use super::CONTROL::{DIV, MUX, OFF};
pub use crate::STATUS0_RO::*;
}
ral_registers::register! {
#[doc = "Clock root low power status"]
pub STATUS1<u32> RO [
#[doc = "Target Setpoint"]
TARGET_SETPOINT start(16) width(4) RO {}
#[doc = "Current Setpoint"]
CURRENT_SETPOINT start(20) width(4) RO {}
#[doc = "Clock frequency decrease request"]
DOWN_REQUEST start(24) width(1) RO {}
#[doc = "Clock frequency decrease finish"]
DOWN_DONE start(25) width(1) RO {}
#[doc = "Clock frequency increase request"]
UP_REQUEST start(26) width(1) RO {}
#[doc = "Clock frequency increase finish"]
UP_DONE start(27) width(1) RO {}
]
}
ral_registers::register! {
#[doc = "Clock root configuration"]
pub CONFIG<u32> RO [
#[doc = "Setpoint present"]
SETPOINT_PRESENT start(4) width(1) RO {}
]
}
ral_registers::register! {
#[doc = "Clock root access control"]
pub AUTHEN<u32> RW [
#[doc = "User access"]
TZ_USER start(0) width(1) RW {}
#[doc = "Non-secure access"]
TZ_NS start(1) width(1) RW {}
#[doc = "Lock truszone setting"]
LOCK_TZ start(4) width(1) RW {}
#[doc = "Whitelist"]
WHITE_LIST start(8) width(4) RW {}
#[doc = "Lock Whitelist"]
LOCK_LIST start(12) width(1) RW {}
#[doc = "Low power and access control by domain"]
DOMAIN_MODE start(16) width(1) RW {}
#[doc = "Low power and access control by Setpoint"]
SETPOINT_MODE start(17) width(1) RW {}
#[doc = "Lock low power and access mode"]
LOCK_MODE start(20) width(1) RW {}
]
}
pub use AUTHEN as AUTHEN_SET;
pub use AUTHEN as AUTHEN_CLR;
pub use AUTHEN as AUTHEN_TOG;
ral_registers::register! {
#[doc = "Setpoint setting"]
pub SETPOINT<u32> RW [
#[doc = "Clock divider"]
DIV start(0) width(8) RW {}
#[doc = "Clock multiplexer"]
MUX start(8) width(3) RW {}
#[doc = "OFF"]
OFF start(24) width(1) RW {}
#[doc = "Grade"]
GRADE start(28) width(4) RW {}
]
}
|