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;