1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 #[doc = "0x00 - SPI Control Register"]
5 pub spcr: SPCR,
6 #[doc = "0x01 - SPI Slave Select Polarity Register"]
7 pub sslp: SSLP,
8 #[doc = "0x02 - SPI Pin Control Register"]
9 pub sppcr: SPPCR,
10 #[doc = "0x03 - SPI Status Register"]
11 pub spsr: SPSR,
12 _reserved_4_spdr: [u8; 0x04],
13 #[doc = "0x08 - SPI Sequence Control Register"]
14 pub spscr: SPSCR,
15 #[doc = "0x09 - SPI Sequence Status Register"]
16 pub spssr: SPSSR,
17 #[doc = "0x0a - SPI Bit Rate Register"]
18 pub spbr: SPBR,
19 #[doc = "0x0b - SPI Data Control Register"]
20 pub spdcr: SPDCR,
21 #[doc = "0x0c - SPI Clock Delay Register"]
22 pub spckd: SPCKD,
23 #[doc = "0x0d - SPI Slave Select Negation Delay Register"]
24 pub sslnd: SSLND,
25 #[doc = "0x0e - SPI Next-Access Delay Register"]
26 pub spnd: SPND,
27 #[doc = "0x0f - SPI Control Register 2"]
28 pub spcr2: SPCR2,
29 #[doc = "0x10..0x20 - SPI Command Register %s"]
30 pub spcmd: [SPCMD; 8],
31 #[doc = "0x20 - SPI Data Control Register 2"]
32 pub spdcr2: SPDCR2,
33 #[doc = "0x21 - SPI Control Register 3"]
34 pub spcr3: SPCR3,
35}
36impl RegisterBlock {
37 #[doc = "0x04 - SPI Data Register"]
38 #[inline(always)]
39 pub const fn spdr_by(&self) -> &SPDR_BY {
40 unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
41 }
42 #[doc = "0x04 - SPI Data Register"]
43 #[inline(always)]
44 pub const fn spdr_ha(&self) -> &SPDR_HA {
45 unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
46 }
47 #[doc = "0x04 - SPI Data Register"]
48 #[inline(always)]
49 pub const fn spdr(&self) -> &SPDR {
50 unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
51 }
52}
53#[doc = "SPCR (rw) register accessor: an alias for `Reg<SPCR_SPEC>`"]
54pub type SPCR = crate::Reg<spcr::SPCR_SPEC>;
55#[doc = "SPI Control Register"]
56pub mod spcr;
57#[doc = "SSLP (rw) register accessor: an alias for `Reg<SSLP_SPEC>`"]
58pub type SSLP = crate::Reg<sslp::SSLP_SPEC>;
59#[doc = "SPI Slave Select Polarity Register"]
60pub mod sslp;
61#[doc = "SPPCR (rw) register accessor: an alias for `Reg<SPPCR_SPEC>`"]
62pub type SPPCR = crate::Reg<sppcr::SPPCR_SPEC>;
63#[doc = "SPI Pin Control Register"]
64pub mod sppcr;
65#[doc = "SPSR (rw) register accessor: an alias for `Reg<SPSR_SPEC>`"]
66pub type SPSR = crate::Reg<spsr::SPSR_SPEC>;
67#[doc = "SPI Status Register"]
68pub mod spsr;
69#[doc = "SPDR (rw) register accessor: an alias for `Reg<SPDR_SPEC>`"]
70pub type SPDR = crate::Reg<spdr::SPDR_SPEC>;
71#[doc = "SPI Data Register"]
72pub mod spdr;
73#[doc = "SPDR_HA (rw) register accessor: an alias for `Reg<SPDR_HA_SPEC>`"]
74pub type SPDR_HA = crate::Reg<spdr_ha::SPDR_HA_SPEC>;
75#[doc = "SPI Data Register"]
76pub mod spdr_ha;
77#[doc = "SPDR_BY (rw) register accessor: an alias for `Reg<SPDR_BY_SPEC>`"]
78pub type SPDR_BY = crate::Reg<spdr_by::SPDR_BY_SPEC>;
79#[doc = "SPI Data Register"]
80pub mod spdr_by;
81#[doc = "SPSCR (rw) register accessor: an alias for `Reg<SPSCR_SPEC>`"]
82pub type SPSCR = crate::Reg<spscr::SPSCR_SPEC>;
83#[doc = "SPI Sequence Control Register"]
84pub mod spscr;
85#[doc = "SPSSR (r) register accessor: an alias for `Reg<SPSSR_SPEC>`"]
86pub type SPSSR = crate::Reg<spssr::SPSSR_SPEC>;
87#[doc = "SPI Sequence Status Register"]
88pub mod spssr;
89#[doc = "SPBR (rw) register accessor: an alias for `Reg<SPBR_SPEC>`"]
90pub type SPBR = crate::Reg<spbr::SPBR_SPEC>;
91#[doc = "SPI Bit Rate Register"]
92pub mod spbr;
93#[doc = "SPDCR (rw) register accessor: an alias for `Reg<SPDCR_SPEC>`"]
94pub type SPDCR = crate::Reg<spdcr::SPDCR_SPEC>;
95#[doc = "SPI Data Control Register"]
96pub mod spdcr;
97#[doc = "SPCKD (rw) register accessor: an alias for `Reg<SPCKD_SPEC>`"]
98pub type SPCKD = crate::Reg<spckd::SPCKD_SPEC>;
99#[doc = "SPI Clock Delay Register"]
100pub mod spckd;
101#[doc = "SSLND (rw) register accessor: an alias for `Reg<SSLND_SPEC>`"]
102pub type SSLND = crate::Reg<sslnd::SSLND_SPEC>;
103#[doc = "SPI Slave Select Negation Delay Register"]
104pub mod sslnd;
105#[doc = "SPND (rw) register accessor: an alias for `Reg<SPND_SPEC>`"]
106pub type SPND = crate::Reg<spnd::SPND_SPEC>;
107#[doc = "SPI Next-Access Delay Register"]
108pub mod spnd;
109#[doc = "SPCR2 (rw) register accessor: an alias for `Reg<SPCR2_SPEC>`"]
110pub type SPCR2 = crate::Reg<spcr2::SPCR2_SPEC>;
111#[doc = "SPI Control Register 2"]
112pub mod spcr2;
113#[doc = "SPCMD (rw) register accessor: an alias for `Reg<SPCMD_SPEC>`"]
114pub type SPCMD = crate::Reg<spcmd::SPCMD_SPEC>;
115#[doc = "SPI Command Register %s"]
116pub mod spcmd;
117#[doc = "SPDCR2 (rw) register accessor: an alias for `Reg<SPDCR2_SPEC>`"]
118pub type SPDCR2 = crate::Reg<spdcr2::SPDCR2_SPEC>;
119#[doc = "SPI Data Control Register 2"]
120pub mod spdcr2;
121#[doc = "SPCR3 (rw) register accessor: an alias for `Reg<SPCR3_SPEC>`"]
122pub type SPCR3 = crate::Reg<spcr3::SPCR3_SPEC>;
123#[doc = "SPI Control Register 3"]
124pub mod spcr3;