#[repr(C)] #[allow(non_snake_case)] pub struct RegisterBlock { pub DIRECT: u32, pub DOMAIN: u32, pub SETPOINT: u32, _reserved: [u8; 4], pub STATUS0: u32, pub STATUS1: u32, pub CONFIG: u32, pub AUTHEN: u32, } ral_registers::register! { #[doc = "Clock source direct control"] pub DIRECT RW [ #[doc = "turn on clock source"] ON start(0) width(1) RW {} ] } ral_registers::register! { #[doc = "Clock source domain control"] pub DOMAIN RW [ #[doc = "Current dependence level"] LEVEL start(0) width(3) RW {} #[doc = "Dependence level"] LEVEL0 start(16) width(3) RW {} #[doc = "Depend level"] LEVEL1 start(20) width(3) RW {} #[doc = "Depend level"] LEVEL2 start(24) width(3) RW {} #[doc = "Depend level"] LEVEL3 start(28) width(3) RW {} ] } ral_registers::register! { #[doc = "Clock source Setpoint setting"] pub SETPOINT RW [ #[doc = "Setpoint"] SETPOINT start(0) width(16) RW {} #[doc = "Standby"] STANDBY start(16) width(16) RW {} ] } ral_registers::register! { #[doc = "Clock source working status"] pub STATUS0 RO [ #[doc = "Clock source current state"] ON start(0) width(1) RO {} #[doc = "Clock source active"] STATUS_EARLY start(4) width(1) RO {} #[doc = "Clock source ready"] STATUS_LATE start(5) width(1) RO {} #[doc = "Domains that own this clock source"] ACTIVE_DOMAIN start(8) width(4) RO {} #[doc = "Enable status from each domain"] DOMAIN_ENABLE start(12) width(4) RO {} #[doc = "In use"] IN_USE start(28) width(1) RO {} ] } ral_registers::register! { #[doc = "Clock source low power status"] pub STATUS1 RO [ #[doc = "Domain0 Low Power Mode"] CPU0_MODE start(0) width(2) RO { #[doc = "Run"] RUN = 0, #[doc = "Wait"] WAIT = 0x1, #[doc = "Stop"] STOP = 0x2, #[doc = "Suspend"] SUSPEND = 0x3, } #[doc = "Domain0 request enter Low Power Mode"] CPU0_MODE_REQUEST start(2) width(1) RO {} #[doc = "Domain0 Low Power Mode task done"] CPU0_MODE_DONE start(3) width(1) RO {} #[doc = "Domain1 Low Power Mode"] CPU1_MODE start(4) width(2) RO { #[doc = "Run"] RUN = 0, #[doc = "Wait"] WAIT = 0x1, #[doc = "Stop"] STOP = 0x2, #[doc = "Suspend"] SUSPEND = 0x3, } #[doc = "Domain1 request enter Low Power Mode"] CPU1_MODE_REQUEST start(6) width(1) RO {} #[doc = "Domain1 Low Power Mode task done"] CPU1_MODE_DONE start(7) width(1) RO {} #[doc = "Domain2 Low Power Mode"] CPU2_MODE start(8) width(2) RO { #[doc = "Run"] RUN = 0, #[doc = "Wait"] WAIT = 0x1, #[doc = "Stop"] STOP = 0x2, #[doc = "Suspend"] SUSPEND = 0x3, } #[doc = "Domain2 request enter Low Power Mode"] CPU2_MODE_REQUEST start(10) width(1) RO {} #[doc = "Domain2 Low Power Mode task done"] CPU2_MODE_DONE start(11) width(1) RO {} #[doc = "Domain3 Low Power Mode"] CPU3_MODE start(12) width(2) RO { #[doc = "Run"] RUN = 0, #[doc = "Wait"] WAIT = 0x1, #[doc = "Stop"] STOP = 0x2, #[doc = "Suspend"] SUSPEND = 0x3, } #[doc = "Domain3 request enter Low Power Mode"] CPU3_MODE_REQUEST start(14) width(1) RO {} #[doc = "Domain3 Low Power Mode task done"] CPU3_MODE_DONE start(15) width(1) RO {} #[doc = "Next Setpoint to change to"] TARGET_SETPOINT start(16) width(4) RO {} #[doc = "Current Setpoint"] CURRENT_SETPOINT start(20) width(4) RO {} #[doc = "Clock gate turn off request from GPC Setpoint"] SETPOINT_OFF_REQUEST start(24) width(1) RO {} #[doc = "Clock source turn off finish from GPC Setpoint"] SETPOINT_OFF_DONE start(25) width(1) RO {} #[doc = "Clock gate turn on request from GPC Setpoint"] SETPOINT_ON_REQUEST start(26) width(1) RO {} #[doc = "Clock gate turn on finish from GPC Setpoint"] SETPOINT_ON_DONE start(27) width(1) RO {} #[doc = "Clock gate turn off request from GPC standby"] STANDBY_IN_REQUEST start(28) width(1) RO {} #[doc = "Clock source turn off finish from GPC standby"] STANDBY_IN_DONE start(29) width(1) RO {} #[doc = "Clock gate turn on finish from GPC standby"] STANDBY_OUT_DONE start(30) width(1) RO {} #[doc = "Clock gate turn on request from GPC standby"] STANDBY_OUT_REQUEST start(31) width(1) RO {} ] } ral_registers::register! { #[doc = "Clock source configuration"] pub CONFIG RO [ #[doc = "Automode Present"] AUTOMODE_PRESENT start(1) width(1) RO {} #[doc = "Setpoint present"] SETPOINT_PRESENT start(4) width(1) RO {} ] } #[allow(non_snake_case)] pub mod AUTHEN { pub use super::super::clock_root::AUTHEN::*; #[allow(non_upper_case_globals)] pub mod CPULPM { pub const access: ral_registers::Access = ral_registers::Access::RW; pub const offset: u32 = 18; pub const mask: u32 = 1 << 18; #[doc(hidden)] pub mod vals {} } }