sam3x8e-pac 0.1.6-dev

Peripheral Access Crate (PAC) for the Atmel SAM3X8E.
#[doc = "DMA Controller"]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Dmac {
    ptr: *mut u8,
}
unsafe impl Send for Dmac {}
unsafe impl Sync for Dmac {}
impl Dmac {
    #[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 = "DMAC Global Configuration Register"]
    #[inline(always)]
    pub const fn gcfg(self) -> crate::common::Reg<regs::Gcfg, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0usize) as _) }
    }
    #[doc = "DMAC Enable Register"]
    #[inline(always)]
    pub const fn en(self) -> crate::common::Reg<regs::En, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x04usize) as _) }
    }
    #[doc = "DMAC Software Single Request Register"]
    #[inline(always)]
    pub const fn sreq(self) -> crate::common::Reg<regs::Sreq, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x08usize) as _) }
    }
    #[doc = "DMAC Software Chunk Transfer Request Register"]
    #[inline(always)]
    pub const fn creq(self) -> crate::common::Reg<regs::Creq, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0cusize) as _) }
    }
    #[doc = "DMAC Software Last Transfer Flag Register"]
    #[inline(always)]
    pub const fn last(self) -> crate::common::Reg<regs::Last, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x10usize) as _) }
    }
    #[doc = "DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Enable register."]
    #[inline(always)]
    pub const fn ebcier(self) -> crate::common::Reg<regs::Ebcier, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x18usize) as _) }
    }
    #[doc = "DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Disable register."]
    #[inline(always)]
    pub const fn ebcidr(self) -> crate::common::Reg<regs::Ebcidr, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x1cusize) as _) }
    }
    #[doc = "DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Mask Register."]
    #[inline(always)]
    pub const fn ebcimr(self) -> crate::common::Reg<regs::Ebcimr, crate::common::R> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x20usize) as _) }
    }
    #[doc = "DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Status Register."]
    #[inline(always)]
    pub const fn ebcisr(self) -> crate::common::Reg<regs::Ebcisr, crate::common::R> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x24usize) as _) }
    }
    #[doc = "DMAC Channel Handler Enable Register"]
    #[inline(always)]
    pub const fn cher(self) -> crate::common::Reg<regs::Cher, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x28usize) as _) }
    }
    #[doc = "DMAC Channel Handler Disable Register"]
    #[inline(always)]
    pub const fn chdr(self) -> crate::common::Reg<regs::Chdr, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x2cusize) as _) }
    }
    #[doc = "DMAC Channel Handler Status Register"]
    #[inline(always)]
    pub const fn chsr(self) -> crate::common::Reg<regs::Chsr, crate::common::R> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x30usize) as _) }
    }
    #[doc = "DMAC Channel Source Address Register (ch_num = 0)"]
    #[inline(always)]
    pub const fn saddr0(self) -> crate::common::Reg<regs::Saddr0, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x3cusize) as _) }
    }
    #[doc = "DMAC Channel Destination Address Register (ch_num = 0)"]
    #[inline(always)]
    pub const fn daddr0(self) -> crate::common::Reg<regs::Daddr0, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x40usize) as _) }
    }
    #[doc = "DMAC Channel Descriptor Address Register (ch_num = 0)"]
    #[inline(always)]
    pub const fn dscr0(self) -> crate::common::Reg<regs::Dscr0, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x44usize) as _) }
    }
    #[doc = "DMAC Channel Control A Register (ch_num = 0)"]
    #[inline(always)]
    pub const fn ctrla0(self) -> crate::common::Reg<regs::Ctrla0, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x48usize) as _) }
    }
    #[doc = "DMAC Channel Control B Register (ch_num = 0)"]
    #[inline(always)]
    pub const fn ctrlb0(self) -> crate::common::Reg<regs::Ctrlb0, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x4cusize) as _) }
    }
    #[doc = "DMAC Channel Configuration Register (ch_num = 0)"]
    #[inline(always)]
    pub const fn cfg0(self) -> crate::common::Reg<regs::Cfg0, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x50usize) as _) }
    }
    #[doc = "DMAC Channel Source Address Register (ch_num = 1)"]
    #[inline(always)]
    pub const fn saddr1(self) -> crate::common::Reg<regs::Saddr1, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x64usize) as _) }
    }
    #[doc = "DMAC Channel Destination Address Register (ch_num = 1)"]
    #[inline(always)]
    pub const fn daddr1(self) -> crate::common::Reg<regs::Daddr1, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x68usize) as _) }
    }
    #[doc = "DMAC Channel Descriptor Address Register (ch_num = 1)"]
    #[inline(always)]
    pub const fn dscr1(self) -> crate::common::Reg<regs::Dscr1, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x6cusize) as _) }
    }
    #[doc = "DMAC Channel Control A Register (ch_num = 1)"]
    #[inline(always)]
    pub const fn ctrla1(self) -> crate::common::Reg<regs::Ctrla1, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x70usize) as _) }
    }
    #[doc = "DMAC Channel Control B Register (ch_num = 1)"]
    #[inline(always)]
    pub const fn ctrlb1(self) -> crate::common::Reg<regs::Ctrlb1, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x74usize) as _) }
    }
    #[doc = "DMAC Channel Configuration Register (ch_num = 1)"]
    #[inline(always)]
    pub const fn cfg1(self) -> crate::common::Reg<regs::Cfg1, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x78usize) as _) }
    }
    #[doc = "DMAC Channel Source Address Register (ch_num = 2)"]
    #[inline(always)]
    pub const fn saddr2(self) -> crate::common::Reg<regs::Saddr2, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x8cusize) as _) }
    }
    #[doc = "DMAC Channel Destination Address Register (ch_num = 2)"]
    #[inline(always)]
    pub const fn daddr2(self) -> crate::common::Reg<regs::Daddr2, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x90usize) as _) }
    }
    #[doc = "DMAC Channel Descriptor Address Register (ch_num = 2)"]
    #[inline(always)]
    pub const fn dscr2(self) -> crate::common::Reg<regs::Dscr2, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x94usize) as _) }
    }
    #[doc = "DMAC Channel Control A Register (ch_num = 2)"]
    #[inline(always)]
    pub const fn ctrla2(self) -> crate::common::Reg<regs::Ctrla2, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x98usize) as _) }
    }
    #[doc = "DMAC Channel Control B Register (ch_num = 2)"]
    #[inline(always)]
    pub const fn ctrlb2(self) -> crate::common::Reg<regs::Ctrlb2, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x9cusize) as _) }
    }
    #[doc = "DMAC Channel Configuration Register (ch_num = 2)"]
    #[inline(always)]
    pub const fn cfg2(self) -> crate::common::Reg<regs::Cfg2, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xa0usize) as _) }
    }
    #[doc = "DMAC Channel Source Address Register (ch_num = 3)"]
    #[inline(always)]
    pub const fn saddr3(self) -> crate::common::Reg<regs::Saddr3, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xb4usize) as _) }
    }
    #[doc = "DMAC Channel Destination Address Register (ch_num = 3)"]
    #[inline(always)]
    pub const fn daddr3(self) -> crate::common::Reg<regs::Daddr3, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xb8usize) as _) }
    }
    #[doc = "DMAC Channel Descriptor Address Register (ch_num = 3)"]
    #[inline(always)]
    pub const fn dscr3(self) -> crate::common::Reg<regs::Dscr3, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xbcusize) as _) }
    }
    #[doc = "DMAC Channel Control A Register (ch_num = 3)"]
    #[inline(always)]
    pub const fn ctrla3(self) -> crate::common::Reg<regs::Ctrla3, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc0usize) as _) }
    }
    #[doc = "DMAC Channel Control B Register (ch_num = 3)"]
    #[inline(always)]
    pub const fn ctrlb3(self) -> crate::common::Reg<regs::Ctrlb3, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc4usize) as _) }
    }
    #[doc = "DMAC Channel Configuration Register (ch_num = 3)"]
    #[inline(always)]
    pub const fn cfg3(self) -> crate::common::Reg<regs::Cfg3, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc8usize) as _) }
    }
    #[doc = "DMAC Channel Source Address Register (ch_num = 4)"]
    #[inline(always)]
    pub const fn saddr4(self) -> crate::common::Reg<regs::Saddr4, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xdcusize) as _) }
    }
    #[doc = "DMAC Channel Destination Address Register (ch_num = 4)"]
    #[inline(always)]
    pub const fn daddr4(self) -> crate::common::Reg<regs::Daddr4, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xe0usize) as _) }
    }
    #[doc = "DMAC Channel Descriptor Address Register (ch_num = 4)"]
    #[inline(always)]
    pub const fn dscr4(self) -> crate::common::Reg<regs::Dscr4, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xe4usize) as _) }
    }
    #[doc = "DMAC Channel Control A Register (ch_num = 4)"]
    #[inline(always)]
    pub const fn ctrla4(self) -> crate::common::Reg<regs::Ctrla4, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xe8usize) as _) }
    }
    #[doc = "DMAC Channel Control B Register (ch_num = 4)"]
    #[inline(always)]
    pub const fn ctrlb4(self) -> crate::common::Reg<regs::Ctrlb4, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xecusize) as _) }
    }
    #[doc = "DMAC Channel Configuration Register (ch_num = 4)"]
    #[inline(always)]
    pub const fn cfg4(self) -> crate::common::Reg<regs::Cfg4, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xf0usize) as _) }
    }
    #[doc = "DMAC Channel Source Address Register (ch_num = 5)"]
    #[inline(always)]
    pub const fn saddr5(self) -> crate::common::Reg<regs::Saddr5, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0104usize) as _) }
    }
    #[doc = "DMAC Channel Destination Address Register (ch_num = 5)"]
    #[inline(always)]
    pub const fn daddr5(self) -> crate::common::Reg<regs::Daddr5, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0108usize) as _) }
    }
    #[doc = "DMAC Channel Descriptor Address Register (ch_num = 5)"]
    #[inline(always)]
    pub const fn dscr5(self) -> crate::common::Reg<regs::Dscr5, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x010cusize) as _) }
    }
    #[doc = "DMAC Channel Control A Register (ch_num = 5)"]
    #[inline(always)]
    pub const fn ctrla5(self) -> crate::common::Reg<regs::Ctrla5, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0110usize) as _) }
    }
    #[doc = "DMAC Channel Control B Register (ch_num = 5)"]
    #[inline(always)]
    pub const fn ctrlb5(self) -> crate::common::Reg<regs::Ctrlb5, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0114usize) as _) }
    }
    #[doc = "DMAC Channel Configuration Register (ch_num = 5)"]
    #[inline(always)]
    pub const fn cfg5(self) -> crate::common::Reg<regs::Cfg5, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0118usize) as _) }
    }
    #[doc = "DMAC Write Protect Mode Register"]
    #[inline(always)]
    pub const fn wpmr(self) -> crate::common::Reg<regs::Wpmr, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x01e4usize) as _) }
    }
    #[doc = "DMAC Write Protect Status Register"]
    #[inline(always)]
    pub const fn wpsr(self) -> crate::common::Reg<regs::Wpsr, crate::common::R> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x01e8usize) as _) }
    }
}
pub mod regs;
pub mod vals;