aboutsummaryrefslogtreecommitdiff
path: root/drivers/ccm-11xx/src/ral_1180
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
First commit
Diffstat (limited to 'drivers/ccm-11xx/src/ral_1180')
-rw-r--r--drivers/ccm-11xx/src/ral_1180/clock_root.rs61
-rw-r--r--drivers/ccm-11xx/src/ral_1180/lpcg.rs15
-rw-r--r--drivers/ccm-11xx/src/ral_1180/observe.rs31
-rw-r--r--drivers/ccm-11xx/src/ral_1180/osc_pll.rs15
4 files changed, 122 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 {}
+ ]
+}
diff --git a/drivers/ccm-11xx/src/ral_1180/lpcg.rs b/drivers/ccm-11xx/src/ral_1180/lpcg.rs
new file mode 100644
index 0000000..21d099f
--- /dev/null
+++ b/drivers/ccm-11xx/src/ral_1180/lpcg.rs
@@ -0,0 +1,15 @@
+#[repr(C)]
+#[allow(non_snake_case)]
+pub struct RegisterBlock {
+ pub DIRECT: u32,
+ _reserved0: [u8; 12],
+ pub LPM0: u32,
+ pub LPM1: u32,
+ _reserved1: [u8; 4],
+ pub LPM_CUR: u32,
+ pub STATUS0: u32,
+ pub STATUS1: u32,
+ _reserved2: [u8; 8],
+ pub AUTHEN: u32,
+ _reserved3: [u8; 12],
+}
diff --git a/drivers/ccm-11xx/src/ral_1180/observe.rs b/drivers/ccm-11xx/src/ral_1180/observe.rs
new file mode 100644
index 0000000..7371acd
--- /dev/null
+++ b/drivers/ccm-11xx/src/ral_1180/observe.rs
@@ -0,0 +1,31 @@
+#[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 STATUS: u32,
+ _reserved1: [u8; 12],
+ pub AUTHEN: u32,
+ pub AUTHEN_SET: u32,
+ pub AUTHEN_CLR: u32,
+ pub AUTHEN_TOG: u32,
+ pub FREQUENCY_CURRENT: u32,
+ pub FREQUENCY_MIN: u32,
+ pub FREQUENCY_MAX: u32,
+ _reserved2: [u8; 4],
+ pub PERIOD_CURRENT: u32,
+ pub PERIOD_MIN: u32,
+ pub PERIOD_MAX: u32,
+ _reserved3: [u8; 4],
+ pub HIGH_CURRENT: u32,
+ pub HIGH_MIN: u32,
+ pub HIGH_MAX: u32,
+ _reserved4: [u8; 4],
+ pub LOW_CURRENT: u32,
+ pub LOW_MIN: u32,
+ pub LOW_MAX: u32,
+ _reserved5: [u8; 4],
+}
diff --git a/drivers/ccm-11xx/src/ral_1180/osc_pll.rs b/drivers/ccm-11xx/src/ral_1180/osc_pll.rs
new file mode 100644
index 0000000..21d099f
--- /dev/null
+++ b/drivers/ccm-11xx/src/ral_1180/osc_pll.rs
@@ -0,0 +1,15 @@
+#[repr(C)]
+#[allow(non_snake_case)]
+pub struct RegisterBlock {
+ pub DIRECT: u32,
+ _reserved0: [u8; 12],
+ pub LPM0: u32,
+ pub LPM1: u32,
+ _reserved1: [u8; 4],
+ pub LPM_CUR: u32,
+ pub STATUS0: u32,
+ pub STATUS1: u32,
+ _reserved2: [u8; 8],
+ pub AUTHEN: u32,
+ _reserved3: [u8; 12],
+}