aboutsummaryrefslogtreecommitdiff
path: root/drivers/ccm-11xx/src/ral_11xx/clock_root.rs
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ccm-11xx/src/ral_11xx/clock_root.rs')
-rw-r--r--drivers/ccm-11xx/src/ral_11xx/clock_root.rs106
1 files changed, 106 insertions, 0 deletions
diff --git a/drivers/ccm-11xx/src/ral_11xx/clock_root.rs b/drivers/ccm-11xx/src/ral_11xx/clock_root.rs
new file mode 100644
index 0000000..68c2f93
--- /dev/null
+++ b/drivers/ccm-11xx/src/ral_11xx/clock_root.rs
@@ -0,0 +1,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 {}
+ ]
+}