use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Mmccr = 0,
Mmcrir = 1,
Mmctir = 2,
Mmcrimr = 3,
Mmctimr = 4,
Mmctgfsccr = 5,
Mmctgfmsccr = 6,
Mmctgfcr = 7,
Mmcrfcecr = 8,
Mmcrfaecr = 9,
Mmcrgufcr = 10,
}
impl Register {
pub const ALL: [Self; 11] = [Self::Mmccr, Self::Mmcrir, Self::Mmctir, Self::Mmcrimr, Self::Mmctimr, Self::Mmctgfsccr, Self::Mmctgfmsccr, Self::Mmctgfcr, Self::Mmcrfcecr, Self::Mmcrfaecr, Self::Mmcrgufcr];
}
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 mmccr {
use super::FieldSpec;
pub const CR: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const CSR: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const ROR: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const MCF: &FieldSpec = &super::REGISTERS[0].fields[3];
pub const MCP: &FieldSpec = &super::REGISTERS[0].fields[4];
pub const MCFHP: &FieldSpec = &super::REGISTERS[0].fields[5];
}
pub mod mmcrir {
use super::FieldSpec;
pub const RFCES: &FieldSpec = &super::REGISTERS[1].fields[0];
pub const RFAES: &FieldSpec = &super::REGISTERS[1].fields[1];
pub const RGUFS: &FieldSpec = &super::REGISTERS[1].fields[2];
}
pub mod mmctir {
use super::FieldSpec;
pub const TGFSCS: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const TGFMSCS: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const TGFS: &FieldSpec = &super::REGISTERS[2].fields[2];
}
pub mod mmcrimr {
use super::FieldSpec;
pub const RFCEM: &FieldSpec = &super::REGISTERS[3].fields[0];
pub const RFAEM: &FieldSpec = &super::REGISTERS[3].fields[1];
pub const RGUFM: &FieldSpec = &super::REGISTERS[3].fields[2];
}
pub mod mmctimr {
use super::FieldSpec;
pub const TGFSCM: &FieldSpec = &super::REGISTERS[4].fields[0];
pub const TGFMSCM: &FieldSpec = &super::REGISTERS[4].fields[1];
pub const TGFM: &FieldSpec = &super::REGISTERS[4].fields[2];
}
pub mod mmctgfsccr {
use super::FieldSpec;
pub const TGFSCC: &FieldSpec = &super::REGISTERS[5].fields[0];
}
pub mod mmctgfmsccr {
use super::FieldSpec;
pub const TGFMSCC: &FieldSpec = &super::REGISTERS[6].fields[0];
}
pub mod mmctgfcr {
use super::FieldSpec;
pub const TGFC: &FieldSpec = &super::REGISTERS[7].fields[0];
}
pub mod mmcrfcecr {
use super::FieldSpec;
pub const RFCFC: &FieldSpec = &super::REGISTERS[8].fields[0];
}
pub mod mmcrfaecr {
use super::FieldSpec;
pub const RFAEC: &FieldSpec = &super::REGISTERS[9].fields[0];
}
pub mod mmcrgufcr {
use super::FieldSpec;
pub const RGUFC: &FieldSpec = &super::REGISTERS[10].fields[0];
}
pub static REGISTERS: [RegisterSpec; 11] = [
RegisterSpec { name: "MMCCR", offset: 0x0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CR", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CSR", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ROR", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MCF", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MCP", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MCFHP", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCRIR", offset: 0x4, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RFCES", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RFAES", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RGUFS", bit: 17, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCTIR", offset: 0x8, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TGFSCS", bit: 14, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TGFMSCS", bit: 15, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TGFS", bit: 21, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCRIMR", offset: 0xC, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RFCEM", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RFAEM", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RGUFM", bit: 17, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCTIMR", offset: 0x10, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TGFSCM", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TGFMSCM", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TGFM", bit: 16, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCTGFSCCR", offset: 0x4C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TGFSCC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCTGFMSCCR", offset: 0x50, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TGFMSCC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCTGFCR", offset: 0x68, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TGFC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCRFCECR", offset: 0x94, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RFCFC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCRFAECR", offset: 0x98, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RFAEC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MMCRGUFCR", offset: 0xC4, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RGUFC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];