aboutsummaryrefslogtreecommitdiff
path: root/drivers/ccm-11xx/src/ral_1180/clock_root.rs
diff options
context:
space:
mode:
authorIan McIntyre <me@mciantyre.dev>2025-11-30 18:52:34 -0500
committerIan McIntyre <me@mciantyre.dev>2025-11-30 19:10:51 -0500
commit76199f21616ad86cf68f3b063c1ce23c6fc5a52f (patch)
tree4c076d0afd649803a2bd9a5ed5cbb1f1c74fb459 /drivers/ccm-11xx/src/ral_1180/clock_root.rs
First commit
Diffstat (limited to 'drivers/ccm-11xx/src/ral_1180/clock_root.rs')
-rw-r--r--drivers/ccm-11xx/src/ral_1180/clock_root.rs61
1 files changed, 61 insertions, 0 deletions
diff --git a/drivers/ccm-11xx/src/ral_1180/clock_root.rs b/drivers/ccm-11xx/src/ral_1180/clock_root.rs
new file mode 100644
index 0000000..ebf8db9
--- /dev/null
+++ b/drivers/ccm-11xx/src/ral_1180/clock_root.rs
@@ -0,0 +1,61 @@
+#[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,
+ _reserved1: [u8; 12],
+ pub AUTHEN: u32,
+ _reserved2: [u8; 76],
+}
+
+ral_registers::register! {
+ #[doc = "Clock Root Control Register"]
+ pub CONTROL<u32> RW [
+ #[doc = "Clock division fraction."]
+ DIV start(0) width(8) RW {}
+ #[doc = "Clock multiplexer."]
+ MUX start(8) width(2) RW {}
+ #[doc = "Shutdown clock root."]
+ OFF start(24) width(1) RW {}
+ ]
+}
+
+pub use CONTROL as CONTROL_SET;
+pub use CONTROL as CONTROL_CLR;
+pub use CONTROL as CONTROL_TOG;
+
+ral_registers::register! {
+ #[doc = "Clock root working status"]
+ pub STATUS0<u32> RO [
+ #[doc = "Current clock root DIV setting"]
+ DIV start(0) width(8) RO {}
+ #[doc = "Current clock root MUX setting"]
+ MUX start(8) width(2) RO {}
+ #[doc = "Current clock root OFF setting"]
+ OFF start(24) width(1) RO {}
+ #[doc = "Internal updating in generation logic Indication for clock generation logic is applying new setting."]
+ SLICE_BUSY start(28) width(1) RO {}
+ #[doc = "Indication for clock root internal logic is updating. This status is a combination of UPDATE_FORWARD and SLICE_BUSY."]
+ CHANGING start(31) width(1) RO {}
+ ]
+}
+
+ral_registers::register! {
+ #[doc = "Clock root access control"]
+ pub AUTHEN<u32> RW [
+ #[doc = "User access permission"]
+ TZ_USER start(8) width(1) RW {}
+ #[doc = "Non-secure access permission"]
+ TZ_NS start(9) width(1) RW {}
+ #[doc = "Lock TrustZone settings"]
+ LOCK_TZ start(11) width(1) RW {}
+ #[doc = "Lock white list"]
+ LOCK_LIST start(15) width(1) RW {}
+ #[doc = "Whitelist settings"]
+ WHITE_LIST start(16) width(16) RW {}
+ ]
+}