atsaml21j18a/
dmac.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - Control"]
5    pub ctrl: CTRL,
6    #[doc = "0x02 - CRC Control"]
7    pub crcctrl: CRCCTRL,
8    #[doc = "0x04 - CRC Data Input"]
9    pub crcdatain: CRCDATAIN,
10    #[doc = "0x08 - CRC Checksum"]
11    pub crcchksum: CRCCHKSUM,
12    #[doc = "0x0c - CRC Status"]
13    pub crcstatus: CRCSTATUS,
14    #[doc = "0x0d - Debug Control"]
15    pub dbgctrl: DBGCTRL,
16    #[doc = "0x0e - QOS Control"]
17    pub qosctrl: QOSCTRL,
18    _reserved7: [u8; 0x01],
19    #[doc = "0x10 - Software Trigger Control"]
20    pub swtrigctrl: SWTRIGCTRL,
21    #[doc = "0x14 - Priority Control 0"]
22    pub prictrl0: PRICTRL0,
23    _reserved9: [u8; 0x08],
24    #[doc = "0x20 - Interrupt Pending"]
25    pub intpend: INTPEND,
26    _reserved10: [u8; 0x02],
27    #[doc = "0x24 - Interrupt Status"]
28    pub intstatus: INTSTATUS,
29    #[doc = "0x28 - Busy Channels"]
30    pub busych: BUSYCH,
31    #[doc = "0x2c - Pending Channels"]
32    pub pendch: PENDCH,
33    #[doc = "0x30 - Active Channel and Levels"]
34    pub active: ACTIVE,
35    #[doc = "0x34 - Descriptor Memory Section Base Address"]
36    pub baseaddr: BASEADDR,
37    #[doc = "0x38 - Write-Back Memory Section Base Address"]
38    pub wrbaddr: WRBADDR,
39    _reserved16: [u8; 0x03],
40    #[doc = "0x3f - Channel ID"]
41    pub chid: CHID,
42    #[doc = "0x40 - Channel Control A"]
43    pub chctrla: CHCTRLA,
44    _reserved18: [u8; 0x03],
45    #[doc = "0x44 - Channel Control B"]
46    pub chctrlb: CHCTRLB,
47    _reserved19: [u8; 0x04],
48    #[doc = "0x4c - Channel Interrupt Enable Clear"]
49    pub chintenclr: CHINTENCLR,
50    #[doc = "0x4d - Channel Interrupt Enable Set"]
51    pub chintenset: CHINTENSET,
52    #[doc = "0x4e - Channel Interrupt Flag Status and Clear"]
53    pub chintflag: CHINTFLAG,
54    #[doc = "0x4f - Channel Status"]
55    pub chstatus: CHSTATUS,
56}
57#[doc = "CTRL (rw) register accessor: an alias for `Reg<CTRL_SPEC>`"]
58pub type CTRL = crate::Reg<ctrl::CTRL_SPEC>;
59#[doc = "Control"]
60pub mod ctrl;
61#[doc = "CRCCTRL (rw) register accessor: an alias for `Reg<CRCCTRL_SPEC>`"]
62pub type CRCCTRL = crate::Reg<crcctrl::CRCCTRL_SPEC>;
63#[doc = "CRC Control"]
64pub mod crcctrl;
65#[doc = "CRCDATAIN (rw) register accessor: an alias for `Reg<CRCDATAIN_SPEC>`"]
66pub type CRCDATAIN = crate::Reg<crcdatain::CRCDATAIN_SPEC>;
67#[doc = "CRC Data Input"]
68pub mod crcdatain;
69#[doc = "CRCCHKSUM (rw) register accessor: an alias for `Reg<CRCCHKSUM_SPEC>`"]
70pub type CRCCHKSUM = crate::Reg<crcchksum::CRCCHKSUM_SPEC>;
71#[doc = "CRC Checksum"]
72pub mod crcchksum;
73#[doc = "CRCSTATUS (rw) register accessor: an alias for `Reg<CRCSTATUS_SPEC>`"]
74pub type CRCSTATUS = crate::Reg<crcstatus::CRCSTATUS_SPEC>;
75#[doc = "CRC Status"]
76pub mod crcstatus;
77#[doc = "DBGCTRL (rw) register accessor: an alias for `Reg<DBGCTRL_SPEC>`"]
78pub type DBGCTRL = crate::Reg<dbgctrl::DBGCTRL_SPEC>;
79#[doc = "Debug Control"]
80pub mod dbgctrl;
81#[doc = "QOSCTRL (rw) register accessor: an alias for `Reg<QOSCTRL_SPEC>`"]
82pub type QOSCTRL = crate::Reg<qosctrl::QOSCTRL_SPEC>;
83#[doc = "QOS Control"]
84pub mod qosctrl;
85#[doc = "SWTRIGCTRL (rw) register accessor: an alias for `Reg<SWTRIGCTRL_SPEC>`"]
86pub type SWTRIGCTRL = crate::Reg<swtrigctrl::SWTRIGCTRL_SPEC>;
87#[doc = "Software Trigger Control"]
88pub mod swtrigctrl;
89#[doc = "PRICTRL0 (rw) register accessor: an alias for `Reg<PRICTRL0_SPEC>`"]
90pub type PRICTRL0 = crate::Reg<prictrl0::PRICTRL0_SPEC>;
91#[doc = "Priority Control 0"]
92pub mod prictrl0;
93#[doc = "INTPEND (rw) register accessor: an alias for `Reg<INTPEND_SPEC>`"]
94pub type INTPEND = crate::Reg<intpend::INTPEND_SPEC>;
95#[doc = "Interrupt Pending"]
96pub mod intpend;
97#[doc = "INTSTATUS (r) register accessor: an alias for `Reg<INTSTATUS_SPEC>`"]
98pub type INTSTATUS = crate::Reg<intstatus::INTSTATUS_SPEC>;
99#[doc = "Interrupt Status"]
100pub mod intstatus;
101#[doc = "BUSYCH (r) register accessor: an alias for `Reg<BUSYCH_SPEC>`"]
102pub type BUSYCH = crate::Reg<busych::BUSYCH_SPEC>;
103#[doc = "Busy Channels"]
104pub mod busych;
105#[doc = "PENDCH (r) register accessor: an alias for `Reg<PENDCH_SPEC>`"]
106pub type PENDCH = crate::Reg<pendch::PENDCH_SPEC>;
107#[doc = "Pending Channels"]
108pub mod pendch;
109#[doc = "ACTIVE (r) register accessor: an alias for `Reg<ACTIVE_SPEC>`"]
110pub type ACTIVE = crate::Reg<active::ACTIVE_SPEC>;
111#[doc = "Active Channel and Levels"]
112pub mod active;
113#[doc = "BASEADDR (rw) register accessor: an alias for `Reg<BASEADDR_SPEC>`"]
114pub type BASEADDR = crate::Reg<baseaddr::BASEADDR_SPEC>;
115#[doc = "Descriptor Memory Section Base Address"]
116pub mod baseaddr;
117#[doc = "WRBADDR (rw) register accessor: an alias for `Reg<WRBADDR_SPEC>`"]
118pub type WRBADDR = crate::Reg<wrbaddr::WRBADDR_SPEC>;
119#[doc = "Write-Back Memory Section Base Address"]
120pub mod wrbaddr;
121#[doc = "CHID (rw) register accessor: an alias for `Reg<CHID_SPEC>`"]
122pub type CHID = crate::Reg<chid::CHID_SPEC>;
123#[doc = "Channel ID"]
124pub mod chid;
125#[doc = "CHCTRLA (rw) register accessor: an alias for `Reg<CHCTRLA_SPEC>`"]
126pub type CHCTRLA = crate::Reg<chctrla::CHCTRLA_SPEC>;
127#[doc = "Channel Control A"]
128pub mod chctrla;
129#[doc = "CHCTRLB (rw) register accessor: an alias for `Reg<CHCTRLB_SPEC>`"]
130pub type CHCTRLB = crate::Reg<chctrlb::CHCTRLB_SPEC>;
131#[doc = "Channel Control B"]
132pub mod chctrlb;
133#[doc = "CHINTENCLR (rw) register accessor: an alias for `Reg<CHINTENCLR_SPEC>`"]
134pub type CHINTENCLR = crate::Reg<chintenclr::CHINTENCLR_SPEC>;
135#[doc = "Channel Interrupt Enable Clear"]
136pub mod chintenclr;
137#[doc = "CHINTENSET (rw) register accessor: an alias for `Reg<CHINTENSET_SPEC>`"]
138pub type CHINTENSET = crate::Reg<chintenset::CHINTENSET_SPEC>;
139#[doc = "Channel Interrupt Enable Set"]
140pub mod chintenset;
141#[doc = "CHINTFLAG (rw) register accessor: an alias for `Reg<CHINTFLAG_SPEC>`"]
142pub type CHINTFLAG = crate::Reg<chintflag::CHINTFLAG_SPEC>;
143#[doc = "Channel Interrupt Flag Status and Clear"]
144pub mod chintflag;
145#[doc = "CHSTATUS (r) register accessor: an alias for `Reg<CHSTATUS_SPEC>`"]
146pub type CHSTATUS = crate::Reg<chstatus::CHSTATUS_SPEC>;
147#[doc = "Channel Status"]
148pub mod chstatus;