max78000_pac/
simo.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    _reserved0: [u8; 0x04],
5    vrego_a: VregoA,
6    vrego_b: VregoB,
7    vrego_c: VregoC,
8    vrego_d: VregoD,
9    ipka: Ipka,
10    ipkb: Ipkb,
11    maxton: Maxton,
12    iload_a: IloadA,
13    iload_b: IloadB,
14    iload_c: IloadC,
15    iload_d: IloadD,
16    buck_alert_thr_a: BuckAlertThrA,
17    buck_alert_thr_b: BuckAlertThrB,
18    buck_alert_thr_c: BuckAlertThrC,
19    buck_alert_thr_d: BuckAlertThrD,
20    buck_out_ready: BuckOutReady,
21    zero_cross_cal_a: ZeroCrossCalA,
22    zero_cross_cal_b: ZeroCrossCalB,
23    zero_cross_cal_c: ZeroCrossCalC,
24    zero_cross_cal_d: ZeroCrossCalD,
25}
26impl RegisterBlock {
27    #[doc = "0x04 - Buck Voltage Regulator A Control Register"]
28    #[inline(always)]
29    pub const fn vrego_a(&self) -> &VregoA {
30        &self.vrego_a
31    }
32    #[doc = "0x08 - Buck Voltage Regulator B Control Register"]
33    #[inline(always)]
34    pub const fn vrego_b(&self) -> &VregoB {
35        &self.vrego_b
36    }
37    #[doc = "0x0c - Buck Voltage Regulator C Control Register"]
38    #[inline(always)]
39    pub const fn vrego_c(&self) -> &VregoC {
40        &self.vrego_c
41    }
42    #[doc = "0x10 - Buck Voltage Regulator D Control Register"]
43    #[inline(always)]
44    pub const fn vrego_d(&self) -> &VregoD {
45        &self.vrego_d
46    }
47    #[doc = "0x14 - High Side FET Peak Current VREGO_A/VREGO_B Register"]
48    #[inline(always)]
49    pub const fn ipka(&self) -> &Ipka {
50        &self.ipka
51    }
52    #[doc = "0x18 - High Side FET Peak Current VREGO_C/VREGO_D Register"]
53    #[inline(always)]
54    pub const fn ipkb(&self) -> &Ipkb {
55        &self.ipkb
56    }
57    #[doc = "0x1c - Maximum High Side FET Time On Register"]
58    #[inline(always)]
59    pub const fn maxton(&self) -> &Maxton {
60        &self.maxton
61    }
62    #[doc = "0x20 - Buck Cycle Count VREGO_A Register"]
63    #[inline(always)]
64    pub const fn iload_a(&self) -> &IloadA {
65        &self.iload_a
66    }
67    #[doc = "0x24 - Buck Cycle Count VREGO_B Register"]
68    #[inline(always)]
69    pub const fn iload_b(&self) -> &IloadB {
70        &self.iload_b
71    }
72    #[doc = "0x28 - Buck Cycle Count VREGO_C Register"]
73    #[inline(always)]
74    pub const fn iload_c(&self) -> &IloadC {
75        &self.iload_c
76    }
77    #[doc = "0x2c - Buck Cycle Count VREGO_D Register"]
78    #[inline(always)]
79    pub const fn iload_d(&self) -> &IloadD {
80        &self.iload_d
81    }
82    #[doc = "0x30 - Buck Cycle Count Alert VERGO_A Register"]
83    #[inline(always)]
84    pub const fn buck_alert_thr_a(&self) -> &BuckAlertThrA {
85        &self.buck_alert_thr_a
86    }
87    #[doc = "0x34 - Buck Cycle Count Alert VERGO_B Register"]
88    #[inline(always)]
89    pub const fn buck_alert_thr_b(&self) -> &BuckAlertThrB {
90        &self.buck_alert_thr_b
91    }
92    #[doc = "0x38 - Buck Cycle Count Alert VERGO_C Register"]
93    #[inline(always)]
94    pub const fn buck_alert_thr_c(&self) -> &BuckAlertThrC {
95        &self.buck_alert_thr_c
96    }
97    #[doc = "0x3c - Buck Cycle Count Alert VERGO_D Register"]
98    #[inline(always)]
99    pub const fn buck_alert_thr_d(&self) -> &BuckAlertThrD {
100        &self.buck_alert_thr_d
101    }
102    #[doc = "0x40 - Buck Regulator Output Ready Register"]
103    #[inline(always)]
104    pub const fn buck_out_ready(&self) -> &BuckOutReady {
105        &self.buck_out_ready
106    }
107    #[doc = "0x44 - Zero Cross Calibration VERGO_A Register"]
108    #[inline(always)]
109    pub const fn zero_cross_cal_a(&self) -> &ZeroCrossCalA {
110        &self.zero_cross_cal_a
111    }
112    #[doc = "0x48 - Zero Cross Calibration VERGO_B Register"]
113    #[inline(always)]
114    pub const fn zero_cross_cal_b(&self) -> &ZeroCrossCalB {
115        &self.zero_cross_cal_b
116    }
117    #[doc = "0x4c - Zero Cross Calibration VERGO_C Register"]
118    #[inline(always)]
119    pub const fn zero_cross_cal_c(&self) -> &ZeroCrossCalC {
120        &self.zero_cross_cal_c
121    }
122    #[doc = "0x50 - Zero Cross Calibration VERGO_D Register"]
123    #[inline(always)]
124    pub const fn zero_cross_cal_d(&self) -> &ZeroCrossCalD {
125        &self.zero_cross_cal_d
126    }
127}
128#[doc = "VREGO_A (rw) register accessor: Buck Voltage Regulator A Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`vrego_a::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`vrego_a::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@vrego_a`]
129module"]
130#[doc(alias = "VREGO_A")]
131pub type VregoA = crate::Reg<vrego_a::VregoASpec>;
132#[doc = "Buck Voltage Regulator A Control Register"]
133pub mod vrego_a;
134#[doc = "VREGO_B (rw) register accessor: Buck Voltage Regulator B Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`vrego_b::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`vrego_b::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@vrego_b`]
135module"]
136#[doc(alias = "VREGO_B")]
137pub type VregoB = crate::Reg<vrego_b::VregoBSpec>;
138#[doc = "Buck Voltage Regulator B Control Register"]
139pub mod vrego_b;
140#[doc = "VREGO_C (rw) register accessor: Buck Voltage Regulator C Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`vrego_c::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`vrego_c::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@vrego_c`]
141module"]
142#[doc(alias = "VREGO_C")]
143pub type VregoC = crate::Reg<vrego_c::VregoCSpec>;
144#[doc = "Buck Voltage Regulator C Control Register"]
145pub mod vrego_c;
146#[doc = "VREGO_D (rw) register accessor: Buck Voltage Regulator D Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`vrego_d::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`vrego_d::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@vrego_d`]
147module"]
148#[doc(alias = "VREGO_D")]
149pub type VregoD = crate::Reg<vrego_d::VregoDSpec>;
150#[doc = "Buck Voltage Regulator D Control Register"]
151pub mod vrego_d;
152#[doc = "IPKA (rw) register accessor: High Side FET Peak Current VREGO_A/VREGO_B Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ipka::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ipka::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@ipka`]
153module"]
154#[doc(alias = "IPKA")]
155pub type Ipka = crate::Reg<ipka::IpkaSpec>;
156#[doc = "High Side FET Peak Current VREGO_A/VREGO_B Register"]
157pub mod ipka;
158#[doc = "IPKB (rw) register accessor: High Side FET Peak Current VREGO_C/VREGO_D Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ipkb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ipkb::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@ipkb`]
159module"]
160#[doc(alias = "IPKB")]
161pub type Ipkb = crate::Reg<ipkb::IpkbSpec>;
162#[doc = "High Side FET Peak Current VREGO_C/VREGO_D Register"]
163pub mod ipkb;
164#[doc = "MAXTON (rw) register accessor: Maximum High Side FET Time On Register\n\nYou can [`read`](crate::Reg::read) this register and get [`maxton::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`maxton::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@maxton`]
165module"]
166#[doc(alias = "MAXTON")]
167pub type Maxton = crate::Reg<maxton::MaxtonSpec>;
168#[doc = "Maximum High Side FET Time On Register"]
169pub mod maxton;
170#[doc = "ILOAD_A (r) register accessor: Buck Cycle Count VREGO_A Register\n\nYou can [`read`](crate::Reg::read) this register and get [`iload_a::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@iload_a`]
171module"]
172#[doc(alias = "ILOAD_A")]
173pub type IloadA = crate::Reg<iload_a::IloadASpec>;
174#[doc = "Buck Cycle Count VREGO_A Register"]
175pub mod iload_a;
176#[doc = "ILOAD_B (r) register accessor: Buck Cycle Count VREGO_B Register\n\nYou can [`read`](crate::Reg::read) this register and get [`iload_b::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@iload_b`]
177module"]
178#[doc(alias = "ILOAD_B")]
179pub type IloadB = crate::Reg<iload_b::IloadBSpec>;
180#[doc = "Buck Cycle Count VREGO_B Register"]
181pub mod iload_b;
182#[doc = "ILOAD_C (r) register accessor: Buck Cycle Count VREGO_C Register\n\nYou can [`read`](crate::Reg::read) this register and get [`iload_c::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@iload_c`]
183module"]
184#[doc(alias = "ILOAD_C")]
185pub type IloadC = crate::Reg<iload_c::IloadCSpec>;
186#[doc = "Buck Cycle Count VREGO_C Register"]
187pub mod iload_c;
188#[doc = "ILOAD_D (r) register accessor: Buck Cycle Count VREGO_D Register\n\nYou can [`read`](crate::Reg::read) this register and get [`iload_d::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@iload_d`]
189module"]
190#[doc(alias = "ILOAD_D")]
191pub type IloadD = crate::Reg<iload_d::IloadDSpec>;
192#[doc = "Buck Cycle Count VREGO_D Register"]
193pub mod iload_d;
194#[doc = "BUCK_ALERT_THR_A (rw) register accessor: Buck Cycle Count Alert VERGO_A Register\n\nYou can [`read`](crate::Reg::read) this register and get [`buck_alert_thr_a::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`buck_alert_thr_a::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@buck_alert_thr_a`]
195module"]
196#[doc(alias = "BUCK_ALERT_THR_A")]
197pub type BuckAlertThrA = crate::Reg<buck_alert_thr_a::BuckAlertThrASpec>;
198#[doc = "Buck Cycle Count Alert VERGO_A Register"]
199pub mod buck_alert_thr_a;
200#[doc = "BUCK_ALERT_THR_B (rw) register accessor: Buck Cycle Count Alert VERGO_B Register\n\nYou can [`read`](crate::Reg::read) this register and get [`buck_alert_thr_b::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`buck_alert_thr_b::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@buck_alert_thr_b`]
201module"]
202#[doc(alias = "BUCK_ALERT_THR_B")]
203pub type BuckAlertThrB = crate::Reg<buck_alert_thr_b::BuckAlertThrBSpec>;
204#[doc = "Buck Cycle Count Alert VERGO_B Register"]
205pub mod buck_alert_thr_b;
206#[doc = "BUCK_ALERT_THR_C (rw) register accessor: Buck Cycle Count Alert VERGO_C Register\n\nYou can [`read`](crate::Reg::read) this register and get [`buck_alert_thr_c::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`buck_alert_thr_c::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@buck_alert_thr_c`]
207module"]
208#[doc(alias = "BUCK_ALERT_THR_C")]
209pub type BuckAlertThrC = crate::Reg<buck_alert_thr_c::BuckAlertThrCSpec>;
210#[doc = "Buck Cycle Count Alert VERGO_C Register"]
211pub mod buck_alert_thr_c;
212#[doc = "BUCK_ALERT_THR_D (rw) register accessor: Buck Cycle Count Alert VERGO_D Register\n\nYou can [`read`](crate::Reg::read) this register and get [`buck_alert_thr_d::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`buck_alert_thr_d::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@buck_alert_thr_d`]
213module"]
214#[doc(alias = "BUCK_ALERT_THR_D")]
215pub type BuckAlertThrD = crate::Reg<buck_alert_thr_d::BuckAlertThrDSpec>;
216#[doc = "Buck Cycle Count Alert VERGO_D Register"]
217pub mod buck_alert_thr_d;
218#[doc = "BUCK_OUT_READY (r) register accessor: Buck Regulator Output Ready Register\n\nYou can [`read`](crate::Reg::read) this register and get [`buck_out_ready::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@buck_out_ready`]
219module"]
220#[doc(alias = "BUCK_OUT_READY")]
221pub type BuckOutReady = crate::Reg<buck_out_ready::BuckOutReadySpec>;
222#[doc = "Buck Regulator Output Ready Register"]
223pub mod buck_out_ready;
224#[doc = "ZERO_CROSS_CAL_A (r) register accessor: Zero Cross Calibration VERGO_A Register\n\nYou can [`read`](crate::Reg::read) this register and get [`zero_cross_cal_a::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@zero_cross_cal_a`]
225module"]
226#[doc(alias = "ZERO_CROSS_CAL_A")]
227pub type ZeroCrossCalA = crate::Reg<zero_cross_cal_a::ZeroCrossCalASpec>;
228#[doc = "Zero Cross Calibration VERGO_A Register"]
229pub mod zero_cross_cal_a;
230#[doc = "ZERO_CROSS_CAL_B (r) register accessor: Zero Cross Calibration VERGO_B Register\n\nYou can [`read`](crate::Reg::read) this register and get [`zero_cross_cal_b::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@zero_cross_cal_b`]
231module"]
232#[doc(alias = "ZERO_CROSS_CAL_B")]
233pub type ZeroCrossCalB = crate::Reg<zero_cross_cal_b::ZeroCrossCalBSpec>;
234#[doc = "Zero Cross Calibration VERGO_B Register"]
235pub mod zero_cross_cal_b;
236#[doc = "ZERO_CROSS_CAL_C (r) register accessor: Zero Cross Calibration VERGO_C Register\n\nYou can [`read`](crate::Reg::read) this register and get [`zero_cross_cal_c::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@zero_cross_cal_c`]
237module"]
238#[doc(alias = "ZERO_CROSS_CAL_C")]
239pub type ZeroCrossCalC = crate::Reg<zero_cross_cal_c::ZeroCrossCalCSpec>;
240#[doc = "Zero Cross Calibration VERGO_C Register"]
241pub mod zero_cross_cal_c;
242#[doc = "ZERO_CROSS_CAL_D (r) register accessor: Zero Cross Calibration VERGO_D Register\n\nYou can [`read`](crate::Reg::read) this register and get [`zero_cross_cal_d::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@zero_cross_cal_d`]
243module"]
244#[doc(alias = "ZERO_CROSS_CAL_D")]
245pub type ZeroCrossCalD = crate::Reg<zero_cross_cal_d::ZeroCrossCalDSpec>;
246#[doc = "Zero Cross Calibration VERGO_D Register"]
247pub mod zero_cross_cal_d;