ra4m3/
spi0.rs

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;