#[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 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 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 RO [ #[doc = "Setpoint present"] SETPOINT_PRESENT start(4) width(1) RO {} ] } ral_registers::register! { #[doc = "Clock root access control"] pub AUTHEN 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 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 {} ] }