jh71xx-pac 0.11.1

Peripheral access crate for the JH71xx SoCs
Documentation
#[repr(C)]
#[doc = "Register block"]
pub struct RegisterBlock {
    _reserved0: [u8; 0x04],
    hard_event_turn_on_mask: HardEventTurnOnMask,
    _reserved1: [u8; 0x04],
    soft_turn_on_power_mode: SoftTurnOnPowerMode,
    soft_turn_off_power_mode: SoftTurnOffPowerMode,
    timeout_seq_thd: TimeoutSeqThd,
    pdc: [Pdc; 3],
    _reserved5: [u8; 0x20],
    sw_encourage: SwEncourage,
    tim: Tim,
    pch_bypass: PchBypass,
    pch_pstate: PchPstate,
    pch_timeout: PchTimeout,
    lp_timeout: LpTimeout,
    hard_turn_on_power_mode: HardTurnOnPowerMode,
    _reserved12: [u8; 0x20],
    current_power_mode: CurrentPowerMode,
    _reserved13: [u8; 0x04],
    status: [Status; 2],
    hw_event_crd: HwEventCrd,
    encourage_type_crd: EncourageTypeCrd,
    pch_active: PchActive,
}
impl RegisterBlock {
    #[doc = "0x04 - Hardware Event Turn-On Mask"]
    #[inline(always)]
    pub const fn hard_event_turn_on_mask(&self) -> &HardEventTurnOnMask {
        &self.hard_event_turn_on_mask
    }
    #[doc = "0x0c - Software Turn-On Power Mode"]
    #[inline(always)]
    pub const fn soft_turn_on_power_mode(&self) -> &SoftTurnOnPowerMode {
        &self.soft_turn_on_power_mode
    }
    #[doc = "0x10 - Software Turn-Off Power Mode"]
    #[inline(always)]
    pub const fn soft_turn_off_power_mode(&self) -> &SoftTurnOffPowerMode {
        &self.soft_turn_off_power_mode
    }
    #[doc = "0x14 - Timeout Sequence Threshold"]
    #[inline(always)]
    pub const fn timeout_seq_thd(&self) -> &TimeoutSeqThd {
        &self.timeout_seq_thd
    }
    #[doc = "0x18..0x24 - Power Domain Cascade register"]
    #[inline(always)]
    pub const fn pdc(&self, n: usize) -> &Pdc {
        &self.pdc[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x18..0x24 - Power Domain Cascade register"]
    #[inline(always)]
    pub fn pdc_iter(&self) -> impl Iterator<Item = &Pdc> {
        self.pdc.iter()
    }
    #[doc = "0x44 - Software encouragement register"]
    #[inline(always)]
    pub const fn sw_encourage(&self) -> &SwEncourage {
        &self.sw_encourage
    }
    #[doc = "0x48 - Timer Interrupt Mask register"]
    #[inline(always)]
    pub const fn tim(&self) -> &Tim {
        &self.tim
    }
    #[doc = "0x4c - P-channel Bypass register"]
    #[inline(always)]
    pub const fn pch_bypass(&self) -> &PchBypass {
        &self.pch_bypass
    }
    #[doc = "0x50 - P-channel PSTATE register"]
    #[inline(always)]
    pub const fn pch_pstate(&self) -> &PchPstate {
        &self.pch_pstate
    }
    #[doc = "0x54 - P-channel waiting device acknowledge timeout."]
    #[inline(always)]
    pub const fn pch_timeout(&self) -> &PchTimeout {
        &self.pch_timeout
    }
    #[doc = "0x58 - LP Cell Control Timeout Threshold register"]
    #[inline(always)]
    pub const fn lp_timeout(&self) -> &LpTimeout {
        &self.lp_timeout
    }
    #[doc = "0x5c - Hardware Turn-On Power Mode register"]
    #[inline(always)]
    pub const fn hard_turn_on_power_mode(&self) -> &HardTurnOnPowerMode {
        &self.hard_turn_on_power_mode
    }
    #[doc = "0x80 - Current Power Mode register"]
    #[inline(always)]
    pub const fn current_power_mode(&self) -> &CurrentPowerMode {
        &self.current_power_mode
    }
    #[doc = "0x88..0x90 - Event and Interrupt Status registers"]
    #[doc = ""]
    #[doc = "<div class=\"warning\">`n` is the index of register in the array. `n == 0` corresponds to `status_event` register.</div>"]
    #[inline(always)]
    pub const fn status(&self, n: usize) -> &Status {
        &self.status[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x88..0x90 - Event and Interrupt Status registers"]
    #[inline(always)]
    pub fn status_iter(&self) -> impl Iterator<Item = &Status> {
        self.status.iter()
    }
    #[doc = "0x88 - Event and Interrupt Status registers"]
    #[inline(always)]
    pub const fn status_event(&self) -> &Status {
        self.status(0)
    }
    #[doc = "0x8c - Event and Interrupt Status registers"]
    #[inline(always)]
    pub const fn status_interrupt(&self) -> &Status {
        self.status(1)
    }
    #[doc = "0x90 - Hardware Event Record register"]
    #[inline(always)]
    pub const fn hw_event_crd(&self) -> &HwEventCrd {
        &self.hw_event_crd
    }
    #[doc = "0x94 - Hardware Event Type Record register"]
    #[inline(always)]
    pub const fn encourage_type_crd(&self) -> &EncourageTypeCrd {
        &self.encourage_type_crd
    }
    #[doc = "0x98 - P-channel PACTIVE Status register"]
    #[inline(always)]
    pub const fn pch_active(&self) -> &PchActive {
        &self.pch_active
    }
}
#[doc = "hard_event_turn_on_mask (rw) register accessor: Hardware Event Turn-On Mask\n\nYou can [`read`](crate::Reg::read) this register and get [`hard_event_turn_on_mask::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hard_event_turn_on_mask::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hard_event_turn_on_mask`]
module"]
#[doc(alias = "hard_event_turn_on_mask")]
pub type HardEventTurnOnMask = crate::Reg<hard_event_turn_on_mask::HardEventTurnOnMaskSpec>;
#[doc = "Hardware Event Turn-On Mask"]
pub mod hard_event_turn_on_mask;
#[doc = "soft_turn_on_power_mode (rw) register accessor: Software Turn-On Power Mode\n\nYou can [`read`](crate::Reg::read) this register and get [`soft_turn_on_power_mode::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`soft_turn_on_power_mode::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@soft_turn_on_power_mode`]
module"]
#[doc(alias = "soft_turn_on_power_mode")]
pub type SoftTurnOnPowerMode = crate::Reg<soft_turn_on_power_mode::SoftTurnOnPowerModeSpec>;
#[doc = "Software Turn-On Power Mode"]
pub mod soft_turn_on_power_mode;
#[doc = "soft_turn_off_power_mode (rw) register accessor: Software Turn-Off Power Mode\n\nYou can [`read`](crate::Reg::read) this register and get [`soft_turn_off_power_mode::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`soft_turn_off_power_mode::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@soft_turn_off_power_mode`]
module"]
#[doc(alias = "soft_turn_off_power_mode")]
pub type SoftTurnOffPowerMode = crate::Reg<soft_turn_off_power_mode::SoftTurnOffPowerModeSpec>;
#[doc = "Software Turn-Off Power Mode"]
pub mod soft_turn_off_power_mode;
#[doc = "timeout_seq_thd (rw) register accessor: Timeout Sequence Threshold\n\nYou can [`read`](crate::Reg::read) this register and get [`timeout_seq_thd::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`timeout_seq_thd::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@timeout_seq_thd`]
module"]
#[doc(alias = "timeout_seq_thd")]
pub type TimeoutSeqThd = crate::Reg<timeout_seq_thd::TimeoutSeqThdSpec>;
#[doc = "Timeout Sequence Threshold"]
pub mod timeout_seq_thd;
#[doc = "pdc (rw) register accessor: Power Domain Cascade register\n\nYou can [`read`](crate::Reg::read) this register and get [`pdc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pdc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pdc`]
module"]
#[doc(alias = "pdc")]
pub type Pdc = crate::Reg<pdc::PdcSpec>;
#[doc = "Power Domain Cascade register"]
pub mod pdc;
#[doc = "sw_encourage (rw) register accessor: Software encouragement register\n\nYou can [`read`](crate::Reg::read) this register and get [`sw_encourage::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sw_encourage::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sw_encourage`]
module"]
#[doc(alias = "sw_encourage")]
pub type SwEncourage = crate::Reg<sw_encourage::SwEncourageSpec>;
#[doc = "Software encouragement register"]
pub mod sw_encourage;
#[doc = "tim (rw) register accessor: Timer Interrupt Mask register\n\nYou can [`read`](crate::Reg::read) this register and get [`tim::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tim::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tim`]
module"]
#[doc(alias = "tim")]
pub type Tim = crate::Reg<tim::TimSpec>;
#[doc = "Timer Interrupt Mask register"]
pub mod tim;
#[doc = "pch_bypass (rw) register accessor: P-channel Bypass register\n\nYou can [`read`](crate::Reg::read) this register and get [`pch_bypass::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pch_bypass::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pch_bypass`]
module"]
#[doc(alias = "pch_bypass")]
pub type PchBypass = crate::Reg<pch_bypass::PchBypassSpec>;
#[doc = "P-channel Bypass register"]
pub mod pch_bypass;
#[doc = "pch_pstate (rw) register accessor: P-channel PSTATE register\n\nYou can [`read`](crate::Reg::read) this register and get [`pch_pstate::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pch_pstate::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pch_pstate`]
module"]
#[doc(alias = "pch_pstate")]
pub type PchPstate = crate::Reg<pch_pstate::PchPstateSpec>;
#[doc = "P-channel PSTATE register"]
pub mod pch_pstate;
#[doc = "pch_timeout (rw) register accessor: P-channel waiting device acknowledge timeout.\n\nYou can [`read`](crate::Reg::read) this register and get [`pch_timeout::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pch_timeout::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pch_timeout`]
module"]
#[doc(alias = "pch_timeout")]
pub type PchTimeout = crate::Reg<pch_timeout::PchTimeoutSpec>;
#[doc = "P-channel waiting device acknowledge timeout."]
pub mod pch_timeout;
#[doc = "lp_timeout (rw) register accessor: LP Cell Control Timeout Threshold register\n\nYou can [`read`](crate::Reg::read) this register and get [`lp_timeout::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`lp_timeout::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@lp_timeout`]
module"]
#[doc(alias = "lp_timeout")]
pub type LpTimeout = crate::Reg<lp_timeout::LpTimeoutSpec>;
#[doc = "LP Cell Control Timeout Threshold register"]
pub mod lp_timeout;
#[doc = "hard_turn_on_power_mode (rw) register accessor: Hardware Turn-On Power Mode register\n\nYou can [`read`](crate::Reg::read) this register and get [`hard_turn_on_power_mode::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hard_turn_on_power_mode::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hard_turn_on_power_mode`]
module"]
#[doc(alias = "hard_turn_on_power_mode")]
pub type HardTurnOnPowerMode = crate::Reg<hard_turn_on_power_mode::HardTurnOnPowerModeSpec>;
#[doc = "Hardware Turn-On Power Mode register"]
pub mod hard_turn_on_power_mode;
#[doc = "current_power_mode (rw) register accessor: Current Power Mode register\n\nYou can [`read`](crate::Reg::read) this register and get [`current_power_mode::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`current_power_mode::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@current_power_mode`]
module"]
#[doc(alias = "current_power_mode")]
pub type CurrentPowerMode = crate::Reg<current_power_mode::CurrentPowerModeSpec>;
#[doc = "Current Power Mode register"]
pub mod current_power_mode;
#[doc = "status (r) register accessor: Event and Interrupt Status registers\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status`]
module"]
#[doc(alias = "status")]
pub type Status = crate::Reg<status::StatusSpec>;
#[doc = "Event and Interrupt Status registers"]
pub mod status;
#[doc = "hw_event_crd (r) register accessor: Hardware Event Record register\n\nYou can [`read`](crate::Reg::read) this register and get [`hw_event_crd::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hw_event_crd`]
module"]
#[doc(alias = "hw_event_crd")]
pub type HwEventCrd = crate::Reg<hw_event_crd::HwEventCrdSpec>;
#[doc = "Hardware Event Record register"]
pub mod hw_event_crd;
#[doc = "encourage_type_crd (r) register accessor: Hardware Event Type Record register\n\nYou can [`read`](crate::Reg::read) this register and get [`encourage_type_crd::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@encourage_type_crd`]
module"]
#[doc(alias = "encourage_type_crd")]
pub type EncourageTypeCrd = crate::Reg<encourage_type_crd::EncourageTypeCrdSpec>;
#[doc = "Hardware Event Type Record register"]
pub mod encourage_type_crd;
#[doc = "pch_active (r) register accessor: P-channel PACTIVE Status register\n\nYou can [`read`](crate::Reg::read) this register and get [`pch_active::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pch_active`]
module"]
#[doc(alias = "pch_active")]
pub type PchActive = crate::Reg<pch_active::PchActiveSpec>;
#[doc = "P-channel PACTIVE Status register"]
pub mod pch_active;