use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Ier = 0,
M1cr = 1,
M1sr = 2,
M1far = 3,
M1fdrl = 4,
M1fdrh = 5,
M1fecr = 6,
M2cr = 7,
M2sr = 8,
M2far = 9,
M2fdrl = 10,
M2fdrh = 11,
M2fecr = 12,
}
impl Register {
pub const ALL: [Self; 13] = [Self::Ier, Self::M1cr, Self::M1sr, Self::M1far, Self::M1fdrl, Self::M1fdrh, Self::M1fecr, Self::M2cr, Self::M2sr, Self::M2far, Self::M2fdrl, Self::M2fdrh, Self::M2fecr];
}
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 ier {
use super::FieldSpec;
pub const GIE: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const GECCSEIE_: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const GECCDEIE: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const GECCDEBWIE: &FieldSpec = &super::REGISTERS[0].fields[3];
}
pub mod m1cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[1].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[1].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[1].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[1].fields[3];
}
pub mod m1sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[2].fields[2];
}
pub mod m1far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[3].fields[0];
}
pub mod m1fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[4].fields[0];
}
pub mod m1fdrh {
use super::FieldSpec;
pub const FDATAH: &FieldSpec = &super::REGISTERS[5].fields[0];
}
pub mod m1fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[6].fields[0];
}
pub mod m2cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[7].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[7].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[7].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[7].fields[3];
}
pub mod m2sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[8].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[8].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[8].fields[2];
}
pub mod m2far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[9].fields[0];
}
pub mod m2fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[10].fields[0];
}
pub mod m2fdrh {
use super::FieldSpec;
pub const FDATAH: &FieldSpec = &super::REGISTERS[11].fields[0];
}
pub mod m2fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[12].fields[0];
}
pub static REGISTERS: [RegisterSpec; 13] = [
RegisterSpec { name: "IER", offset: 0x0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "GIE", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "GECCSEIE_", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "GECCDEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "GECCDEBWIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1CR", offset: 0x20, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1SR", offset: 0x24, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FAR", offset: 0x28, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FDRL", offset: 0x2C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FDRH", offset: 0x30, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAH", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FECR", offset: 0x34, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2CR", offset: 0x40, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2SR", offset: 0x44, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FAR", offset: 0x48, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FDRL", offset: 0x4C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FDRH", offset: 0x50, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAH", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FECR", offset: 0x58, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
];