use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Dmamr = 0,
Dmasbmr = 1,
Dmaisr = 2,
Dmadsr = 3,
Dmaccr = 4,
Dmactxcr = 5,
Dmacrxcr = 6,
Dmactxdlar = 7,
Dmacrxdlar = 8,
Dmactxdtpr = 9,
Dmacrxdtpr = 10,
Dmactxrlr = 11,
Dmacrxrlr = 12,
Dmacier = 13,
Dmacrxiwtr = 14,
Dmaccatxdr = 15,
Dmaccarxdr = 16,
Dmaccatxbr = 17,
Dmaccarxbr = 18,
Dmacsr = 19,
Dmacmfcr = 20,
}
impl Register {
pub const ALL: [Self; 21] = [Self::Dmamr, Self::Dmasbmr, Self::Dmaisr, Self::Dmadsr, Self::Dmaccr, Self::Dmactxcr, Self::Dmacrxcr, Self::Dmactxdlar, Self::Dmacrxdlar, Self::Dmactxdtpr, Self::Dmacrxdtpr, Self::Dmactxrlr, Self::Dmacrxrlr, Self::Dmacier, Self::Dmacrxiwtr, Self::Dmaccatxdr, Self::Dmaccarxdr, Self::Dmaccatxbr, Self::Dmaccarxbr, Self::Dmacsr, Self::Dmacmfcr];
}
impl Layout for Register {
const REGISTERS: &'static [RegisterSpec] = ®ISTERS;
fn from_index(index: usize) -> Option<Self> {
Self::ALL.get(index).copied()
}
fn index(self) -> usize {
self as usize
}
}
pub mod dmamr {
use super::FieldSpec;
pub const SWR: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const DA: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const TXPR: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const PR: &FieldSpec = &super::REGISTERS[0].fields[3];
pub const INTM: &FieldSpec = &super::REGISTERS[0].fields[4];
}
pub mod dmasbmr {
use super::FieldSpec;
pub const FB: &FieldSpec = &super::REGISTERS[1].fields[0];
pub const AAL: &FieldSpec = &super::REGISTERS[1].fields[1];
pub const MB: &FieldSpec = &super::REGISTERS[1].fields[2];
pub const RB: &FieldSpec = &super::REGISTERS[1].fields[3];
}
pub mod dmaisr {
use super::FieldSpec;
pub const DC0IS: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const MTLIS: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const MACIS: &FieldSpec = &super::REGISTERS[2].fields[2];
}
pub mod dmadsr {
use super::FieldSpec;
pub const AXWHSTS: &FieldSpec = &super::REGISTERS[3].fields[0];
pub const RPS0: &FieldSpec = &super::REGISTERS[3].fields[1];
pub const TPS0: &FieldSpec = &super::REGISTERS[3].fields[2];
}
pub mod dmaccr {
use super::FieldSpec;
pub const MSS: &FieldSpec = &super::REGISTERS[4].fields[0];
pub const PBLX8: &FieldSpec = &super::REGISTERS[4].fields[1];
pub const DSL: &FieldSpec = &super::REGISTERS[4].fields[2];
}
pub mod dmactxcr {
use super::FieldSpec;
pub const ST: &FieldSpec = &super::REGISTERS[5].fields[0];
pub const OSF: &FieldSpec = &super::REGISTERS[5].fields[1];
pub const TSE: &FieldSpec = &super::REGISTERS[5].fields[2];
pub const TXPBL: &FieldSpec = &super::REGISTERS[5].fields[3];
}
pub mod dmacrxcr {
use super::FieldSpec;
pub const SR: &FieldSpec = &super::REGISTERS[6].fields[0];
pub const RBSZ: &FieldSpec = &super::REGISTERS[6].fields[1];
pub const RXPBL: &FieldSpec = &super::REGISTERS[6].fields[2];
pub const RPF: &FieldSpec = &super::REGISTERS[6].fields[3];
}
pub mod dmactxdlar {
use super::FieldSpec;
pub const TDESLA: &FieldSpec = &super::REGISTERS[7].fields[0];
}
pub mod dmacrxdlar {
use super::FieldSpec;
pub const RDESLA: &FieldSpec = &super::REGISTERS[8].fields[0];
}
pub mod dmactxdtpr {
use super::FieldSpec;
pub const TDT: &FieldSpec = &super::REGISTERS[9].fields[0];
}
pub mod dmacrxdtpr {
use super::FieldSpec;
pub const RDT: &FieldSpec = &super::REGISTERS[10].fields[0];
}
pub mod dmactxrlr {
use super::FieldSpec;
pub const TDRL: &FieldSpec = &super::REGISTERS[11].fields[0];
}
pub mod dmacrxrlr {
use super::FieldSpec;
pub const RDRL: &FieldSpec = &super::REGISTERS[12].fields[0];
}
pub mod dmacier {
use super::FieldSpec;
pub const TIE: &FieldSpec = &super::REGISTERS[13].fields[0];
pub const TXSE: &FieldSpec = &super::REGISTERS[13].fields[1];
pub const TBUE: &FieldSpec = &super::REGISTERS[13].fields[2];
pub const RIE: &FieldSpec = &super::REGISTERS[13].fields[3];
pub const RBUE: &FieldSpec = &super::REGISTERS[13].fields[4];
pub const RSE: &FieldSpec = &super::REGISTERS[13].fields[5];
pub const RWTE: &FieldSpec = &super::REGISTERS[13].fields[6];
pub const ETIE: &FieldSpec = &super::REGISTERS[13].fields[7];
pub const ERIE: &FieldSpec = &super::REGISTERS[13].fields[8];
pub const FBEE: &FieldSpec = &super::REGISTERS[13].fields[9];
pub const CDEE: &FieldSpec = &super::REGISTERS[13].fields[10];
pub const AIE: &FieldSpec = &super::REGISTERS[13].fields[11];
pub const NIE: &FieldSpec = &super::REGISTERS[13].fields[12];
}
pub mod dmacrxiwtr {
use super::FieldSpec;
pub const RWT: &FieldSpec = &super::REGISTERS[14].fields[0];
}
pub mod dmaccatxdr {
use super::FieldSpec;
pub const CURTDESAPTR: &FieldSpec = &super::REGISTERS[15].fields[0];
}
pub mod dmaccarxdr {
use super::FieldSpec;
pub const CURRDESAPTR: &FieldSpec = &super::REGISTERS[16].fields[0];
}
pub mod dmaccatxbr {
use super::FieldSpec;
pub const CURTBUFAPTR: &FieldSpec = &super::REGISTERS[17].fields[0];
}
pub mod dmaccarxbr {
use super::FieldSpec;
pub const CURRBUFAPTR: &FieldSpec = &super::REGISTERS[18].fields[0];
}
pub mod dmacsr {
use super::FieldSpec;
pub const TI: &FieldSpec = &super::REGISTERS[19].fields[0];
pub const TPS: &FieldSpec = &super::REGISTERS[19].fields[1];
pub const TBU: &FieldSpec = &super::REGISTERS[19].fields[2];
pub const RI: &FieldSpec = &super::REGISTERS[19].fields[3];
pub const RBU: &FieldSpec = &super::REGISTERS[19].fields[4];
pub const RPS: &FieldSpec = &super::REGISTERS[19].fields[5];
pub const RWT: &FieldSpec = &super::REGISTERS[19].fields[6];
pub const ET: &FieldSpec = &super::REGISTERS[19].fields[7];
pub const ER: &FieldSpec = &super::REGISTERS[19].fields[8];
pub const FBE: &FieldSpec = &super::REGISTERS[19].fields[9];
pub const CDE: &FieldSpec = &super::REGISTERS[19].fields[10];
pub const AIS: &FieldSpec = &super::REGISTERS[19].fields[11];
pub const NIS: &FieldSpec = &super::REGISTERS[19].fields[12];
pub const TEB: &FieldSpec = &super::REGISTERS[19].fields[13];
pub const REB: &FieldSpec = &super::REGISTERS[19].fields[14];
}
pub mod dmacmfcr {
use super::FieldSpec;
pub const MFC: &FieldSpec = &super::REGISTERS[20].fields[0];
pub const MFCO: &FieldSpec = &super::REGISTERS[20].fields[1];
}
pub static REGISTERS: [RegisterSpec; 21] = [
RegisterSpec { name: "DMAMR", offset: 0x0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SWR", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DA", bit: 1, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXPR", bit: 11, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PR", bit: 12, width: 3, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "INTM", bit: 16, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMASBMR", offset: 0x4, width: Width::W32, reset: 0x0101_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FB", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "AAL", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MB", bit: 14, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RB", bit: 15, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMAISR", offset: 0x8, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "DC0IS", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTLIS", bit: 16, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MACIS", bit: 17, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMADSR", offset: 0xC, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "AXWHSTS", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RPS0", bit: 8, width: 4, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TPS0", bit: 12, width: 4, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACCR", offset: 0x100, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MSS", bit: 0, width: 14, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PBLX8", bit: 16, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DSL", bit: 18, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACTxCR", offset: 0x104, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ST", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "OSF", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSE", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXPBL", bit: 16, width: 6, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACRxCR", offset: 0x108, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SR", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RBSZ", bit: 1, width: 14, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RXPBL", bit: 16, width: 6, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RPF", bit: 31, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACTxDLAR", offset: 0x114, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TDESLA", bit: 2, width: 30, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACRxDLAR", offset: 0x11C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RDESLA", bit: 2, width: 30, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACTxDTPR", offset: 0x120, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TDT", bit: 2, width: 30, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACRxDTPR", offset: 0x128, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RDT", bit: 2, width: 30, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACTxRLR", offset: 0x12C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TDRL", bit: 0, width: 10, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACRxRLR", offset: 0x130, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RDRL", bit: 0, width: 10, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACIER", offset: 0x134, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TIE", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXSE", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TBUE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RIE", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RBUE", bit: 7, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RSE", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RWTE", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ETIE", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ERIE", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FBEE", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CDEE", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "AIE", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NIE", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACRxIWTR", offset: 0x138, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RWT", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACCATxDR", offset: 0x144, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CURTDESAPTR", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACCARxDR", offset: 0x14C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CURRDESAPTR", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACCATxBR", offset: 0x154, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CURTBUFAPTR", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACCARxBR", offset: 0x15C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CURRBUFAPTR", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACSR", offset: 0x160, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TI", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TPS", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TBU", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RI", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RBU", bit: 7, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RPS", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RWT", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ET", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ER", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FBE", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CDE", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "AIS", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NIS", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TEB", bit: 16, width: 3, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "REB", bit: 19, width: 3, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "DMACMFCR", offset: 0x16C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MFC", bit: 0, width: 11, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MFCO", bit: 15, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];