1#[repr(C)]
2#[doc = "I2C Slave Mode"]
3#[doc(alias = "I2CS")]
4pub struct I2cs {
5 ctrla: Ctrla,
6 ctrlb: Ctrlb,
7 _reserved2: [u8; 0x0c],
8 intenclr: Intenclr,
9 _reserved3: [u8; 0x01],
10 intenset: Intenset,
11 _reserved4: [u8; 0x01],
12 intflag: Intflag,
13 _reserved5: [u8; 0x01],
14 status: Status,
15 syncbusy: Syncbusy,
16 _reserved7: [u8; 0x04],
17 addr: Addr,
18 data: Data,
19}
20impl I2cs {
21#[doc = "0x00 - I2CS Control A"]
22 #[inline(always)]
23pub const fn ctrla(&self) -> &Ctrla {
24&self.ctrla
25 }
26#[doc = "0x04 - I2CS Control B"]
27 #[inline(always)]
28pub const fn ctrlb(&self) -> &Ctrlb {
29&self.ctrlb
30 }
31#[doc = "0x14 - I2CS Interrupt Enable Clear"]
32 #[inline(always)]
33pub const fn intenclr(&self) -> &Intenclr {
34&self.intenclr
35 }
36#[doc = "0x16 - I2CS Interrupt Enable Set"]
37 #[inline(always)]
38pub const fn intenset(&self) -> &Intenset {
39&self.intenset
40 }
41#[doc = "0x18 - I2CS Interrupt Flag Status and Clear"]
42 #[inline(always)]
43pub const fn intflag(&self) -> &Intflag {
44&self.intflag
45 }
46#[doc = "0x1a - I2CS Status"]
47 #[inline(always)]
48pub const fn status(&self) -> &Status {
49&self.status
50 }
51#[doc = "0x1c - I2CS Syncbusy"]
52 #[inline(always)]
53pub const fn syncbusy(&self) -> &Syncbusy {
54&self.syncbusy
55 }
56#[doc = "0x24 - I2CS Address"]
57 #[inline(always)]
58pub const fn addr(&self) -> &Addr {
59&self.addr
60 }
61#[doc = "0x28 - I2CS Data"]
62 #[inline(always)]
63pub const fn data(&self) -> &Data {
64&self.data
65 }
66}
67#[doc = "CTRLA (rw) register accessor: I2CS Control A\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrla::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrla::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrla`]
68module"]
69#[doc(alias = "CTRLA")]
70pub type Ctrla = crate::Reg<ctrla::CtrlaSpec>;
71#[doc = "I2CS Control A"]
72pub mod ctrla;
73#[doc = "CTRLB (rw) register accessor: I2CS Control B\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrlb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrlb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrlb`]
74module"]
75#[doc(alias = "CTRLB")]
76pub type Ctrlb = crate::Reg<ctrlb::CtrlbSpec>;
77#[doc = "I2CS Control B"]
78pub mod ctrlb;
79#[doc = "INTENCLR (rw) register accessor: I2CS Interrupt Enable Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intenclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenclr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intenclr`]
80module"]
81#[doc(alias = "INTENCLR")]
82pub type Intenclr = crate::Reg<intenclr::IntenclrSpec>;
83#[doc = "I2CS Interrupt Enable Clear"]
84pub mod intenclr;
85#[doc = "INTENSET (rw) register accessor: I2CS Interrupt Enable Set\n\nYou can [`read`](crate::Reg::read) this register and get [`intenset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenset::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intenset`]
86module"]
87#[doc(alias = "INTENSET")]
88pub type Intenset = crate::Reg<intenset::IntensetSpec>;
89#[doc = "I2CS Interrupt Enable Set"]
90pub mod intenset;
91#[doc = "INTFLAG (rw) register accessor: I2CS Interrupt Flag Status and Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intflag::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intflag::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intflag`]
92module"]
93#[doc(alias = "INTFLAG")]
94pub type Intflag = crate::Reg<intflag::IntflagSpec>;
95#[doc = "I2CS Interrupt Flag Status and Clear"]
96pub mod intflag;
97#[doc = "STATUS (rw) register accessor: I2CS Status\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`status::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status`]
98module"]
99#[doc(alias = "STATUS")]
100pub type Status = crate::Reg<status::StatusSpec>;
101#[doc = "I2CS Status"]
102pub mod status;
103#[doc = "SYNCBUSY (r) register accessor: I2CS Syncbusy\n\nYou can [`read`](crate::Reg::read) this register and get [`syncbusy::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@syncbusy`]
104module"]
105#[doc(alias = "SYNCBUSY")]
106pub type Syncbusy = crate::Reg<syncbusy::SyncbusySpec>;
107#[doc = "I2CS Syncbusy"]
108pub mod syncbusy;
109#[doc = "ADDR (rw) register accessor: I2CS Address\n\nYou can [`read`](crate::Reg::read) this register and get [`addr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`addr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@addr`]
110module"]
111#[doc(alias = "ADDR")]
112pub type Addr = crate::Reg<addr::AddrSpec>;
113#[doc = "I2CS Address"]
114pub mod addr;
115#[doc = "DATA (rw) register accessor: I2CS Data\n\nYou can [`read`](crate::Reg::read) this register and get [`data::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data`]
116module"]
117#[doc(alias = "DATA")]
118pub type Data = crate::Reg<data::DataSpec>;
119#[doc = "I2CS Data"]
120pub mod data;