use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Ptptscr = 0,
Ptpssir = 1,
Ptptshr = 2,
Ptptslr = 3,
Ptptshur = 4,
Ptptslur = 5,
Ptptsar = 6,
Ptptthr = 7,
Ptpttlr = 8,
Ptptssr = 9,
Ptpppscr = 10,
}
impl Register {
pub const ALL: [Self; 11] = [Self::Ptptscr, Self::Ptpssir, Self::Ptptshr, Self::Ptptslr, Self::Ptptshur, Self::Ptptslur, Self::Ptptsar, Self::Ptptthr, Self::Ptpttlr, Self::Ptptssr, Self::Ptpppscr];
}
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 ptptscr {
use super::FieldSpec;
pub const TSE: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const TSFCU: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const TSSTI: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const TSSTU: &FieldSpec = &super::REGISTERS[0].fields[3];
pub const TSITE: &FieldSpec = &super::REGISTERS[0].fields[4];
pub const TTSARU: &FieldSpec = &super::REGISTERS[0].fields[5];
pub const TSSARFE: &FieldSpec = &super::REGISTERS[0].fields[6];
pub const TSSSR: &FieldSpec = &super::REGISTERS[0].fields[7];
pub const TSPTPPSV2E: &FieldSpec = &super::REGISTERS[0].fields[8];
pub const TSSPTPOEFE: &FieldSpec = &super::REGISTERS[0].fields[9];
pub const TSSIPV6FE: &FieldSpec = &super::REGISTERS[0].fields[10];
pub const TSSIPV4FE: &FieldSpec = &super::REGISTERS[0].fields[11];
pub const TSSEME: &FieldSpec = &super::REGISTERS[0].fields[12];
pub const TSSMRME: &FieldSpec = &super::REGISTERS[0].fields[13];
pub const TSCNT: &FieldSpec = &super::REGISTERS[0].fields[14];
pub const TSPFFMAE: &FieldSpec = &super::REGISTERS[0].fields[15];
}
pub mod ptpssir {
use super::FieldSpec;
pub const STSSI: &FieldSpec = &super::REGISTERS[1].fields[0];
}
pub mod ptptshr {
use super::FieldSpec;
pub const STS: &FieldSpec = &super::REGISTERS[2].fields[0];
}
pub mod ptptslr {
use super::FieldSpec;
pub const STSS: &FieldSpec = &super::REGISTERS[3].fields[0];
pub const STPNS: &FieldSpec = &super::REGISTERS[3].fields[1];
}
pub mod ptptshur {
use super::FieldSpec;
pub const TSUS: &FieldSpec = &super::REGISTERS[4].fields[0];
}
pub mod ptptslur {
use super::FieldSpec;
pub const TSUSS: &FieldSpec = &super::REGISTERS[5].fields[0];
pub const TSUPNS: &FieldSpec = &super::REGISTERS[5].fields[1];
}
pub mod ptptsar {
use super::FieldSpec;
pub const TSA: &FieldSpec = &super::REGISTERS[6].fields[0];
}
pub mod ptptthr {
use super::FieldSpec;
pub const TTSH: &FieldSpec = &super::REGISTERS[7].fields[0];
}
pub mod ptpttlr {
use super::FieldSpec;
pub const TTSL: &FieldSpec = &super::REGISTERS[8].fields[0];
}
pub mod ptptssr {
use super::FieldSpec;
pub const TSSO: &FieldSpec = &super::REGISTERS[9].fields[0];
pub const TSTTR: &FieldSpec = &super::REGISTERS[9].fields[1];
}
pub mod ptpppscr {
use super::FieldSpec;
pub const TSSO: &FieldSpec = &super::REGISTERS[10].fields[0];
pub const TSTTR: &FieldSpec = &super::REGISTERS[10].fields[1];
}
pub static REGISTERS: [RegisterSpec; 11] = [
RegisterSpec { name: "PTPTSCR", offset: 0x0, width: Width::W32, reset: 0x0000_2000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TSE", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSFCU", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSTI", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSTU", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSITE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TTSARU", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSARFE", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSSR", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSPTPPSV2E", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSPTPOEFE", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSIPV6FE", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSIPV4FE", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSEME", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSSMRME", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSCNT", bit: 16, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSPFFMAE", bit: 18, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPSSIR", offset: 0x4, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "STSSI", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTSHR", offset: 0x8, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "STS", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTSLR", offset: 0xC, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "STSS", bit: 0, width: 31, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "STPNS", bit: 31, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTSHUR", offset: 0x10, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TSUS", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTSLUR", offset: 0x14, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TSUSS", bit: 0, width: 31, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSUPNS", bit: 31, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTSAR", offset: 0x18, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TSA", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTTHR", offset: 0x1C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TTSH", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTTLR", offset: 0x20, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TTSL", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPTSSR", offset: 0x28, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TSSO", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSTTR", bit: 1, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PTPPPSCR", offset: 0x2C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TSSO", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSTTR", bit: 1, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];