#![doc = "Peripheral access API for R7FA4M2AD microcontrollers (generated using svd2rust v0.28.0 ( ))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next]
svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.28.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
#![deny(dead_code)]
#![deny(improper_ctypes)]
#![deny(missing_docs)]
#![deny(no_mangle_generic_items)]
#![deny(non_shorthand_field_patterns)]
#![deny(overflowing_literals)]
#![deny(path_statements)]
#![deny(patterns_in_fns_without_body)]
#![deny(private_in_public)]
#![deny(unconditional_recursion)]
#![deny(unused_allocation)]
#![deny(unused_comparisons)]
#![deny(unused_parens)]
#![deny(while_true)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![no_std]
use core::marker::PhantomData;
use core::ops::Deref;
#[doc = r"Number available in the NVIC for configuring priority"]
pub const NVIC_PRIO_BITS: u8 = 4;
#[cfg(feature = "rt")]
pub use self::Interrupt as interrupt;
pub use cortex_m::peripheral::Peripherals as CorePeripherals;
pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
#[cfg(feature = "rt")]
pub use cortex_m_rt::interrupt;
#[allow(unused_imports)]
use generic::*;
#[doc = r"Common register and bit access and modify traits"]
pub mod generic;
#[cfg(feature = "rt")]
extern "C" {
fn IEL0();
fn IEL1();
fn IEL2();
fn IEL3();
fn IEL4();
fn IEL5();
fn IEL6();
fn IEL7();
fn IEL8();
fn IEL9();
fn IEL10();
fn IEL11();
fn IEL12();
fn IEL13();
fn IEL14();
fn IEL15();
fn IEL16();
fn IEL17();
fn IEL18();
fn IEL19();
fn IEL20();
fn IEL21();
fn IEL22();
fn IEL23();
fn IEL24();
fn IEL25();
fn IEL26();
fn IEL27();
fn IEL28();
fn IEL29();
fn IEL30();
fn IEL31();
fn IEL32();
fn IEL33();
fn IEL34();
fn IEL35();
fn IEL36();
fn IEL37();
fn IEL38();
fn IEL39();
fn IEL40();
fn IEL41();
fn IEL42();
fn IEL43();
fn IEL44();
fn IEL45();
fn IEL46();
fn IEL47();
fn IEL48();
fn IEL49();
fn IEL50();
fn IEL51();
fn IEL52();
fn IEL53();
fn IEL54();
fn IEL55();
fn IEL56();
fn IEL57();
fn IEL58();
fn IEL59();
fn IEL60();
fn IEL61();
fn IEL62();
fn IEL63();
fn IEL64();
fn IEL65();
fn IEL66();
fn IEL67();
fn IEL68();
fn IEL69();
fn IEL70();
fn IEL71();
fn IEL72();
fn IEL73();
fn IEL74();
fn IEL75();
fn IEL76();
fn IEL77();
fn IEL78();
fn IEL79();
fn IEL80();
fn IEL81();
fn IEL82();
fn IEL83();
fn IEL84();
fn IEL85();
fn IEL86();
fn IEL87();
fn IEL88();
fn IEL89();
fn IEL90();
fn IEL91();
fn IEL92();
fn IEL93();
fn IEL94();
fn IEL95();
}
#[doc(hidden)]
pub union Vector {
_handler: unsafe extern "C" fn(),
_reserved: u32,
}
#[cfg(feature = "rt")]
#[doc(hidden)]
#[link_section = ".vector_table.interrupts"]
#[no_mangle]
pub static __INTERRUPTS: [Vector; 96] = [
Vector { _handler: IEL0 },
Vector { _handler: IEL1 },
Vector { _handler: IEL2 },
Vector { _handler: IEL3 },
Vector { _handler: IEL4 },
Vector { _handler: IEL5 },
Vector { _handler: IEL6 },
Vector { _handler: IEL7 },
Vector { _handler: IEL8 },
Vector { _handler: IEL9 },
Vector { _handler: IEL10 },
Vector { _handler: IEL11 },
Vector { _handler: IEL12 },
Vector { _handler: IEL13 },
Vector { _handler: IEL14 },
Vector { _handler: IEL15 },
Vector { _handler: IEL16 },
Vector { _handler: IEL17 },
Vector { _handler: IEL18 },
Vector { _handler: IEL19 },
Vector { _handler: IEL20 },
Vector { _handler: IEL21 },
Vector { _handler: IEL22 },
Vector { _handler: IEL23 },
Vector { _handler: IEL24 },
Vector { _handler: IEL25 },
Vector { _handler: IEL26 },
Vector { _handler: IEL27 },
Vector { _handler: IEL28 },
Vector { _handler: IEL29 },
Vector { _handler: IEL30 },
Vector { _handler: IEL31 },
Vector { _handler: IEL32 },
Vector { _handler: IEL33 },
Vector { _handler: IEL34 },
Vector { _handler: IEL35 },
Vector { _handler: IEL36 },
Vector { _handler: IEL37 },
Vector { _handler: IEL38 },
Vector { _handler: IEL39 },
Vector { _handler: IEL40 },
Vector { _handler: IEL41 },
Vector { _handler: IEL42 },
Vector { _handler: IEL43 },
Vector { _handler: IEL44 },
Vector { _handler: IEL45 },
Vector { _handler: IEL46 },
Vector { _handler: IEL47 },
Vector { _handler: IEL48 },
Vector { _handler: IEL49 },
Vector { _handler: IEL50 },
Vector { _handler: IEL51 },
Vector { _handler: IEL52 },
Vector { _handler: IEL53 },
Vector { _handler: IEL54 },
Vector { _handler: IEL55 },
Vector { _handler: IEL56 },
Vector { _handler: IEL57 },
Vector { _handler: IEL58 },
Vector { _handler: IEL59 },
Vector { _handler: IEL60 },
Vector { _handler: IEL61 },
Vector { _handler: IEL62 },
Vector { _handler: IEL63 },
Vector { _handler: IEL64 },
Vector { _handler: IEL65 },
Vector { _handler: IEL66 },
Vector { _handler: IEL67 },
Vector { _handler: IEL68 },
Vector { _handler: IEL69 },
Vector { _handler: IEL70 },
Vector { _handler: IEL71 },
Vector { _handler: IEL72 },
Vector { _handler: IEL73 },
Vector { _handler: IEL74 },
Vector { _handler: IEL75 },
Vector { _handler: IEL76 },
Vector { _handler: IEL77 },
Vector { _handler: IEL78 },
Vector { _handler: IEL79 },
Vector { _handler: IEL80 },
Vector { _handler: IEL81 },
Vector { _handler: IEL82 },
Vector { _handler: IEL83 },
Vector { _handler: IEL84 },
Vector { _handler: IEL85 },
Vector { _handler: IEL86 },
Vector { _handler: IEL87 },
Vector { _handler: IEL88 },
Vector { _handler: IEL89 },
Vector { _handler: IEL90 },
Vector { _handler: IEL91 },
Vector { _handler: IEL92 },
Vector { _handler: IEL93 },
Vector { _handler: IEL94 },
Vector { _handler: IEL95 },
];
#[doc = r"Enumeration of all the interrupts."]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Interrupt {
#[doc = "0 - ICU Interrupt 0"]
IEL0 = 0,
#[doc = "1 - ICU Interrupt 1"]
IEL1 = 1,
#[doc = "2 - ICU Interrupt 2"]
IEL2 = 2,
#[doc = "3 - ICU Interrupt 3"]
IEL3 = 3,
#[doc = "4 - ICU Interrupt 4"]
IEL4 = 4,
#[doc = "5 - ICU Interrupt 5"]
IEL5 = 5,
#[doc = "6 - ICU Interrupt 6"]
IEL6 = 6,
#[doc = "7 - ICU Interrupt 7"]
IEL7 = 7,
#[doc = "8 - ICU Interrupt 8"]
IEL8 = 8,
#[doc = "9 - ICU Interrupt 9"]
IEL9 = 9,
#[doc = "10 - ICU Interrupt 10"]
IEL10 = 10,
#[doc = "11 - ICU Interrupt 11"]
IEL11 = 11,
#[doc = "12 - ICU Interrupt 12"]
IEL12 = 12,
#[doc = "13 - ICU Interrupt 13"]
IEL13 = 13,
#[doc = "14 - ICU Interrupt 14"]
IEL14 = 14,
#[doc = "15 - ICU Interrupt 15"]
IEL15 = 15,
#[doc = "16 - ICU Interrupt 16"]
IEL16 = 16,
#[doc = "17 - ICU Interrupt 17"]
IEL17 = 17,
#[doc = "18 - ICU Interrupt 18"]
IEL18 = 18,
#[doc = "19 - ICU Interrupt 19"]
IEL19 = 19,
#[doc = "20 - ICU Interrupt 20"]
IEL20 = 20,
#[doc = "21 - ICU Interrupt 21"]
IEL21 = 21,
#[doc = "22 - ICU Interrupt 22"]
IEL22 = 22,
#[doc = "23 - ICU Interrupt 23"]
IEL23 = 23,
#[doc = "24 - ICU Interrupt 24"]
IEL24 = 24,
#[doc = "25 - ICU Interrupt 25"]
IEL25 = 25,
#[doc = "26 - ICU Interrupt 26"]
IEL26 = 26,
#[doc = "27 - ICU Interrupt 27"]
IEL27 = 27,
#[doc = "28 - ICU Interrupt 28"]
IEL28 = 28,
#[doc = "29 - ICU Interrupt 29"]
IEL29 = 29,
#[doc = "30 - ICU Interrupt 30"]
IEL30 = 30,
#[doc = "31 - ICU Interrupt 31"]
IEL31 = 31,
#[doc = "32 - ICU Interrupt 32"]
IEL32 = 32,
#[doc = "33 - ICU Interrupt 33"]
IEL33 = 33,
#[doc = "34 - ICU Interrupt 34"]
IEL34 = 34,
#[doc = "35 - ICU Interrupt 35"]
IEL35 = 35,
#[doc = "36 - ICU Interrupt 36"]
IEL36 = 36,
#[doc = "37 - ICU Interrupt 37"]
IEL37 = 37,
#[doc = "38 - ICU Interrupt 38"]
IEL38 = 38,
#[doc = "39 - ICU Interrupt 39"]
IEL39 = 39,
#[doc = "40 - ICU Interrupt 40"]
IEL40 = 40,
#[doc = "41 - ICU Interrupt 41"]
IEL41 = 41,
#[doc = "42 - ICU Interrupt 42"]
IEL42 = 42,
#[doc = "43 - ICU Interrupt 43"]
IEL43 = 43,
#[doc = "44 - ICU Interrupt 44"]
IEL44 = 44,
#[doc = "45 - ICU Interrupt 45"]
IEL45 = 45,
#[doc = "46 - ICU Interrupt 46"]
IEL46 = 46,
#[doc = "47 - ICU Interrupt 47"]
IEL47 = 47,
#[doc = "48 - ICU Interrupt 48"]
IEL48 = 48,
#[doc = "49 - ICU Interrupt 49"]
IEL49 = 49,
#[doc = "50 - ICU Interrupt 50"]
IEL50 = 50,
#[doc = "51 - ICU Interrupt 51"]
IEL51 = 51,
#[doc = "52 - ICU Interrupt 52"]
IEL52 = 52,
#[doc = "53 - ICU Interrupt 53"]
IEL53 = 53,
#[doc = "54 - ICU Interrupt 54"]
IEL54 = 54,
#[doc = "55 - ICU Interrupt 55"]
IEL55 = 55,
#[doc = "56 - ICU Interrupt 56"]
IEL56 = 56,
#[doc = "57 - ICU Interrupt 57"]
IEL57 = 57,
#[doc = "58 - ICU Interrupt 58"]
IEL58 = 58,
#[doc = "59 - ICU Interrupt 59"]
IEL59 = 59,
#[doc = "60 - ICU Interrupt 60"]
IEL60 = 60,
#[doc = "61 - ICU Interrupt 61"]
IEL61 = 61,
#[doc = "62 - ICU Interrupt 62"]
IEL62 = 62,
#[doc = "63 - ICU Interrupt 63"]
IEL63 = 63,
#[doc = "64 - ICU Interrupt 64"]
IEL64 = 64,
#[doc = "65 - ICU Interrupt 65"]
IEL65 = 65,
#[doc = "66 - ICU Interrupt 66"]
IEL66 = 66,
#[doc = "67 - ICU Interrupt 67"]
IEL67 = 67,
#[doc = "68 - ICU Interrupt 68"]
IEL68 = 68,
#[doc = "69 - ICU Interrupt 69"]
IEL69 = 69,
#[doc = "70 - ICU Interrupt 70"]
IEL70 = 70,
#[doc = "71 - ICU Interrupt 71"]
IEL71 = 71,
#[doc = "72 - ICU Interrupt 72"]
IEL72 = 72,
#[doc = "73 - ICU Interrupt 73"]
IEL73 = 73,
#[doc = "74 - ICU Interrupt 74"]
IEL74 = 74,
#[doc = "75 - ICU Interrupt 75"]
IEL75 = 75,
#[doc = "76 - ICU Interrupt 76"]
IEL76 = 76,
#[doc = "77 - ICU Interrupt 77"]
IEL77 = 77,
#[doc = "78 - ICU Interrupt 78"]
IEL78 = 78,
#[doc = "79 - ICU Interrupt 79"]
IEL79 = 79,
#[doc = "80 - ICU Interrupt 80"]
IEL80 = 80,
#[doc = "81 - ICU Interrupt 81"]
IEL81 = 81,
#[doc = "82 - ICU Interrupt 82"]
IEL82 = 82,
#[doc = "83 - ICU Interrupt 83"]
IEL83 = 83,
#[doc = "84 - ICU Interrupt 84"]
IEL84 = 84,
#[doc = "85 - ICU Interrupt 85"]
IEL85 = 85,
#[doc = "86 - ICU Interrupt 86"]
IEL86 = 86,
#[doc = "87 - ICU Interrupt 87"]
IEL87 = 87,
#[doc = "88 - ICU Interrupt 88"]
IEL88 = 88,
#[doc = "89 - ICU Interrupt 89"]
IEL89 = 89,
#[doc = "90 - ICU Interrupt 90"]
IEL90 = 90,
#[doc = "91 - ICU Interrupt 91"]
IEL91 = 91,
#[doc = "92 - ICU Interrupt 92"]
IEL92 = 92,
#[doc = "93 - ICU Interrupt 93"]
IEL93 = 93,
#[doc = "94 - ICU Interrupt 94"]
IEL94 = 94,
#[doc = "95 - ICU Interrupt 95"]
IEL95 = 95,
}
unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
#[inline(always)]
fn number(self) -> u16 {
self as u16
}
}
#[doc = "Renesas Memory Protection Unit"]
pub struct RMPU {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for RMPU {}
impl RMPU {
#[doc = r"Pointer to the register block"]
pub const PTR: *const rmpu::RegisterBlock = 0x4000_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const rmpu::RegisterBlock {
Self::PTR
}
}
impl Deref for RMPU {
type Target = rmpu::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for RMPU {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("RMPU").finish()
}
}
#[doc = "Renesas Memory Protection Unit"]
pub mod rmpu;
#[doc = "TrustZone Filter"]
pub struct TZF {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for TZF {}
impl TZF {
#[doc = r"Pointer to the register block"]
pub const PTR: *const tzf::RegisterBlock = 0x4000_0e00 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const tzf::RegisterBlock {
Self::PTR
}
}
impl Deref for TZF {
type Target = tzf::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for TZF {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("TZF").finish()
}
}
#[doc = "TrustZone Filter"]
pub mod tzf;
#[doc = "SRAM Control"]
pub struct SRAM {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SRAM {}
impl SRAM {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sram::RegisterBlock = 0x4000_2000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sram::RegisterBlock {
Self::PTR
}
}
impl Deref for SRAM {
type Target = sram::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SRAM {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SRAM").finish()
}
}
#[doc = "SRAM Control"]
pub mod sram;
#[doc = "Bus Control"]
pub struct BUS {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for BUS {}
impl BUS {
#[doc = r"Pointer to the register block"]
pub const PTR: *const bus::RegisterBlock = 0x4000_3000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const bus::RegisterBlock {
Self::PTR
}
}
impl Deref for BUS {
type Target = bus::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for BUS {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("BUS").finish()
}
}
#[doc = "Bus Control"]
pub mod bus;
#[doc = "Direct memory access controller 0"]
pub struct DMAC0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC0 {}
impl DMAC0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_5000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC0 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC0").finish()
}
}
#[doc = "Direct memory access controller 0"]
pub mod dmac0;
#[doc = "Direct memory access controller 1"]
pub struct DMAC1 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC1 {}
impl DMAC1 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_5040 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC1 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC1").finish()
}
}
#[doc = "Direct memory access controller 1"]
pub use self::dmac0 as dmac1;
#[doc = "Direct memory access controller 2"]
pub struct DMAC2 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC2 {}
impl DMAC2 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_5080 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC2 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC2 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC2").finish()
}
}
#[doc = "Direct memory access controller 2"]
pub use self::dmac0 as dmac2;
#[doc = "Direct memory access controller 3"]
pub struct DMAC3 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC3 {}
impl DMAC3 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_50c0 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC3 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC3 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC3").finish()
}
}
#[doc = "Direct memory access controller 3"]
pub use self::dmac0 as dmac3;
#[doc = "Direct memory access controller 4"]
pub struct DMAC4 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC4 {}
impl DMAC4 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_5100 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC4 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC4 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC4").finish()
}
}
#[doc = "Direct memory access controller 4"]
pub use self::dmac0 as dmac4;
#[doc = "Direct memory access controller 5"]
pub struct DMAC5 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC5 {}
impl DMAC5 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_5140 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC5 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC5 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC5").finish()
}
}
#[doc = "Direct memory access controller 5"]
pub use self::dmac0 as dmac5;
#[doc = "Direct memory access controller 6"]
pub struct DMAC6 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC6 {}
impl DMAC6 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_5180 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC6 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC6 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC6").finish()
}
}
#[doc = "Direct memory access controller 6"]
pub use self::dmac0 as dmac6;
#[doc = "Direct memory access controller 7"]
pub struct DMAC7 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMAC7 {}
impl DMAC7 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dmac0::RegisterBlock = 0x4000_51c0 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dmac0::RegisterBlock {
Self::PTR
}
}
impl Deref for DMAC7 {
type Target = dmac0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMAC7 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMAC7").finish()
}
}
#[doc = "Direct memory access controller 7"]
pub use self::dmac0 as dmac7;
#[doc = "DMAC Module Activation"]
pub struct DMA {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DMA {}
impl DMA {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dma::RegisterBlock = 0x4000_5200 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dma::RegisterBlock {
Self::PTR
}
}
impl Deref for DMA {
type Target = dma::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DMA {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DMA").finish()
}
}
#[doc = "DMAC Module Activation"]
pub mod dma;
#[doc = "Data Transfer Controller"]
pub struct DTC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DTC {}
impl DTC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dtc::RegisterBlock = 0x4000_5400 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dtc::RegisterBlock {
Self::PTR
}
}
impl Deref for DTC {
type Target = dtc::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DTC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DTC").finish()
}
}
#[doc = "Data Transfer Controller"]
pub mod dtc;
#[doc = "Interrupt Controller"]
pub struct ICU {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for ICU {}
impl ICU {
#[doc = r"Pointer to the register block"]
pub const PTR: *const icu::RegisterBlock = 0x4000_6000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const icu::RegisterBlock {
Self::PTR
}
}
impl Deref for ICU {
type Target = icu::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for ICU {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("ICU").finish()
}
}
#[doc = "Interrupt Controller"]
pub mod icu;
#[doc = "CPU System Security Control Unit"]
pub struct CPSCU {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for CPSCU {}
impl CPSCU {
#[doc = r"Pointer to the register block"]
pub const PTR: *const cpscu::RegisterBlock = 0x4000_8000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const cpscu::RegisterBlock {
Self::PTR
}
}
impl Deref for CPSCU {
type Target = cpscu::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for CPSCU {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CPSCU").finish()
}
}
#[doc = "CPU System Security Control Unit"]
pub mod cpscu;
#[doc = "Debug Function"]
pub struct DBG {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DBG {}
impl DBG {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dbg::RegisterBlock = 0x4001_b000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dbg::RegisterBlock {
Self::PTR
}
}
impl Deref for DBG {
type Target = dbg::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DBG {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DBG").finish()
}
}
#[doc = "Debug Function"]
pub mod dbg;
#[doc = "SYSTEM/FLASH"]
pub struct FCACHE {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for FCACHE {}
impl FCACHE {
#[doc = r"Pointer to the register block"]
pub const PTR: *const fcache::RegisterBlock = 0x4001_c100 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const fcache::RegisterBlock {
Self::PTR
}
}
impl Deref for FCACHE {
type Target = fcache::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for FCACHE {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("FCACHE").finish()
}
}
#[doc = "SYSTEM/FLASH"]
pub mod fcache;
#[doc = "System Control"]
pub struct SYSC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SYSC {}
impl SYSC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sysc::RegisterBlock = 0x4001_e000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sysc::RegisterBlock {
Self::PTR
}
}
impl Deref for SYSC {
type Target = sysc::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SYSC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SYSC").finish()
}
}
#[doc = "System Control"]
pub mod sysc;
#[doc = "Pmn Pin FunctionPort 0 Control RegistersPmn Pin Function Control Register"]
pub struct PORT0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT0 {}
impl PORT0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port0::RegisterBlock = 0x4008_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port0::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT0 {
type Target = port0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT0").finish()
}
}
#[doc = "Pmn Pin FunctionPort 0 Control RegistersPmn Pin Function Control Register"]
pub mod port0;
#[doc = "Pmn Pin FunctionPort 1 Control RegistersPmn Pin Function Control Register"]
pub struct PORT1 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT1 {}
impl PORT1 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port1::RegisterBlock = 0x4008_0020 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port1::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT1 {
type Target = port1::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT1").finish()
}
}
#[doc = "Pmn Pin FunctionPort 1 Control RegistersPmn Pin Function Control Register"]
pub mod port1;
#[doc = "Pmn Pin FunctionPort 2 Control RegistersPmn Pin Function Control Register"]
pub struct PORT2 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT2 {}
impl PORT2 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port1::RegisterBlock = 0x4008_0040 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port1::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT2 {
type Target = port1::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT2 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT2").finish()
}
}
#[doc = "Pmn Pin FunctionPort 2 Control RegistersPmn Pin Function Control Register"]
pub use self::port1 as port2;
#[doc = "Pmn Pin FunctionPort 3 Control RegistersPmn Pin Function Control Register"]
pub struct PORT3 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT3 {}
impl PORT3 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port1::RegisterBlock = 0x4008_0060 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port1::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT3 {
type Target = port1::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT3 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT3").finish()
}
}
#[doc = "Pmn Pin FunctionPort 3 Control RegistersPmn Pin Function Control Register"]
pub use self::port1 as port3;
#[doc = "Pmn Pin FunctionPort 4 Control RegistersPmn Pin Function Control Register"]
pub struct PORT4 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT4 {}
impl PORT4 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port1::RegisterBlock = 0x4008_0080 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port1::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT4 {
type Target = port1::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT4 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT4").finish()
}
}
#[doc = "Pmn Pin FunctionPort 4 Control RegistersPmn Pin Function Control Register"]
pub use self::port1 as port4;
#[doc = "Pmn Pin FunctionPort 5 Control RegistersPmn Pin Function Control Register"]
pub struct PORT5 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT5 {}
impl PORT5 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port0::RegisterBlock = 0x4008_00a0 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port0::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT5 {
type Target = port0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT5 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT5").finish()
}
}
#[doc = "Pmn Pin FunctionPort 5 Control RegistersPmn Pin Function Control Register"]
pub use self::port0 as port5;
#[doc = "Pmn Pin FunctionPort 6 Control RegistersPmn Pin Function Control Register"]
pub struct PORT6 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT6 {}
impl PORT6 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port0::RegisterBlock = 0x4008_00c0 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port0::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT6 {
type Target = port0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT6 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT6").finish()
}
}
#[doc = "Pmn Pin FunctionPort 6 Control RegistersPmn Pin Function Control Register"]
pub use self::port0 as port6;
#[doc = "Pmn Pin FunctionPort 7 Control RegistersPmn Pin Function Control Register"]
pub struct PORT7 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PORT7 {}
impl PORT7 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const port0::RegisterBlock = 0x4008_00e0 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const port0::RegisterBlock {
Self::PTR
}
}
impl Deref for PORT7 {
type Target = port0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PORT7 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PORT7").finish()
}
}
#[doc = "Pmn Pin FunctionPort 7 Control RegistersPmn Pin Function Control Register"]
pub use self::port0 as port7;
#[doc = "Control Register"]
pub struct PFS {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PFS {}
impl PFS {
#[doc = r"Pointer to the register block"]
pub const PTR: *const pfs::RegisterBlock = 0x4008_0800 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const pfs::RegisterBlock {
Self::PTR
}
}
impl Deref for PFS {
type Target = pfs::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PFS {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PFS").finish()
}
}
#[doc = "Control Register"]
pub mod pfs;
#[doc = "Event Link Controller"]
pub struct ELC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for ELC {}
impl ELC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const elc::RegisterBlock = 0x4008_2000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const elc::RegisterBlock {
Self::PTR
}
}
impl Deref for ELC {
type Target = elc::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for ELC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("ELC").finish()
}
}
#[doc = "Event Link Controller"]
pub mod elc;
#[doc = "Realtime Clock"]
pub struct RTC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for RTC {}
impl RTC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const rtc::RegisterBlock = 0x4008_3000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const rtc::RegisterBlock {
Self::PTR
}
}
impl Deref for RTC {
type Target = rtc::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for RTC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("RTC").finish()
}
}
#[doc = "Realtime Clock"]
pub mod rtc;
#[doc = "Independent Watchdog Timer"]
pub struct IWDT {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for IWDT {}
impl IWDT {
#[doc = r"Pointer to the register block"]
pub const PTR: *const iwdt::RegisterBlock = 0x4008_3200 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const iwdt::RegisterBlock {
Self::PTR
}
}
impl Deref for IWDT {
type Target = iwdt::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for IWDT {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("IWDT").finish()
}
}
#[doc = "Independent Watchdog Timer"]
pub mod iwdt;
#[doc = "Watchdog Timer"]
pub struct WDT {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for WDT {}
impl WDT {
#[doc = r"Pointer to the register block"]
pub const PTR: *const wdt::RegisterBlock = 0x4008_3400 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const wdt::RegisterBlock {
Self::PTR
}
}
impl Deref for WDT {
type Target = wdt::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for WDT {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("WDT").finish()
}
}
#[doc = "Watchdog Timer"]
pub mod wdt;
#[doc = "Clock Frequency Accuracy Measurement Circuit"]
pub struct CAC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for CAC {}
impl CAC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const cac::RegisterBlock = 0x4008_3600 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const cac::RegisterBlock {
Self::PTR
}
}
impl Deref for CAC {
type Target = cac::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for CAC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CAC").finish()
}
}
#[doc = "Clock Frequency Accuracy Measurement Circuit"]
pub mod cac;
#[doc = "Module Stop Control"]
pub struct MSTP {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for MSTP {}
impl MSTP {
#[doc = r"Pointer to the register block"]
pub const PTR: *const mstp::RegisterBlock = 0x4008_4000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const mstp::RegisterBlock {
Self::PTR
}
}
impl Deref for MSTP {
type Target = mstp::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for MSTP {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("MSTP").finish()
}
}
#[doc = "Module Stop Control"]
pub mod mstp;
#[doc = "Port Output Enable Module for GPT"]
pub struct POEG {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for POEG {}
impl POEG {
#[doc = r"Pointer to the register block"]
pub const PTR: *const poeg::RegisterBlock = 0x4008_a000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const poeg::RegisterBlock {
Self::PTR
}
}
impl Deref for POEG {
type Target = poeg::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for POEG {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("POEG").finish()
}
}
#[doc = "Port Output Enable Module for GPT"]
pub mod poeg;
#[doc = "USB 2.0 Full-Speed Module"]
pub struct USBFS {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for USBFS {}
impl USBFS {
#[doc = r"Pointer to the register block"]
pub const PTR: *const usbfs::RegisterBlock = 0x4009_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const usbfs::RegisterBlock {
Self::PTR
}
}
impl Deref for USBFS {
type Target = usbfs::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for USBFS {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("USBFS").finish()
}
}
#[doc = "USB 2.0 Full-Speed Module"]
pub mod usbfs;
#[doc = "SD Host Interface 0"]
pub struct SDHI0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SDHI0 {}
impl SDHI0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sdhi0::RegisterBlock = 0x4009_2000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sdhi0::RegisterBlock {
Self::PTR
}
}
impl Deref for SDHI0 {
type Target = sdhi0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SDHI0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SDHI0").finish()
}
}
#[doc = "SD Host Interface 0"]
pub mod sdhi0;
#[doc = "Serial Sound Interface Enhanced (SSIE)"]
pub struct SSIE0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SSIE0 {}
impl SSIE0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const ssie0::RegisterBlock = 0x4009_d000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const ssie0::RegisterBlock {
Self::PTR
}
}
impl Deref for SSIE0 {
type Target = ssie0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SSIE0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SSIE0").finish()
}
}
#[doc = "Serial Sound Interface Enhanced (SSIE)"]
pub mod ssie0;
#[doc = "Inter-Integrated Circuit 0"]
pub struct IIC0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for IIC0 {}
impl IIC0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const iic0::RegisterBlock = 0x4009_f000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const iic0::RegisterBlock {
Self::PTR
}
}
impl Deref for IIC0 {
type Target = iic0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for IIC0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("IIC0").finish()
}
}
#[doc = "Inter-Integrated Circuit 0"]
pub mod iic0;
#[doc = "Inter-Integrated Circuit 0 Wake-up Unit"]
pub struct IIC0WU {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for IIC0WU {}
impl IIC0WU {
#[doc = r"Pointer to the register block"]
pub const PTR: *const iic0wu::RegisterBlock = 0x4009_f014 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const iic0wu::RegisterBlock {
Self::PTR
}
}
impl Deref for IIC0WU {
type Target = iic0wu::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for IIC0WU {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("IIC0WU").finish()
}
}
#[doc = "Inter-Integrated Circuit 0 Wake-up Unit"]
pub mod iic0wu;
#[doc = "Inter-Integrated Circuit 1"]
pub struct IIC1 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for IIC1 {}
impl IIC1 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const iic0::RegisterBlock = 0x4009_f100 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const iic0::RegisterBlock {
Self::PTR
}
}
impl Deref for IIC1 {
type Target = iic0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for IIC1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("IIC1").finish()
}
}
#[doc = "Inter-Integrated Circuit 1"]
pub use self::iic0 as iic1;
#[doc = "Controller Area Network"]
pub struct CAN0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for CAN0 {}
impl CAN0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const can0::RegisterBlock = 0x400a_8000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const can0::RegisterBlock {
Self::PTR
}
}
impl Deref for CAN0 {
type Target = can0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for CAN0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CAN0").finish()
}
}
#[doc = "Controller Area Network"]
pub mod can0;
#[doc = "Capacitive Touch Sensing Unit"]
pub struct CTSU {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for CTSU {}
impl CTSU {
#[doc = r"Pointer to the register block"]
pub const PTR: *const ctsu::RegisterBlock = 0x400d_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const ctsu::RegisterBlock {
Self::PTR
}
}
impl Deref for CTSU {
type Target = ctsu::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for CTSU {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CTSU").finish()
}
}
#[doc = "Capacitive Touch Sensing Unit"]
pub mod ctsu;
#[doc = "Peripheral Security Control Unit"]
pub struct PSCU {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for PSCU {}
impl PSCU {
#[doc = r"Pointer to the register block"]
pub const PTR: *const pscu::RegisterBlock = 0x400e_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const pscu::RegisterBlock {
Self::PTR
}
}
impl Deref for PSCU {
type Target = pscu::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for PSCU {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("PSCU").finish()
}
}
#[doc = "Peripheral Security Control Unit"]
pub mod pscu;
#[doc = "Low Power Asynchronous General Purpose Timer 0"]
pub struct AGT0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for AGT0 {}
impl AGT0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const agt0::RegisterBlock = 0x400e_8000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const agt0::RegisterBlock {
Self::PTR
}
}
impl Deref for AGT0 {
type Target = agt0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for AGT0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AGT0").finish()
}
}
#[doc = "Low Power Asynchronous General Purpose Timer 0"]
pub mod agt0;
#[doc = "Low Power Asynchronous General Purpose Timer 1"]
pub struct AGT1 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for AGT1 {}
impl AGT1 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const agt0::RegisterBlock = 0x400e_8100 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const agt0::RegisterBlock {
Self::PTR
}
}
impl Deref for AGT1 {
type Target = agt0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for AGT1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AGT1").finish()
}
}
#[doc = "Low Power Asynchronous General Purpose Timer 1"]
pub use self::agt0 as agt1;
#[doc = "Low Power Asynchronous General Purpose Timer 2"]
pub struct AGT2 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for AGT2 {}
impl AGT2 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const agt0::RegisterBlock = 0x400e_8200 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const agt0::RegisterBlock {
Self::PTR
}
}
impl Deref for AGT2 {
type Target = agt0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for AGT2 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AGT2").finish()
}
}
#[doc = "Low Power Asynchronous General Purpose Timer 2"]
pub use self::agt0 as agt2;
#[doc = "Low Power Asynchronous General Purpose Timer 3"]
pub struct AGT3 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for AGT3 {}
impl AGT3 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const agt0::RegisterBlock = 0x400e_8300 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const agt0::RegisterBlock {
Self::PTR
}
}
impl Deref for AGT3 {
type Target = agt0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for AGT3 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AGT3").finish()
}
}
#[doc = "Low Power Asynchronous General Purpose Timer 3"]
pub use self::agt0 as agt3;
#[doc = "Low Power Asynchronous General Purpose Timer 4"]
pub struct AGT4 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for AGT4 {}
impl AGT4 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const agt0::RegisterBlock = 0x400e_8400 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const agt0::RegisterBlock {
Self::PTR
}
}
impl Deref for AGT4 {
type Target = agt0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for AGT4 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AGT4").finish()
}
}
#[doc = "Low Power Asynchronous General Purpose Timer 4"]
pub use self::agt0 as agt4;
#[doc = "Low Power Asynchronous General Purpose Timer 5"]
pub struct AGT5 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for AGT5 {}
impl AGT5 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const agt0::RegisterBlock = 0x400e_8500 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const agt0::RegisterBlock {
Self::PTR
}
}
impl Deref for AGT5 {
type Target = agt0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for AGT5 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AGT5").finish()
}
}
#[doc = "Low Power Asynchronous General Purpose Timer 5"]
pub use self::agt0 as agt5;
#[doc = "Temperature Sensor"]
pub struct TSN {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for TSN {}
impl TSN {
#[doc = r"Pointer to the register block"]
pub const PTR: *const tsn::RegisterBlock = 0x400f_3000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const tsn::RegisterBlock {
Self::PTR
}
}
impl Deref for TSN {
type Target = tsn::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for TSN {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("TSN").finish()
}
}
#[doc = "Temperature Sensor"]
pub mod tsn;
#[doc = "Cyclic Redundancy Check Calculator"]
pub struct CRC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for CRC {}
impl CRC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const crc::RegisterBlock = 0x4010_8000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const crc::RegisterBlock {
Self::PTR
}
}
impl Deref for CRC {
type Target = crc::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for CRC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CRC").finish()
}
}
#[doc = "Cyclic Redundancy Check Calculator"]
pub mod crc;
#[doc = "Data Operation Circuit"]
pub struct DOC {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DOC {}
impl DOC {
#[doc = r"Pointer to the register block"]
pub const PTR: *const doc::RegisterBlock = 0x4010_9000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const doc::RegisterBlock {
Self::PTR
}
}
impl Deref for DOC {
type Target = doc::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DOC {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DOC").finish()
}
}
#[doc = "Data Operation Circuit"]
pub mod doc;
#[doc = "Serial Communication Interface"]
pub struct SCI0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SCI0 {}
impl SCI0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sci0::RegisterBlock = 0x4011_8000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sci0::RegisterBlock {
Self::PTR
}
}
impl Deref for SCI0 {
type Target = sci0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SCI0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SCI0").finish()
}
}
#[doc = "Serial Communication Interface"]
pub mod sci0;
#[doc = "Serial Communication Interface 0"]
pub struct SCI1 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SCI1 {}
impl SCI1 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sci1::RegisterBlock = 0x4011_8100 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sci1::RegisterBlock {
Self::PTR
}
}
impl Deref for SCI1 {
type Target = sci1::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SCI1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SCI1").finish()
}
}
#[doc = "Serial Communication Interface 0"]
pub mod sci1;
#[doc = "Serial Communication Interface 0"]
pub struct SCI2 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SCI2 {}
impl SCI2 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sci1::RegisterBlock = 0x4011_8200 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sci1::RegisterBlock {
Self::PTR
}
}
impl Deref for SCI2 {
type Target = sci1::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SCI2 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SCI2").finish()
}
}
#[doc = "Serial Communication Interface 0"]
pub use self::sci1 as sci2;
#[doc = "Serial Communication Interface"]
pub struct SCI3 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SCI3 {}
impl SCI3 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sci3::RegisterBlock = 0x4011_8300 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sci3::RegisterBlock {
Self::PTR
}
}
impl Deref for SCI3 {
type Target = sci3::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SCI3 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SCI3").finish()
}
}
#[doc = "Serial Communication Interface"]
pub mod sci3;
#[doc = "Serial Communication Interface"]
pub struct SCI4 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SCI4 {}
impl SCI4 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sci3::RegisterBlock = 0x4011_8400 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sci3::RegisterBlock {
Self::PTR
}
}
impl Deref for SCI4 {
type Target = sci3::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SCI4 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SCI4").finish()
}
}
#[doc = "Serial Communication Interface"]
pub use self::sci3 as sci4;
#[doc = "Serial Communication Interface"]
pub struct SCI9 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SCI9 {}
impl SCI9 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const sci0::RegisterBlock = 0x4011_8900 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const sci0::RegisterBlock {
Self::PTR
}
}
impl Deref for SCI9 {
type Target = sci0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SCI9 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SCI9").finish()
}
}
#[doc = "Serial Communication Interface"]
pub use self::sci0 as sci9;
#[doc = "Serial Peripheral Interface"]
pub struct SPI0 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for SPI0 {}
impl SPI0 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const spi0::RegisterBlock = 0x4011_a000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const spi0::RegisterBlock {
Self::PTR
}
}
impl Deref for SPI0 {
type Target = spi0::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for SPI0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SPI0").finish()
}
}
#[doc = "Serial Peripheral Interface"]
pub mod spi0;
#[doc = "General PWM 32-bit Timer 0"]
pub struct GPT320 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT320 {}
impl GPT320 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt320::RegisterBlock = 0x4016_9000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt320::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT320 {
type Target = gpt320::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT320 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT320").finish()
}
}
#[doc = "General PWM 32-bit Timer 0"]
pub mod gpt320;
#[doc = "General PWM 32-bit Timer 1"]
pub struct GPT321 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT321 {}
impl GPT321 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt320::RegisterBlock = 0x4016_9100 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt320::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT321 {
type Target = gpt320::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT321 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT321").finish()
}
}
#[doc = "General PWM 32-bit Timer 1"]
pub use self::gpt320 as gpt321;
#[doc = "General PWM 32-bit Timer 2"]
pub struct GPT322 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT322 {}
impl GPT322 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt320::RegisterBlock = 0x4016_9200 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt320::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT322 {
type Target = gpt320::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT322 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT322").finish()
}
}
#[doc = "General PWM 32-bit Timer 2"]
pub use self::gpt320 as gpt322;
#[doc = "General PWM 32-bit Timer 3"]
pub struct GPT323 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT323 {}
impl GPT323 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt320::RegisterBlock = 0x4016_9300 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt320::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT323 {
type Target = gpt320::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT323 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT323").finish()
}
}
#[doc = "General PWM 32-bit Timer 3"]
pub use self::gpt320 as gpt323;
#[doc = "General PWM 16-bit Timer 4"]
pub struct GPT164 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT164 {}
impl GPT164 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt164::RegisterBlock = 0x4016_9400 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt164::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT164 {
type Target = gpt164::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT164 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT164").finish()
}
}
#[doc = "General PWM 16-bit Timer 4"]
pub mod gpt164;
#[doc = "General PWM 16-bit Timer 5"]
pub struct GPT165 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT165 {}
impl GPT165 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt164::RegisterBlock = 0x4016_9500 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt164::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT165 {
type Target = gpt164::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT165 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT165").finish()
}
}
#[doc = "General PWM 16-bit Timer 5"]
pub use self::gpt164 as gpt165;
#[doc = "General PWM 16-bit Timer 6"]
pub struct GPT166 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT166 {}
impl GPT166 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt164::RegisterBlock = 0x4016_9600 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt164::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT166 {
type Target = gpt164::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT166 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT166").finish()
}
}
#[doc = "General PWM 16-bit Timer 6"]
pub use self::gpt164 as gpt166;
#[doc = "General PWM 16-bit Timer 7"]
pub struct GPT167 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT167 {}
impl GPT167 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt164::RegisterBlock = 0x4016_9700 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt164::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT167 {
type Target = gpt164::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT167 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT167").finish()
}
}
#[doc = "General PWM 16-bit Timer 7"]
pub use self::gpt164 as gpt167;
#[doc = "Output Phase Switching Controller"]
pub struct GPT_OPS {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for GPT_OPS {}
impl GPT_OPS {
#[doc = r"Pointer to the register block"]
pub const PTR: *const gpt_ops::RegisterBlock = 0x4016_9a00 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const gpt_ops::RegisterBlock {
Self::PTR
}
}
impl Deref for GPT_OPS {
type Target = gpt_ops::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for GPT_OPS {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("GPT_OPS").finish()
}
}
#[doc = "Output Phase Switching Controller"]
pub mod gpt_ops;
#[doc = "12-bit A/D Converter"]
pub struct ADC120 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for ADC120 {}
impl ADC120 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const adc120::RegisterBlock = 0x4017_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const adc120::RegisterBlock {
Self::PTR
}
}
impl Deref for ADC120 {
type Target = adc120::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for ADC120 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("ADC120").finish()
}
}
#[doc = "12-bit A/D Converter"]
pub mod adc120;
#[doc = "12-bit D/A converter"]
pub struct DAC12 {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for DAC12 {}
impl DAC12 {
#[doc = r"Pointer to the register block"]
pub const PTR: *const dac12::RegisterBlock = 0x4017_1000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const dac12::RegisterBlock {
Self::PTR
}
}
impl Deref for DAC12 {
type Target = dac12::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for DAC12 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("DAC12").finish()
}
}
#[doc = "12-bit D/A converter"]
pub mod dac12;
#[doc = "Temperature Sensor Calibration Data"]
pub struct TSD {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for TSD {}
impl TSD {
#[doc = r"Pointer to the register block"]
pub const PTR: *const tsd::RegisterBlock = 0x407f_b000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const tsd::RegisterBlock {
Self::PTR
}
}
impl Deref for TSD {
type Target = tsd::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for TSD {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("TSD").finish()
}
}
#[doc = "Temperature Sensor Calibration Data"]
pub mod tsd;
#[doc = "Data Flash"]
pub struct FLAD {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for FLAD {}
impl FLAD {
#[doc = r"Pointer to the register block"]
pub const PTR: *const flad::RegisterBlock = 0x407f_c000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const flad::RegisterBlock {
Self::PTR
}
}
impl Deref for FLAD {
type Target = flad::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for FLAD {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("FLAD").finish()
}
}
#[doc = "Data Flash"]
pub mod flad;
#[doc = "Flash/CPU Interface"]
pub struct FACI {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for FACI {}
impl FACI {
#[doc = r"Pointer to the register block"]
pub const PTR: *const faci::RegisterBlock = 0x407f_e000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const faci::RegisterBlock {
Self::PTR
}
}
impl Deref for FACI {
type Target = faci::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for FACI {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("FACI").finish()
}
}
#[doc = "Flash/CPU Interface"]
pub mod faci;
#[doc = "Quad Serial Peripheral Interface"]
pub struct QSPI {
_marker: PhantomData<*const ()>,
}
unsafe impl Send for QSPI {}
impl QSPI {
#[doc = r"Pointer to the register block"]
pub const PTR: *const qspi::RegisterBlock = 0x6400_0000 as *const _;
#[doc = r"Return the pointer to the register block"]
#[inline(always)]
pub const fn ptr() -> *const qspi::RegisterBlock {
Self::PTR
}
}
impl Deref for QSPI {
type Target = qspi::RegisterBlock;
#[inline(always)]
fn deref(&self) -> &Self::Target {
unsafe { &*Self::PTR }
}
}
impl core::fmt::Debug for QSPI {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("QSPI").finish()
}
}
#[doc = "Quad Serial Peripheral Interface"]
pub mod qspi;
#[no_mangle]
static mut DEVICE_PERIPHERALS: bool = false;
#[doc = r" All the peripherals."]
#[allow(non_snake_case)]
pub struct Peripherals {
#[doc = "RMPU"]
pub RMPU: RMPU,
#[doc = "TZF"]
pub TZF: TZF,
#[doc = "SRAM"]
pub SRAM: SRAM,
#[doc = "BUS"]
pub BUS: BUS,
#[doc = "DMAC0"]
pub DMAC0: DMAC0,
#[doc = "DMAC1"]
pub DMAC1: DMAC1,
#[doc = "DMAC2"]
pub DMAC2: DMAC2,
#[doc = "DMAC3"]
pub DMAC3: DMAC3,
#[doc = "DMAC4"]
pub DMAC4: DMAC4,
#[doc = "DMAC5"]
pub DMAC5: DMAC5,
#[doc = "DMAC6"]
pub DMAC6: DMAC6,
#[doc = "DMAC7"]
pub DMAC7: DMAC7,
#[doc = "DMA"]
pub DMA: DMA,
#[doc = "DTC"]
pub DTC: DTC,
#[doc = "ICU"]
pub ICU: ICU,
#[doc = "CPSCU"]
pub CPSCU: CPSCU,
#[doc = "DBG"]
pub DBG: DBG,
#[doc = "FCACHE"]
pub FCACHE: FCACHE,
#[doc = "SYSC"]
pub SYSC: SYSC,
#[doc = "PORT0"]
pub PORT0: PORT0,
#[doc = "PORT1"]
pub PORT1: PORT1,
#[doc = "PORT2"]
pub PORT2: PORT2,
#[doc = "PORT3"]
pub PORT3: PORT3,
#[doc = "PORT4"]
pub PORT4: PORT4,
#[doc = "PORT5"]
pub PORT5: PORT5,
#[doc = "PORT6"]
pub PORT6: PORT6,
#[doc = "PORT7"]
pub PORT7: PORT7,
#[doc = "PFS"]
pub PFS: PFS,
#[doc = "ELC"]
pub ELC: ELC,
#[doc = "RTC"]
pub RTC: RTC,
#[doc = "IWDT"]
pub IWDT: IWDT,
#[doc = "WDT"]
pub WDT: WDT,
#[doc = "CAC"]
pub CAC: CAC,
#[doc = "MSTP"]
pub MSTP: MSTP,
#[doc = "POEG"]
pub POEG: POEG,
#[doc = "USBFS"]
pub USBFS: USBFS,
#[doc = "SDHI0"]
pub SDHI0: SDHI0,
#[doc = "SSIE0"]
pub SSIE0: SSIE0,
#[doc = "IIC0"]
pub IIC0: IIC0,
#[doc = "IIC0WU"]
pub IIC0WU: IIC0WU,
#[doc = "IIC1"]
pub IIC1: IIC1,
#[doc = "CAN0"]
pub CAN0: CAN0,
#[doc = "CTSU"]
pub CTSU: CTSU,
#[doc = "PSCU"]
pub PSCU: PSCU,
#[doc = "AGT0"]
pub AGT0: AGT0,
#[doc = "AGT1"]
pub AGT1: AGT1,
#[doc = "AGT2"]
pub AGT2: AGT2,
#[doc = "AGT3"]
pub AGT3: AGT3,
#[doc = "AGT4"]
pub AGT4: AGT4,
#[doc = "AGT5"]
pub AGT5: AGT5,
#[doc = "TSN"]
pub TSN: TSN,
#[doc = "CRC"]
pub CRC: CRC,
#[doc = "DOC"]
pub DOC: DOC,
#[doc = "SCI0"]
pub SCI0: SCI0,
#[doc = "SCI1"]
pub SCI1: SCI1,
#[doc = "SCI2"]
pub SCI2: SCI2,
#[doc = "SCI3"]
pub SCI3: SCI3,
#[doc = "SCI4"]
pub SCI4: SCI4,
#[doc = "SCI9"]
pub SCI9: SCI9,
#[doc = "SPI0"]
pub SPI0: SPI0,
#[doc = "GPT320"]
pub GPT320: GPT320,
#[doc = "GPT321"]
pub GPT321: GPT321,
#[doc = "GPT322"]
pub GPT322: GPT322,
#[doc = "GPT323"]
pub GPT323: GPT323,
#[doc = "GPT164"]
pub GPT164: GPT164,
#[doc = "GPT165"]
pub GPT165: GPT165,
#[doc = "GPT166"]
pub GPT166: GPT166,
#[doc = "GPT167"]
pub GPT167: GPT167,
#[doc = "GPT_OPS"]
pub GPT_OPS: GPT_OPS,
#[doc = "ADC120"]
pub ADC120: ADC120,
#[doc = "DAC12"]
pub DAC12: DAC12,
#[doc = "TSD"]
pub TSD: TSD,
#[doc = "FLAD"]
pub FLAD: FLAD,
#[doc = "FACI"]
pub FACI: FACI,
#[doc = "QSPI"]
pub QSPI: QSPI,
}
impl Peripherals {
#[doc = r" Returns all the peripherals *once*."]
#[cfg(feature = "critical-section")]
#[inline]
pub fn take() -> Option<Self> {
critical_section::with(|_| {
if unsafe { DEVICE_PERIPHERALS } {
return None;
}
Some(unsafe { Peripherals::steal() })
})
}
#[doc = r" Unchecked version of `Peripherals::take`."]
#[doc = r""]
#[doc = r" # Safety"]
#[doc = r""]
#[doc = r" Each of the returned peripherals must be used at most once."]
#[inline]
pub unsafe fn steal() -> Self {
DEVICE_PERIPHERALS = true;
Peripherals {
RMPU: RMPU {
_marker: PhantomData,
},
TZF: TZF {
_marker: PhantomData,
},
SRAM: SRAM {
_marker: PhantomData,
},
BUS: BUS {
_marker: PhantomData,
},
DMAC0: DMAC0 {
_marker: PhantomData,
},
DMAC1: DMAC1 {
_marker: PhantomData,
},
DMAC2: DMAC2 {
_marker: PhantomData,
},
DMAC3: DMAC3 {
_marker: PhantomData,
},
DMAC4: DMAC4 {
_marker: PhantomData,
},
DMAC5: DMAC5 {
_marker: PhantomData,
},
DMAC6: DMAC6 {
_marker: PhantomData,
},
DMAC7: DMAC7 {
_marker: PhantomData,
},
DMA: DMA {
_marker: PhantomData,
},
DTC: DTC {
_marker: PhantomData,
},
ICU: ICU {
_marker: PhantomData,
},
CPSCU: CPSCU {
_marker: PhantomData,
},
DBG: DBG {
_marker: PhantomData,
},
FCACHE: FCACHE {
_marker: PhantomData,
},
SYSC: SYSC {
_marker: PhantomData,
},
PORT0: PORT0 {
_marker: PhantomData,
},
PORT1: PORT1 {
_marker: PhantomData,
},
PORT2: PORT2 {
_marker: PhantomData,
},
PORT3: PORT3 {
_marker: PhantomData,
},
PORT4: PORT4 {
_marker: PhantomData,
},
PORT5: PORT5 {
_marker: PhantomData,
},
PORT6: PORT6 {
_marker: PhantomData,
},
PORT7: PORT7 {
_marker: PhantomData,
},
PFS: PFS {
_marker: PhantomData,
},
ELC: ELC {
_marker: PhantomData,
},
RTC: RTC {
_marker: PhantomData,
},
IWDT: IWDT {
_marker: PhantomData,
},
WDT: WDT {
_marker: PhantomData,
},
CAC: CAC {
_marker: PhantomData,
},
MSTP: MSTP {
_marker: PhantomData,
},
POEG: POEG {
_marker: PhantomData,
},
USBFS: USBFS {
_marker: PhantomData,
},
SDHI0: SDHI0 {
_marker: PhantomData,
},
SSIE0: SSIE0 {
_marker: PhantomData,
},
IIC0: IIC0 {
_marker: PhantomData,
},
IIC0WU: IIC0WU {
_marker: PhantomData,
},
IIC1: IIC1 {
_marker: PhantomData,
},
CAN0: CAN0 {
_marker: PhantomData,
},
CTSU: CTSU {
_marker: PhantomData,
},
PSCU: PSCU {
_marker: PhantomData,
},
AGT0: AGT0 {
_marker: PhantomData,
},
AGT1: AGT1 {
_marker: PhantomData,
},
AGT2: AGT2 {
_marker: PhantomData,
},
AGT3: AGT3 {
_marker: PhantomData,
},
AGT4: AGT4 {
_marker: PhantomData,
},
AGT5: AGT5 {
_marker: PhantomData,
},
TSN: TSN {
_marker: PhantomData,
},
CRC: CRC {
_marker: PhantomData,
},
DOC: DOC {
_marker: PhantomData,
},
SCI0: SCI0 {
_marker: PhantomData,
},
SCI1: SCI1 {
_marker: PhantomData,
},
SCI2: SCI2 {
_marker: PhantomData,
},
SCI3: SCI3 {
_marker: PhantomData,
},
SCI4: SCI4 {
_marker: PhantomData,
},
SCI9: SCI9 {
_marker: PhantomData,
},
SPI0: SPI0 {
_marker: PhantomData,
},
GPT320: GPT320 {
_marker: PhantomData,
},
GPT321: GPT321 {
_marker: PhantomData,
},
GPT322: GPT322 {
_marker: PhantomData,
},
GPT323: GPT323 {
_marker: PhantomData,
},
GPT164: GPT164 {
_marker: PhantomData,
},
GPT165: GPT165 {
_marker: PhantomData,
},
GPT166: GPT166 {
_marker: PhantomData,
},
GPT167: GPT167 {
_marker: PhantomData,
},
GPT_OPS: GPT_OPS {
_marker: PhantomData,
},
ADC120: ADC120 {
_marker: PhantomData,
},
DAC12: DAC12 {
_marker: PhantomData,
},
TSD: TSD {
_marker: PhantomData,
},
FLAD: FLAD {
_marker: PhantomData,
},
FACI: FACI {
_marker: PhantomData,
},
QSPI: QSPI {
_marker: PhantomData,
},
}
}
}