diff options
| author | Ian McIntyre <me@mciantyre.dev> | 2025-11-30 18:52:34 -0500 |
|---|---|---|
| committer | Ian McIntyre <me@mciantyre.dev> | 2025-11-30 19:10:51 -0500 |
| commit | 76199f21616ad86cf68f3b063c1ce23c6fc5a52f (patch) | |
| tree | 4c076d0afd649803a2bd9a5ed5cbb1f1c74fb459 /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.rs | 61 | ||||
| -rw-r--r-- | drivers/ccm-11xx/src/ral_1180/lpcg.rs | 15 | ||||
| -rw-r--r-- | drivers/ccm-11xx/src/ral_1180/observe.rs | 31 | ||||
| -rw-r--r-- | drivers/ccm-11xx/src/ral_1180/osc_pll.rs | 15 |
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], +} |
