atsamd21j/
sercom0.rs
1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4 _reserved_0_spi: [u8; 0x31],
5}
6impl RegisterBlock {
7 #[doc = "0x00..0x31 - USART Mode"]
8 #[inline(always)]
9 pub const fn usart(&self) -> &Usart {
10 unsafe { &*(self as *const Self).cast::<u8>().add(0).cast() }
11 }
12 #[doc = "0x00..0x31 - SPI Mode"]
13 #[inline(always)]
14 pub const fn spi(&self) -> &Spi {
15 unsafe { &*(self as *const Self).cast::<u8>().add(0).cast() }
16 }
17 #[doc = "0x00..0x29 - I2C Slave Mode"]
18 #[inline(always)]
19 pub const fn i2cs(&self) -> &I2cs {
20 unsafe { &*(self as *const Self).cast::<u8>().add(0).cast() }
21 }
22 #[doc = "0x00..0x31 - I2C Master Mode"]
23 #[inline(always)]
24 pub const fn i2cm(&self) -> &I2cm {
25 unsafe { &*(self as *const Self).cast::<u8>().add(0).cast() }
26 }
27}
28#[doc = "I2C Master Mode"]
29pub use self::i2cm::I2cm;
30#[doc = r"Cluster"]
31#[doc = "I2C Master Mode"]
32pub mod i2cm;
33#[doc = "I2C Slave Mode"]
34pub use self::i2cs::I2cs;
35#[doc = r"Cluster"]
36#[doc = "I2C Slave Mode"]
37pub mod i2cs;
38#[doc = "SPI Mode"]
39pub use self::spi::Spi;
40#[doc = r"Cluster"]
41#[doc = "SPI Mode"]
42pub mod spi;
43#[doc = "USART Mode"]
44pub use self::usart::Usart;
45#[doc = r"Cluster"]
46#[doc = "USART Mode"]
47pub mod usart;