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 _reserved5: [u8; 0x02],
14 #[doc = "0x0a - SPI Bit Rate Register"]
15 pub spbr: SPBR,
16 #[doc = "0x0b - SPI Data Control Register"]
17 pub spdcr: SPDCR,
18 #[doc = "0x0c - SPI Clock Delay Register"]
19 pub spckd: SPCKD,
20 #[doc = "0x0d - SPI Slave Select Negation Delay Register"]
21 pub sslnd: SSLND,
22 #[doc = "0x0e - SPI Next-Access Delay Register"]
23 pub spnd: SPND,
24 #[doc = "0x0f - SPI Control Register 2"]
25 pub spcr2: SPCR2,
26 #[doc = "0x10 - SPI Command Register 0"]
27 pub spcmd0: SPCMD0,
28}
29impl RegisterBlock {
30 #[doc = "0x04 - SPI Data Register"]
31 #[inline(always)]
32 pub const fn spdr_by(&self) -> &SPDR_BY {
33 unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
34 }
35 #[doc = "0x04 - SPI Data Register"]
36 #[inline(always)]
37 pub const fn spdr_ha(&self) -> &SPDR_HA {
38 unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
39 }
40 #[doc = "0x04 - SPI Data Register"]
41 #[inline(always)]
42 pub const fn spdr(&self) -> &SPDR {
43 unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
44 }
45}
46#[doc = "SPCR (rw) register accessor: an alias for `Reg<SPCR_SPEC>`"]
47pub type SPCR = crate::Reg<spcr::SPCR_SPEC>;
48#[doc = "SPI Control Register"]
49pub mod spcr;
50#[doc = "SSLP (rw) register accessor: an alias for `Reg<SSLP_SPEC>`"]
51pub type SSLP = crate::Reg<sslp::SSLP_SPEC>;
52#[doc = "SPI Slave Select Polarity Register"]
53pub mod sslp;
54#[doc = "SPPCR (rw) register accessor: an alias for `Reg<SPPCR_SPEC>`"]
55pub type SPPCR = crate::Reg<sppcr::SPPCR_SPEC>;
56#[doc = "SPI Pin Control Register"]
57pub mod sppcr;
58#[doc = "SPSR (rw) register accessor: an alias for `Reg<SPSR_SPEC>`"]
59pub type SPSR = crate::Reg<spsr::SPSR_SPEC>;
60#[doc = "SPI Status Register"]
61pub mod spsr;
62#[doc = "SPDR (rw) register accessor: an alias for `Reg<SPDR_SPEC>`"]
63pub type SPDR = crate::Reg<spdr::SPDR_SPEC>;
64#[doc = "SPI Data Register"]
65pub mod spdr;
66#[doc = "SPDR_HA (rw) register accessor: an alias for `Reg<SPDR_HA_SPEC>`"]
67pub type SPDR_HA = crate::Reg<spdr_ha::SPDR_HA_SPEC>;
68#[doc = "SPI Data Register"]
69pub mod spdr_ha;
70#[doc = "SPDR_BY (rw) register accessor: an alias for `Reg<SPDR_BY_SPEC>`"]
71pub type SPDR_BY = crate::Reg<spdr_by::SPDR_BY_SPEC>;
72#[doc = "SPI Data Register"]
73pub mod spdr_by;
74#[doc = "SPBR (rw) register accessor: an alias for `Reg<SPBR_SPEC>`"]
75pub type SPBR = crate::Reg<spbr::SPBR_SPEC>;
76#[doc = "SPI Bit Rate Register"]
77pub mod spbr;
78#[doc = "SPDCR (rw) register accessor: an alias for `Reg<SPDCR_SPEC>`"]
79pub type SPDCR = crate::Reg<spdcr::SPDCR_SPEC>;
80#[doc = "SPI Data Control Register"]
81pub mod spdcr;
82#[doc = "SPCKD (rw) register accessor: an alias for `Reg<SPCKD_SPEC>`"]
83pub type SPCKD = crate::Reg<spckd::SPCKD_SPEC>;
84#[doc = "SPI Clock Delay Register"]
85pub mod spckd;
86#[doc = "SSLND (rw) register accessor: an alias for `Reg<SSLND_SPEC>`"]
87pub type SSLND = crate::Reg<sslnd::SSLND_SPEC>;
88#[doc = "SPI Slave Select Negation Delay Register"]
89pub mod sslnd;
90#[doc = "SPND (rw) register accessor: an alias for `Reg<SPND_SPEC>`"]
91pub type SPND = crate::Reg<spnd::SPND_SPEC>;
92#[doc = "SPI Next-Access Delay Register"]
93pub mod spnd;
94#[doc = "SPCR2 (rw) register accessor: an alias for `Reg<SPCR2_SPEC>`"]
95pub type SPCR2 = crate::Reg<spcr2::SPCR2_SPEC>;
96#[doc = "SPI Control Register 2"]
97pub mod spcr2;
98#[doc = "SPCMD0 (rw) register accessor: an alias for `Reg<SPCMD0_SPEC>`"]
99pub type SPCMD0 = crate::Reg<spcmd0::SPCMD0_SPEC>;
100#[doc = "SPI Command Register 0"]
101pub mod spcmd0;