use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Bcr1 = 0,
Btr1 = 1,
Bcr2 = 2,
Btr2 = 3,
Bcr3 = 4,
Btr3 = 5,
Bcr4 = 6,
Btr4 = 7,
Pcr = 8,
Sr = 9,
Pmem = 10,
Patt = 11,
Eccr = 12,
Bwtr1 = 13,
Bwtr2 = 14,
Bwtr3 = 15,
Bwtr4 = 16,
Sdcr1 = 17,
Sdcr2 = 18,
Sdtr1 = 19,
Sdtr2 = 20,
Sdcmr = 21,
Sdrtr = 22,
Sdsr = 23,
}
impl Register {
pub const ALL: [Self; 24] = [Self::Bcr1, Self::Btr1, Self::Bcr2, Self::Btr2, Self::Bcr3, Self::Btr3, Self::Bcr4, Self::Btr4, Self::Pcr, Self::Sr, Self::Pmem, Self::Patt, Self::Eccr, Self::Bwtr1, Self::Bwtr2, Self::Bwtr3, Self::Bwtr4, Self::Sdcr1, Self::Sdcr2, Self::Sdtr1, Self::Sdtr2, Self::Sdcmr, Self::Sdrtr, Self::Sdsr];
}
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 bcr1 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[0].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[0].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[0].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[0].fields[6];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[0].fields[7];
pub const WREN: &FieldSpec = &super::REGISTERS[0].fields[8];
pub const WAITEN: &FieldSpec = &super::REGISTERS[0].fields[9];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[0].fields[10];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[0].fields[11];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[0].fields[12];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[0].fields[13];
pub const CCLKEN: &FieldSpec = &super::REGISTERS[0].fields[14];
pub const WFDIS: &FieldSpec = &super::REGISTERS[0].fields[15];
pub const BMAP: &FieldSpec = &super::REGISTERS[0].fields[16];
pub const FMCEN: &FieldSpec = &super::REGISTERS[0].fields[17];
}
pub mod btr1 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[1].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[1].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[1].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[1].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[1].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[1].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[1].fields[6];
}
pub mod bcr2 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[2].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[2].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[2].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[2].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[2].fields[6];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[2].fields[7];
pub const WREN: &FieldSpec = &super::REGISTERS[2].fields[8];
pub const WAITEN: &FieldSpec = &super::REGISTERS[2].fields[9];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[2].fields[10];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[2].fields[11];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[2].fields[12];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[2].fields[13];
pub const CCLKEN: &FieldSpec = &super::REGISTERS[2].fields[14];
pub const WFDIS: &FieldSpec = &super::REGISTERS[2].fields[15];
pub const BMAP: &FieldSpec = &super::REGISTERS[2].fields[16];
pub const FMCEN: &FieldSpec = &super::REGISTERS[2].fields[17];
}
pub mod btr2 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[3].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[3].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[3].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[3].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[3].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[3].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[3].fields[6];
}
pub mod bcr3 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[4].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[4].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[4].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[4].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[4].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[4].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[4].fields[6];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[4].fields[7];
pub const WREN: &FieldSpec = &super::REGISTERS[4].fields[8];
pub const WAITEN: &FieldSpec = &super::REGISTERS[4].fields[9];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[4].fields[10];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[4].fields[11];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[4].fields[12];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[4].fields[13];
pub const CCLKEN: &FieldSpec = &super::REGISTERS[4].fields[14];
pub const WFDIS: &FieldSpec = &super::REGISTERS[4].fields[15];
pub const BMAP: &FieldSpec = &super::REGISTERS[4].fields[16];
pub const FMCEN: &FieldSpec = &super::REGISTERS[4].fields[17];
}
pub mod btr3 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[5].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[5].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[5].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[5].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[5].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[5].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[5].fields[6];
}
pub mod bcr4 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[6].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[6].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[6].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[6].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[6].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[6].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[6].fields[6];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[6].fields[7];
pub const WREN: &FieldSpec = &super::REGISTERS[6].fields[8];
pub const WAITEN: &FieldSpec = &super::REGISTERS[6].fields[9];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[6].fields[10];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[6].fields[11];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[6].fields[12];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[6].fields[13];
pub const CCLKEN: &FieldSpec = &super::REGISTERS[6].fields[14];
pub const WFDIS: &FieldSpec = &super::REGISTERS[6].fields[15];
pub const BMAP: &FieldSpec = &super::REGISTERS[6].fields[16];
pub const FMCEN: &FieldSpec = &super::REGISTERS[6].fields[17];
}
pub mod btr4 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[7].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[7].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[7].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[7].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[7].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[7].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[7].fields[6];
}
pub mod pcr {
use super::FieldSpec;
pub const PWAITEN: &FieldSpec = &super::REGISTERS[8].fields[0];
pub const PBKEN: &FieldSpec = &super::REGISTERS[8].fields[1];
pub const PWID: &FieldSpec = &super::REGISTERS[8].fields[2];
pub const ECCEN: &FieldSpec = &super::REGISTERS[8].fields[3];
pub const TCLR: &FieldSpec = &super::REGISTERS[8].fields[4];
pub const TAR: &FieldSpec = &super::REGISTERS[8].fields[5];
pub const ECCPS: &FieldSpec = &super::REGISTERS[8].fields[6];
}
pub mod sr {
use super::FieldSpec;
pub const IRS: &FieldSpec = &super::REGISTERS[9].fields[0];
pub const ILS: &FieldSpec = &super::REGISTERS[9].fields[1];
pub const IFS: &FieldSpec = &super::REGISTERS[9].fields[2];
pub const IREN: &FieldSpec = &super::REGISTERS[9].fields[3];
pub const ILEN: &FieldSpec = &super::REGISTERS[9].fields[4];
pub const IFEN: &FieldSpec = &super::REGISTERS[9].fields[5];
pub const FEMPT: &FieldSpec = &super::REGISTERS[9].fields[6];
}
pub mod pmem {
use super::FieldSpec;
pub const MEMSET: &FieldSpec = &super::REGISTERS[10].fields[0];
pub const MEMWAIT: &FieldSpec = &super::REGISTERS[10].fields[1];
pub const MEMHOLD: &FieldSpec = &super::REGISTERS[10].fields[2];
pub const MEMHIZ: &FieldSpec = &super::REGISTERS[10].fields[3];
}
pub mod patt {
use super::FieldSpec;
pub const ATTSET: &FieldSpec = &super::REGISTERS[11].fields[0];
pub const ATTWAIT: &FieldSpec = &super::REGISTERS[11].fields[1];
pub const ATTHOLD: &FieldSpec = &super::REGISTERS[11].fields[2];
pub const ATTHIZ: &FieldSpec = &super::REGISTERS[11].fields[3];
}
pub mod eccr {
use super::FieldSpec;
pub const ECC: &FieldSpec = &super::REGISTERS[12].fields[0];
}
pub mod bwtr1 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[13].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[13].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[13].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[13].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[13].fields[4];
}
pub mod bwtr2 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[14].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[14].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[14].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[14].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[14].fields[4];
}
pub mod bwtr3 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[15].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[15].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[15].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[15].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[15].fields[4];
}
pub mod bwtr4 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[16].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[16].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[16].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[16].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[16].fields[4];
}
pub mod sdcr1 {
use super::FieldSpec;
pub const NC: &FieldSpec = &super::REGISTERS[17].fields[0];
pub const NR: &FieldSpec = &super::REGISTERS[17].fields[1];
pub const MWID: &FieldSpec = &super::REGISTERS[17].fields[2];
pub const NB: &FieldSpec = &super::REGISTERS[17].fields[3];
pub const CAS: &FieldSpec = &super::REGISTERS[17].fields[4];
pub const WP: &FieldSpec = &super::REGISTERS[17].fields[5];
pub const SDCLK: &FieldSpec = &super::REGISTERS[17].fields[6];
pub const RBURST: &FieldSpec = &super::REGISTERS[17].fields[7];
pub const RPIPE: &FieldSpec = &super::REGISTERS[17].fields[8];
}
pub mod sdcr2 {
use super::FieldSpec;
pub const NC: &FieldSpec = &super::REGISTERS[18].fields[0];
pub const NR: &FieldSpec = &super::REGISTERS[18].fields[1];
pub const MWID: &FieldSpec = &super::REGISTERS[18].fields[2];
pub const NB: &FieldSpec = &super::REGISTERS[18].fields[3];
pub const CAS: &FieldSpec = &super::REGISTERS[18].fields[4];
pub const WP: &FieldSpec = &super::REGISTERS[18].fields[5];
pub const SDCLK: &FieldSpec = &super::REGISTERS[18].fields[6];
pub const RBURST: &FieldSpec = &super::REGISTERS[18].fields[7];
pub const RPIPE: &FieldSpec = &super::REGISTERS[18].fields[8];
}
pub mod sdtr1 {
use super::FieldSpec;
pub const TMRD: &FieldSpec = &super::REGISTERS[19].fields[0];
pub const TXSR: &FieldSpec = &super::REGISTERS[19].fields[1];
pub const TRAS: &FieldSpec = &super::REGISTERS[19].fields[2];
pub const TRC: &FieldSpec = &super::REGISTERS[19].fields[3];
pub const TWR: &FieldSpec = &super::REGISTERS[19].fields[4];
pub const TRP: &FieldSpec = &super::REGISTERS[19].fields[5];
pub const TRCD: &FieldSpec = &super::REGISTERS[19].fields[6];
}
pub mod sdtr2 {
use super::FieldSpec;
pub const TMRD: &FieldSpec = &super::REGISTERS[20].fields[0];
pub const TXSR: &FieldSpec = &super::REGISTERS[20].fields[1];
pub const TRAS: &FieldSpec = &super::REGISTERS[20].fields[2];
pub const TRC: &FieldSpec = &super::REGISTERS[20].fields[3];
pub const TWR: &FieldSpec = &super::REGISTERS[20].fields[4];
pub const TRP: &FieldSpec = &super::REGISTERS[20].fields[5];
pub const TRCD: &FieldSpec = &super::REGISTERS[20].fields[6];
}
pub mod sdcmr {
use super::FieldSpec;
pub const MODE: &FieldSpec = &super::REGISTERS[21].fields[0];
pub const CTB2: &FieldSpec = &super::REGISTERS[21].fields[1];
pub const CTB1: &FieldSpec = &super::REGISTERS[21].fields[2];
pub const NRFS: &FieldSpec = &super::REGISTERS[21].fields[3];
pub const MRD: &FieldSpec = &super::REGISTERS[21].fields[4];
}
pub mod sdrtr {
use super::FieldSpec;
pub const CRE: &FieldSpec = &super::REGISTERS[22].fields[0];
pub const COUNT: &FieldSpec = &super::REGISTERS[22].fields[1];
pub const REIE: &FieldSpec = &super::REGISTERS[22].fields[2];
}
pub mod sdsr {
use super::FieldSpec;
pub const RE: &FieldSpec = &super::REGISTERS[23].fields[0];
pub const MODES1: &FieldSpec = &super::REGISTERS[23].fields[1];
pub const MODES2: &FieldSpec = &super::REGISTERS[23].fields[2];
}
pub static REGISTERS: [RegisterSpec; 24] = [
RegisterSpec { name: "BCR1", offset: 0x0, width: Width::W32, reset: 0x0000_30DB, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CCLKEN", bit: 20, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WFDIS", bit: 21, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BMAP", bit: 24, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FMCEN", bit: 31, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR1", offset: 0x4, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BCR2", offset: 0x8, width: Width::W32, reset: 0x0000_30D2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CCLKEN", bit: 20, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WFDIS", bit: 21, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BMAP", bit: 24, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FMCEN", bit: 31, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR2", offset: 0xC, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BCR3", offset: 0x10, width: Width::W32, reset: 0x0000_30D2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CCLKEN", bit: 20, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WFDIS", bit: 21, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BMAP", bit: 24, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FMCEN", bit: 31, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR3", offset: 0x14, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BCR4", offset: 0x18, width: Width::W32, reset: 0x0000_30D2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CCLKEN", bit: 20, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WFDIS", bit: 21, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BMAP", bit: 24, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FMCEN", bit: 31, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR4", offset: 0x1C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PCR", offset: 0x80, width: Width::W32, reset: 0x0000_0018, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "PWAITEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PBKEN", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TCLR", bit: 9, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TAR", bit: 13, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCPS", bit: 17, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SR", offset: 0x84, width: Width::W32, reset: 0x0000_0040, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "IRS", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILS", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFS", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IREN", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILEN", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FEMPT", bit: 6, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PMEM", offset: 0x88, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MEMSET", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMWAIT", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHOLD", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHIZ", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PATT", offset: 0x8C, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ATTSET", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTWAIT", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHOLD", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHIZ", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "ECCR", offset: 0x94, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR1", offset: 0x104, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR2", offset: 0x10C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR3", offset: 0x114, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR4", offset: 0x11C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDCR1", offset: 0x140, width: Width::W32, reset: 0x0000_02D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "NC", bit: 0, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NR", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NB", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CAS", bit: 7, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WP", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "SDCLK", bit: 10, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RBURST", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RPIPE", bit: 13, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDCR2", offset: 0x144, width: Width::W32, reset: 0x0000_02D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "NC", bit: 0, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NR", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NB", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CAS", bit: 7, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WP", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "SDCLK", bit: 10, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RBURST", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RPIPE", bit: 13, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDTR1", offset: 0x148, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TMRD", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXSR", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRAS", bit: 8, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRC", bit: 12, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TWR", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRP", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRCD", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDTR2", offset: 0x14C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TMRD", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXSR", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRAS", bit: 8, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRC", bit: 12, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TWR", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRP", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRCD", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDCMR", offset: 0x150, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MODE", bit: 0, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CTB2", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CTB1", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NRFS", bit: 5, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MRD", bit: 9, width: 14, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDRTR", offset: 0x154, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CRE", bit: 0, width: 1, access: Access::WriteOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "COUNT", bit: 1, width: 13, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "REIE", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDSR", offset: 0x158, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RE", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MODES1", bit: 1, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MODES2", bit: 3, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];