Skip to main content

nrf52/ficr/
mod.rs

1#[doc = r" Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    _reserved0: [u8; 16usize],
5    #[doc = "0x10 - Code memory page size"]
6    pub codepagesize: CODEPAGESIZE,
7    #[doc = "0x14 - Code memory size"]
8    pub codesize: CODESIZE,
9    _reserved1: [u8; 72usize],
10    #[doc = "0x60 - Description collection[0]: Device identifier"]
11    pub deviceid: [DEVICEID; 2],
12    _reserved2: [u8; 24usize],
13    #[doc = "0x80 - Description collection[0]: Encryption Root, word 0"]
14    pub er: [ER; 4],
15    #[doc = "0x90 - Description collection[0]: Identity Root, word 0"]
16    pub ir: [IR; 4],
17    #[doc = "0xa0 - Device address type"]
18    pub deviceaddrtype: DEVICEADDRTYPE,
19    #[doc = "0xa4 - Description collection[0]: Device address 0"]
20    pub deviceaddr: [DEVICEADDR; 2],
21    _reserved3: [u8; 84usize],
22    #[doc = "0x100 - Device info"]
23    pub info: INFO,
24    _reserved4: [u8; 740usize],
25    #[doc = "0x404 - Registers storing factory TEMP module linearization coefficients"]
26    pub temp: TEMP,
27    _reserved5: [u8; 8usize],
28    #[doc = "0x450 - Unspecified"]
29    pub nfc: NFC,
30}
31#[doc = r" Register block"]
32#[repr(C)]
33pub struct INFO {
34    #[doc = "0x00 - Part code"]
35    pub part: self::info::PART,
36    #[doc = "0x04 - Part Variant, Hardware version and Production configuration"]
37    pub variant: self::info::VARIANT,
38    #[doc = "0x08 - Package option"]
39    pub package: self::info::PACKAGE,
40    #[doc = "0x0c - RAM variant"]
41    pub ram: self::info::RAM,
42    #[doc = "0x10 - Flash variant"]
43    pub flash: self::info::FLASH,
44    #[doc = "0x14 - Description collection[0]: Unspecified"]
45    pub unused0: [self::info::UNUSED0; 3],
46}
47#[doc = r" Register block"]
48#[doc = "Device info"]
49pub mod info;
50#[doc = r" Register block"]
51#[repr(C)]
52pub struct TEMP {
53    #[doc = "0x00 - Slope definition A0."]
54    pub a0: self::temp::A0,
55    #[doc = "0x04 - Slope definition A1."]
56    pub a1: self::temp::A1,
57    #[doc = "0x08 - Slope definition A2."]
58    pub a2: self::temp::A2,
59    #[doc = "0x0c - Slope definition A3."]
60    pub a3: self::temp::A3,
61    #[doc = "0x10 - Slope definition A4."]
62    pub a4: self::temp::A4,
63    #[doc = "0x14 - Slope definition A5."]
64    pub a5: self::temp::A5,
65    #[doc = "0x18 - y-intercept B0."]
66    pub b0: self::temp::B0,
67    #[doc = "0x1c - y-intercept B1."]
68    pub b1: self::temp::B1,
69    #[doc = "0x20 - y-intercept B2."]
70    pub b2: self::temp::B2,
71    #[doc = "0x24 - y-intercept B3."]
72    pub b3: self::temp::B3,
73    #[doc = "0x28 - y-intercept B4."]
74    pub b4: self::temp::B4,
75    #[doc = "0x2c - y-intercept B5."]
76    pub b5: self::temp::B5,
77    #[doc = "0x30 - Segment end T0."]
78    pub t0: self::temp::T0,
79    #[doc = "0x34 - Segment end T1."]
80    pub t1: self::temp::T1,
81    #[doc = "0x38 - Segment end T2."]
82    pub t2: self::temp::T2,
83    #[doc = "0x3c - Segment end T3."]
84    pub t3: self::temp::T3,
85    #[doc = "0x40 - Segment end T4."]
86    pub t4: self::temp::T4,
87}
88#[doc = r" Register block"]
89#[doc = "Registers storing factory TEMP module linearization coefficients"]
90pub mod temp;
91#[doc = r" Register block"]
92#[repr(C)]
93pub struct NFC {
94    #[doc = "0x00 - Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."]
95    pub tagheader0: self::nfc::TAGHEADER0,
96    #[doc = "0x04 - Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."]
97    pub tagheader1: self::nfc::TAGHEADER1,
98    #[doc = "0x08 - Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."]
99    pub tagheader2: self::nfc::TAGHEADER2,
100    #[doc = "0x0c - Default header for NFC Tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."]
101    pub tagheader3: self::nfc::TAGHEADER3,
102}
103#[doc = r" Register block"]
104#[doc = "Unspecified"]
105pub mod nfc;
106#[doc = "Code memory page size"]
107pub struct CODEPAGESIZE {
108    register: ::vcell::VolatileCell<u32>,
109}
110#[doc = "Code memory page size"]
111pub mod codepagesize;
112#[doc = "Code memory size"]
113pub struct CODESIZE {
114    register: ::vcell::VolatileCell<u32>,
115}
116#[doc = "Code memory size"]
117pub mod codesize;
118#[doc = "Description collection[0]: Device identifier"]
119pub struct DEVICEID {
120    register: ::vcell::VolatileCell<u32>,
121}
122#[doc = "Description collection[0]: Device identifier"]
123pub mod deviceid;
124#[doc = "Description collection[0]: Encryption Root, word 0"]
125pub struct ER {
126    register: ::vcell::VolatileCell<u32>,
127}
128#[doc = "Description collection[0]: Encryption Root, word 0"]
129pub mod er;
130#[doc = "Description collection[0]: Identity Root, word 0"]
131pub struct IR {
132    register: ::vcell::VolatileCell<u32>,
133}
134#[doc = "Description collection[0]: Identity Root, word 0"]
135pub mod ir;
136#[doc = "Device address type"]
137pub struct DEVICEADDRTYPE {
138    register: ::vcell::VolatileCell<u32>,
139}
140#[doc = "Device address type"]
141pub mod deviceaddrtype;
142#[doc = "Description collection[0]: Device address 0"]
143pub struct DEVICEADDR {
144    register: ::vcell::VolatileCell<u32>,
145}
146#[doc = "Description collection[0]: Device address 0"]
147pub mod deviceaddr;