#[doc = "AHB Bus Matrix"]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Matrix {
ptr: *mut u8,
}
unsafe impl Send for Matrix {}
unsafe impl Sync for Matrix {}
impl Matrix {
#[inline(always)]
pub const unsafe fn from_ptr(ptr: *mut ()) -> Self {
Self { ptr: ptr as _ }
}
#[inline(always)]
pub const fn as_ptr(&self) -> *mut () {
self.ptr as _
}
#[doc = "Master Configuration Register"]
#[inline(always)]
pub const fn matrix_mcfg(
self,
n: usize,
) -> crate::common::Reg<regs::MatrixMcfg, crate::common::RW> {
assert!(n < 6usize);
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0usize + n * 4usize) as _) }
}
#[doc = "Slave Configuration Register"]
#[inline(always)]
pub const fn matrix_scfg(
self,
n: usize,
) -> crate::common::Reg<regs::MatrixScfg, crate::common::RW> {
assert!(n < 9usize);
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x40usize + n * 4usize) as _) }
}
#[doc = "Priority Register A for Slave 0"]
#[inline(always)]
pub const fn matrix_pras0(self) -> crate::common::Reg<regs::MatrixPras0, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x80usize) as _) }
}
#[doc = "Priority Register A for Slave 1"]
#[inline(always)]
pub const fn matrix_pras1(self) -> crate::common::Reg<regs::MatrixPras1, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x88usize) as _) }
}
#[doc = "Priority Register A for Slave 2"]
#[inline(always)]
pub const fn matrix_pras2(self) -> crate::common::Reg<regs::MatrixPras2, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x90usize) as _) }
}
#[doc = "Priority Register A for Slave 3"]
#[inline(always)]
pub const fn matrix_pras3(self) -> crate::common::Reg<regs::MatrixPras3, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x98usize) as _) }
}
#[doc = "Priority Register A for Slave 4"]
#[inline(always)]
pub const fn matrix_pras4(self) -> crate::common::Reg<regs::MatrixPras4, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xa0usize) as _) }
}
#[doc = "Priority Register A for Slave 5"]
#[inline(always)]
pub const fn matrix_pras5(self) -> crate::common::Reg<regs::MatrixPras5, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xa8usize) as _) }
}
#[doc = "Priority Register A for Slave 6"]
#[inline(always)]
pub const fn matrix_pras6(self) -> crate::common::Reg<regs::MatrixPras6, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xb0usize) as _) }
}
#[doc = "Priority Register A for Slave 7"]
#[inline(always)]
pub const fn matrix_pras7(self) -> crate::common::Reg<regs::MatrixPras7, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xb8usize) as _) }
}
#[doc = "Priority Register A for Slave 8"]
#[inline(always)]
pub const fn matrix_pras8(self) -> crate::common::Reg<regs::MatrixPras8, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc0usize) as _) }
}
#[doc = "Master Remap Control Register"]
#[inline(always)]
pub const fn matrix_mrcr(self) -> crate::common::Reg<regs::MatrixMrcr, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0100usize) as _) }
}
#[doc = "System I/O Configuration register"]
#[inline(always)]
pub const fn ccfg_sysio(self) -> crate::common::Reg<regs::CcfgSysio, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0114usize) as _) }
}
#[doc = "Write Protect Mode Register"]
#[inline(always)]
pub const fn matrix_wpmr(self) -> crate::common::Reg<regs::MatrixWpmr, crate::common::RW> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x01e4usize) as _) }
}
#[doc = "Write Protect Status Register"]
#[inline(always)]
pub const fn matrix_wpsr(self) -> crate::common::Reg<regs::MatrixWpsr, crate::common::R> {
unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x01e8usize) as _) }
}
}
pub mod regs;