1mod exti;
2mod fast_pin;
3mod pin;
4mod port;
5
6pub use exti::*;
7pub use fast_pin::*;
8pub use pin::*;
9pub use port::*;
10
11pub use crate::ll_api::PinNum;
12pub use crate::ll_api::PortNum;
13pub use embassy_hal_internal::{Peri, PeripheralType};
14
15#[allow(unused)]
16#[macro_export]
17macro_rules! foreach_pin {
18 ($($pat:tt => $code:tt;)*) => {
19 macro_rules! __foreach_pin_inner {
20 $(($pat) => $code;)*
21 ($_:tt) => {}
22 }
23 __foreach_pin_inner!((PA0, 0, 0));
24 __foreach_pin_inner!((PA1, 0, 1));
25 __foreach_pin_inner!((PA2, 0, 2));
26 __foreach_pin_inner!((PA3, 0, 3));
27 __foreach_pin_inner!((PA4, 0, 4));
28 __foreach_pin_inner!((PA5, 0, 5));
29 __foreach_pin_inner!((PA6, 0, 6));
30 __foreach_pin_inner!((PA7, 0, 7));
31 __foreach_pin_inner!((PA8, 0, 8));
32 __foreach_pin_inner!((PA9, 0, 9));
33 __foreach_pin_inner!((PA10,0,10));
34 __foreach_pin_inner!((PA11,0,11));
35 __foreach_pin_inner!((PA12,0,12));
36 __foreach_pin_inner!((PA13,0,13));
37 __foreach_pin_inner!((PA14,0,14));
38 __foreach_pin_inner!((PA15,0,15));
39 __foreach_pin_inner!((PB0, 1, 0));
40 __foreach_pin_inner!((PB1, 1, 1));
41 __foreach_pin_inner!((PB2, 1, 2));
42 __foreach_pin_inner!((PB3, 1, 3));
43 __foreach_pin_inner!((PB4, 1, 4));
44 __foreach_pin_inner!((PB5, 1, 5));
45 __foreach_pin_inner!((PB6, 1, 6));
46 __foreach_pin_inner!((PB7, 1, 7));
47 __foreach_pin_inner!((PB8, 1, 8));
48 __foreach_pin_inner!((PB9, 1, 9));
49 __foreach_pin_inner!((PB10,1,10));
50 __foreach_pin_inner!((PB11,1,11));
51 __foreach_pin_inner!((PB12,1,12));
52 __foreach_pin_inner!((PB13,1,13));
53 __foreach_pin_inner!((PB14,1,14));
54 __foreach_pin_inner!((PB15,1,15));
55 __foreach_pin_inner!((PC0, 2, 0));
56 __foreach_pin_inner!((PC1, 2, 1));
57 __foreach_pin_inner!((PC2, 2, 2));
58 __foreach_pin_inner!((PC3, 2, 3));
59 __foreach_pin_inner!((PC4, 2, 4));
60 __foreach_pin_inner!((PC5, 2, 5));
61 __foreach_pin_inner!((PC6, 2, 6));
62 __foreach_pin_inner!((PC7, 2, 7));
63 __foreach_pin_inner!((PC8, 2, 8));
64 __foreach_pin_inner!((PC9, 2, 9));
65 __foreach_pin_inner!((PC10,2,10));
66 __foreach_pin_inner!((PC11,2,11));
67 __foreach_pin_inner!((PC12,2,12));
68 __foreach_pin_inner!((PC13,2,13));
69 __foreach_pin_inner!((PC14,2,14));
70 __foreach_pin_inner!((PC15,2,15));
71 __foreach_pin_inner!((PD0, 3, 0));
72 __foreach_pin_inner!((PD1, 3, 1));
73 __foreach_pin_inner!((PD2, 3, 2));
74 __foreach_pin_inner!((PD3, 3, 3));
75 __foreach_pin_inner!((PD4, 3, 4));
76 __foreach_pin_inner!((PD5, 3, 5));
77 __foreach_pin_inner!((PD6, 3, 6));
78 __foreach_pin_inner!((PD7, 3, 7));
79 __foreach_pin_inner!((PD8, 3, 8));
80 __foreach_pin_inner!((PD9, 3, 9));
81 __foreach_pin_inner!((PD10,3,10));
82 __foreach_pin_inner!((PD11,3,11));
83 __foreach_pin_inner!((PD12,3,12));
84 __foreach_pin_inner!((PD13,3,13));
85 __foreach_pin_inner!((PD14,3,14));
86 __foreach_pin_inner!((PD15,3,15));
87 __foreach_pin_inner!((PE0, 4, 0));
88 __foreach_pin_inner!((PE1, 4, 1));
89 __foreach_pin_inner!((PE2, 4, 2));
90 __foreach_pin_inner!((PE3, 4, 3));
91 __foreach_pin_inner!((PE4, 4, 4));
92 __foreach_pin_inner!((PE5, 4, 5));
93 __foreach_pin_inner!((PE6, 4, 6));
94 __foreach_pin_inner!((PE7, 4, 7));
95 __foreach_pin_inner!((PE8, 4, 8));
96 __foreach_pin_inner!((PE9, 4, 9));
97 __foreach_pin_inner!((PE10,4,10));
98 __foreach_pin_inner!((PE11,4,11));
99 __foreach_pin_inner!((PE12,4,12));
100 __foreach_pin_inner!((PE13,4,13));
101 __foreach_pin_inner!((PE14,4,14));
102 __foreach_pin_inner!((PE15,4,15));
103 __foreach_pin_inner!((PF0, 5, 0));
104 __foreach_pin_inner!((PF1, 5, 1));
105 __foreach_pin_inner!((PF2, 5, 2));
106 __foreach_pin_inner!((PF3, 5, 3));
107 __foreach_pin_inner!((PF4, 5, 4));
108 __foreach_pin_inner!((PF5, 5, 5));
109 __foreach_pin_inner!((PF6, 5, 6));
110 __foreach_pin_inner!((PF7, 5, 7));
111 __foreach_pin_inner!((PF8, 5, 8));
112 __foreach_pin_inner!((PF9, 5, 9));
113 __foreach_pin_inner!((PF10,5,10));
114 __foreach_pin_inner!((PF11,5,11));
115 __foreach_pin_inner!((PF12,5,12));
116 __foreach_pin_inner!((PF13,5,13));
117 __foreach_pin_inner!((PF14,5,14));
118 __foreach_pin_inner!((PF15,5,15));
119 __foreach_pin_inner!((PG0, 6, 0));
120 __foreach_pin_inner!((PG1, 6, 1));
121 __foreach_pin_inner!((PG2, 6, 2));
122 __foreach_pin_inner!((PG3, 6, 3));
123 __foreach_pin_inner!((PG4, 6, 4));
124 __foreach_pin_inner!((PG5, 6, 5));
125 __foreach_pin_inner!((PG6, 6, 6));
126 __foreach_pin_inner!((PG7, 6, 7));
127 __foreach_pin_inner!((PG8, 6, 8));
128 __foreach_pin_inner!((PG9, 6, 9));
129 __foreach_pin_inner!((PG10,6,10));
130 __foreach_pin_inner!((PG11,6,11));
131 __foreach_pin_inner!((PG12,6,12));
132 __foreach_pin_inner!((PG13,6,13));
133 __foreach_pin_inner!((PG14,6,14));
134 __foreach_pin_inner!((PG15,6,15));
135 __foreach_pin_inner!((PH0, 7, 0));
136 __foreach_pin_inner!((PH1, 7, 1));
137 __foreach_pin_inner!((PH2, 7, 2));
138 __foreach_pin_inner!((PH3, 7, 3));
139 __foreach_pin_inner!((PH4, 7, 4));
140 __foreach_pin_inner!((PH5, 7, 5));
141 __foreach_pin_inner!((PH6, 7, 6));
142 __foreach_pin_inner!((PH7, 7, 7));
143 __foreach_pin_inner!((PH8, 7, 8));
144 __foreach_pin_inner!((PH9, 7, 9));
145 __foreach_pin_inner!((PH10,7,10));
146 __foreach_pin_inner!((PH11,7,11));
147 __foreach_pin_inner!((PH12,7,12));
148 __foreach_pin_inner!((PH13,7,13));
149 __foreach_pin_inner!((PH14,7,14));
150 __foreach_pin_inner!((PH15,7,15));
151 };
152}