sam3x8e-pac 0.1.6-dev

Peripheral Access Crate (PAC) for the Atmel SAM3X8E.
#[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;