Skip to content

Commit 9c0bf58

Browse files
authored
gpio: Add GPIO Definitions for H562/3 & H573 families (#32)
This adds the required definitions to use the GPIO driver on H562/3 & H573 parts.
1 parent 5e7a293 commit 9c0bf58

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed

src/gpio/gpio_def.rs

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,173 @@ pub use h56x_h573::*;
152152
mod h56x_h573 {
153153
use super::Gpio;
154154

155+
gpio!(GPIOA, gpioa, Gpioa, PA, 'A', PAn, [
156+
PA0: (pa0, 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15]),
157+
PA1: (pa1, 1, [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 15]),
158+
PA2: (pa2, 2, [1, 2, 4, 5, 7, 8, 11, 15]),
159+
PA3: (pa3, 3, [1, 2, 3, 4, 5, 6, 7, 11, 15]),
160+
PA4: (pa4, 4, [2, 3, 5, 6, 7, 8, 13, 15]),
161+
PA5: (pa5, 5, [1, 3, 5, 8, 11, 13, 14, 15]),
162+
PA6: (pa6, 6, [1, 2, 3, 5, 6, 7, 8, 9, 13, 15]),
163+
PA7: (pa7, 7, [1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15]),
164+
PA8: (pa8, 8, [0, 1, 3, 4, 5, 7, 10, 11, 12, 13, 15]),
165+
PA9: (pa9, 9, [1, 3, 4, 5, 7, 11, 12, 13, 15]),
166+
PA10: (pa10, 10, [1, 3, 4, 6, 7, 9, 12, 13, 15]),
167+
PA11: (pa11, 11, [1, 3, 5, 6, 7, 9, 10, 15]),
168+
PA12: (pa12, 12, [1, 3, 5, 6, 7, 8, 9, 10, 15]),
169+
PA13: (pa13, 13, [0, 15], crate::gpio::Debugger),
170+
PA14: (pa14, 14, [0, 15], crate::gpio::Debugger),
171+
PA15: (pa15, 15, [0, 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15], crate::gpio::Debugger),
172+
]);
173+
174+
gpio!(GPIOB, gpiob, Gpiob, PB, 'B', PBn, [
175+
PB0: (pb0, 0, [1, 2, 3, 6, 7, 8, 11, 14, 15]),
176+
PB1: (pb1, 1, [1, 2, 3, 6, 11, 14, 15]),
177+
PB2: (pb2, 2, [0, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 15]),
178+
PB3: (pb3, 3, [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15], crate::gpio::Debugger),
179+
PB4: (pb4, 4, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15], crate::gpio::Debugger),
180+
PB5: (pb5, 5, [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15]),
181+
PB6: (pb6, 6, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15]),
182+
PB7: (pb7, 7, [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15]),
183+
PB8: (pb8, 8, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15]),
184+
PB9: (pb9, 9, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15]),
185+
PB10: (pb10, 10, [1, 3, 4, 5, 7, 9, 11, 15]),
186+
PB11: (pb11, 11, [1, 3, 4, 5, 6, 7, 11, 12, 15]),
187+
PB12: (pb12, 12, [1, 3, 4, 5, 7, 9, 11, 14, 15]),
188+
PB13: (pb13, 13, [1, 2, 3, 4, 5, 7, 9, 12, 14, 15]),
189+
PB14: (pb14, 14, [1, 2, 3, 4, 5, 7, 8, 9, 14, 15]),
190+
PB15: (pb15, 15, [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15]),
191+
]);
192+
193+
gpio!(GPIOC, gpioc, Gpioc, PC, 'C', PCn, [
194+
PC0: (pc0, 0, [1, 6, 7, 8, 9, 10, 12, 15]),
195+
PC1: (pc1, 1, [0, 2, 5, 6, 7, 8, 9, 10, 11, 15]),
196+
PC2: (pc2, 2, [0, 1, 2, 5, 6, 9, 11, 12, 15]),
197+
PC3: (pc3, 3, [0, 2, 3, 5, 6, 9, 11, 12, 15]),
198+
PC4: (pc4, 4, [1, 2, 3, 5, 7, 11, 12, 15]),
199+
PC5: (pc5, 5, [1, 2, 4, 6, 7, 10, 11, 12, 15]),
200+
PC6: (pc6, 6, [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15]),
201+
PC7: (pc7, 7, [0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 15]),
202+
PC8: (pc8, 8, [0, 2, 3, 7, 8, 9, 10, 11, 12, 13, 15]),
203+
PC9: (pc9, 9, [0, 2, 3, 4, 5, 8, 9, 11, 12, 13, 15]),
204+
PC10: (pc10, 10, [2, 6, 7, 8, 9, 11, 12, 13, 15]),
205+
PC11: (pc11, 11, [2, 6, 7, 8, 9, 12, 13, 15]),
206+
PC12: (pc12, 12, [0, 2, 5, 6, 7, 8, 12, 13, 15]),
207+
PC13: (pc13, 13, [15]),
208+
PC14: (pc14, 14, [15]),
209+
PC15: (pc15, 15, [15]),
210+
]);
211+
212+
gpio!(GPIOD, gpiod, Gpiod, PD, 'D', PDn, [
213+
PD0: (pd0, 0, [3, 8, 9, 11, 12, 15]),
214+
PD1: (pd1, 1, [8, 9, 12, 15]),
215+
PD2: (pd2, 2, [0, 2, 4, 8, 12, 13, 14, 15]),
216+
PD3: (pd3, 3, [5, 7, 12, 13, 15]),
217+
PD4: (pd4, 4, [7, 10, 12, 15]),
218+
PD5: (pd5, 5, [1, 5, 7, 9, 10, 12, 15]),
219+
PD6: (pd6, 6, [2, 5, 6, 7, 10, 11, 12, 13, 15]),
220+
PD7: (pd7, 7, [5, 7, 10, 11, 12, 14, 15]),
221+
PD8: (pd8, 8, [7, 9, 12, 15]),
222+
PD9: (pd9, 9, [7, 9, 12, 15]),
223+
PD10: (pd10, 10, [3, 7, 12, 15]),
224+
PD11: (pd11, 11, [2, 3, 4, 7, 8, 9, 10, 12, 15]),
225+
PD12: (pd12, 12, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15]),
226+
PD13: (pd13, 13, [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15]),
227+
PD14: (pd14, 14, [2, 8, 11, 12, 15]),
228+
PD15: (pd15, 15, [2, 8, 11, 12, 15]),
229+
]);
230+
231+
gpio!(GPIOE, gpioe, Gpioe, PE, 'E', PEn, [
232+
PE0: (pe0, 0, [1, 2, 3, 4, 6, 8, 9, 10, 12, 13, 15]),
233+
PE1: (pe1, 1, [1, 8, 9, 12, 13, 15]),
234+
PE2: (pe2, 2, [0, 1, 2, 5, 6, 7, 8, 9, 11, 12, 13, 15]),
235+
PE3: (pe3, 3, [0, 4, 6, 7, 12, 15]),
236+
PE4: (pe4, 4, [0, 2, 4, 5, 6, 12, 13, 15]),
237+
PE5: (pe5, 5, [0, 2, 4, 5, 6, 12, 13, 15]),
238+
PE6: (pe6, 6, [0, 1, 2, 4, 5, 6, 10, 12, 13, 15]),
239+
PE7: (pe7, 7, [1, 6, 7, 10, 12, 15]),
240+
PE8: (pe8, 8, [1, 6, 7, 10, 12, 15]),
241+
PE9: (pe9, 9, [1, 6, 7, 10, 12, 15]),
242+
PE10: (pe10, 10, [1, 6,10, 12, 7]),
243+
PE11: (pe11, 11, [1, 4, 5, 6, 10, 12, 15]),
244+
PE12: (pe12, 12, [1, 5, 10, 12, 15]),
245+
PE13: (pe13, 13, [1, 5, 10, 12, 15]),
246+
PE14: (pe14, 14, [1, 5, 10, 12, 15]),
247+
PE15: (pe15, 15, [1, 3, 7, 12, 15]),
248+
]);
249+
250+
gpio!(GPIOF, gpiof, Gpiof, PF, 'F', PFn, [
251+
PF0: (pf0, 0, [4, 12, 13, 15]),
252+
PF1: (pf1, 1, [4, 12, 13, 15]),
253+
PF2: (pf2, 2, [2, 3, 4, 6, 7, 12, 13, 15]),
254+
PF3: (pf3, 3, [2, 7, 12, 13, 15]),
255+
PF4: (pf4, 4, [2, 7, 12, 15]),
256+
PF5: (pf5, 5, [2, 4, 5, 6, 7, 12, 14, 15]),
257+
PF6: (pf6, 6, [1, 5, 6, 7, 10, 13, 15]),
258+
PF7: (pf7, 7, [1, 5, 6, 7, 10, 13, 15]),
259+
PF8: (pf8, 8, [1, 5, 6, 7, 9, 10, 13, 15]),
260+
PF9: (pf9, 9, [1, 5, 6, 7, 9, 10, 13, 15]),
261+
PF10: (pf10, 10, [1, 2, 4, 9, 13, 15]),
262+
PF11: (pf11, 11, [5, 9, 10, 12, 13, 14, 15]),
263+
PF12: (pf12, 12, [12, 14, 15]),
264+
PF13: (pf13, 13, [4, 12, 14, 15]),
265+
PF14: (pf14, 14, [12, 14, 15]),
266+
PF15: (pf15, 15, [4, 5, 12, 15]),
267+
]);
268+
269+
gpio!(GPIOG, gpiog, Gpiog, PG, 'G', PGn, [
270+
PG0: (pg0, 0, [11, 12, 14, 15]),
271+
PG1: (pg1, 1, [7, 11, 12, 15]),
272+
PG2: (pg2, 2, [3, 7, 12, 14, 15]),
273+
PG3: (pg3, 3, [3, 7, 12, 13, 15]),
274+
PG4: (pg4, 4, [1, 12, 14, 15]),
275+
PG5: (pg5, 5, [1, 12, 15]),
276+
PG6: (pg6, 6, [1, 3, 4, 5, 10, 11, 12, 13, 15]),
277+
PG7: (pg7, 7, [2, 3, 4, 6, 7, 11, 12, 13, 15]),
278+
PG8: (pg8, 8, [3, 5, 7, 11, 12, 15]),
279+
PG9: (pg9, 9, [5, 7, 9, 10, 11, 12, 13, 15]),
280+
PG10: (pg10, 10, [5, 10, 11, 12, 13, 15]),
281+
PG11: (pg11, 11, [1, 5, 6, 7, 10, 11, 13, 15]),
282+
PG12: (pg12, 12, [1, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15]),
283+
PG13: (pg13, 13, [0, 1, 5, 6, 7, 10, 11, 12, 13, 15]),
284+
PG14: (pg14, 14, [0, 1, 4, 5, 6, 7, 10, 11, 12, 13, 15]),
285+
PG15: (pg15, 15, [5, 6, 7, 12, 13, 15]),
286+
]);
287+
288+
gpio!(GPIOH, gpioh, Gpioh, PH, 'H', PHn, [
289+
PH0: (ph0, 0, [15]),
290+
PH1: (ph1, 1, [15]),
291+
PH2: (ph2, 2, [1, 9, 10, 11, 12, 15]),
292+
PH3: (ph3, 3, [9, 10, 11, 12, 15]),
293+
PH4: (ph4, 4, [4, 5, 7, 13, 15]),
294+
PH5: (ph5, 5, [4, 5, 7, 12, 15]),
295+
PH6: (ph6, 6, [1, 2, 3, 4, 5, 11, 12, 13, 15]),
296+
PH7: (ph7, 7, [1, 3, 4, 5, 11, 12, 13, 15]),
297+
PH8: (ph8, 8, [1, 2, 3, 4, 5, 13, 15]),
298+
PH9: (ph9, 9, [1, 2, 3, 4, 5, 13, 15]),
299+
PH10: (ph10, 10, [1, 2, 3, 4, 5, 13, 15]),
300+
PH11: (ph11, 11, [1, 2, 3, 4, 5, 13, 15]),
301+
PH12: (ph12, 12, [1, 2, 3, 4, 5, 10, 13, 15]),
302+
PH13: (ph13, 13, [1, 3, 7, 8, 9, 13, 15]),
303+
PH14: (ph14, 14, [3, 8, 9, 13, 15]),
304+
PH15: (ph15, 15, [3, 13, 15]),
305+
]);
306+
307+
gpio!(GPIOI, gpioi, Gpioi, PI, 'I', PIn, [
308+
PI0: (pi0, 0, [2, 5, 13, 15]),
309+
PI1: (pi1, 1, [3, 5, 13, 15]),
310+
PI2: (pi2, 2, [3, 5, 13, 15]),
311+
PI3: (pi3, 3, [3, 5, 13, 15]),
312+
PI4: (pi4, 4, [3, 7, 10, 13, 15]),
313+
PI5: (pi5, 5, [3, 10, 13, 15]),
314+
PI6: (pi6, 6, [3, 10, 13, 15]),
315+
PI7: (pi7, 7, [3, 10, 13, 15]),
316+
PI8: (pi8, 8, [15]),
317+
PI9: (pi9, 9, [8, 9, 15]),
318+
PI10: (pi10, 10, [9, 11, 13, 15]),
319+
PI11: (pi11, 11, [13, 15]),
320+
]);
321+
155322
impl<const P: char> Gpio<P> {
156323
pub(crate) const fn ptr() -> *const crate::pac::gpioa::RegisterBlock {
157324
match P {

0 commit comments

Comments
 (0)