New SPI API supporting DMA
[betaflight.git] / src / main / drivers / io_def_generated.h
blob1848da4a1f0d54aa39c7ddb6e6f3a49068bc3a23
1 /*
2 * This file is part of Cleanflight and Betaflight.
4 * Cleanflight and Betaflight are free software. You can redistribute
5 * this software and/or modify this software under the terms of the
6 * GNU General Public License as published by the Free Software
7 * Foundation, either version 3 of the License, or (at your option)
8 * any later version.
10 * Cleanflight and Betaflight are distributed in the hope that they
11 * will be useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this software.
18 * If not, see <http://www.gnu.org/licenses/>.
21 #pragma once
23 // this file is automatically generated by src/utils/def_generated.pl script
24 // do not modify this file directly, your changes will be lost
26 // DEFIO_PORT_<port>_USED_MASK is bitmask of used pins on target
27 // DEFIO_PORT_<port>_USED_COUNT is count of used pins on target
29 #if defined(TARGET_IO_PORTA)
30 # define DEFIO_PORT_A_USED_MASK TARGET_IO_PORTA
31 # define DEFIO_PORT_A_USED_COUNT BITCOUNT(DEFIO_PORT_A_USED_MASK)
32 #else
33 # define DEFIO_PORT_A_USED_MASK 0
34 # define DEFIO_PORT_A_USED_COUNT 0
35 #endif
36 #define DEFIO_PORT_A_OFFSET (0)
38 #if defined(TARGET_IO_PORTB)
39 # define DEFIO_PORT_B_USED_MASK TARGET_IO_PORTB
40 # define DEFIO_PORT_B_USED_COUNT BITCOUNT(DEFIO_PORT_B_USED_MASK)
41 #else
42 # define DEFIO_PORT_B_USED_MASK 0
43 # define DEFIO_PORT_B_USED_COUNT 0
44 #endif
45 #define DEFIO_PORT_B_OFFSET (DEFIO_PORT_A_USED_COUNT)
47 #if defined(TARGET_IO_PORTC)
48 # define DEFIO_PORT_C_USED_MASK TARGET_IO_PORTC
49 # define DEFIO_PORT_C_USED_COUNT BITCOUNT(DEFIO_PORT_C_USED_MASK)
50 #else
51 # define DEFIO_PORT_C_USED_MASK 0
52 # define DEFIO_PORT_C_USED_COUNT 0
53 #endif
54 #define DEFIO_PORT_C_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
56 #if defined(TARGET_IO_PORTD)
57 # define DEFIO_PORT_D_USED_MASK TARGET_IO_PORTD
58 # define DEFIO_PORT_D_USED_COUNT BITCOUNT(DEFIO_PORT_D_USED_MASK)
59 #else
60 # define DEFIO_PORT_D_USED_MASK 0
61 # define DEFIO_PORT_D_USED_COUNT 0
62 #endif
63 #define DEFIO_PORT_D_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
65 #if defined(TARGET_IO_PORTE)
66 # define DEFIO_PORT_E_USED_MASK TARGET_IO_PORTE
67 # define DEFIO_PORT_E_USED_COUNT BITCOUNT(DEFIO_PORT_E_USED_MASK)
68 #else
69 # define DEFIO_PORT_E_USED_MASK 0
70 # define DEFIO_PORT_E_USED_COUNT 0
71 #endif
72 #define DEFIO_PORT_E_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
74 #if defined(TARGET_IO_PORTF)
75 # define DEFIO_PORT_F_USED_MASK TARGET_IO_PORTF
76 # define DEFIO_PORT_F_USED_COUNT BITCOUNT(DEFIO_PORT_F_USED_MASK)
77 #else
78 # define DEFIO_PORT_F_USED_MASK 0
79 # define DEFIO_PORT_F_USED_COUNT 0
80 #endif
81 #define DEFIO_PORT_F_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
83 #if defined(TARGET_IO_PORTG)
84 # define DEFIO_PORT_G_USED_MASK TARGET_IO_PORTG
85 # define DEFIO_PORT_G_USED_COUNT BITCOUNT(DEFIO_PORT_G_USED_MASK)
86 #else
87 # define DEFIO_PORT_G_USED_MASK 0
88 # define DEFIO_PORT_G_USED_COUNT 0
89 #endif
90 #define DEFIO_PORT_G_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
92 #if defined(TARGET_IO_PORTH)
93 # define DEFIO_PORT_H_USED_MASK TARGET_IO_PORTH
94 # define DEFIO_PORT_H_USED_COUNT BITCOUNT(DEFIO_PORT_H_USED_MASK)
95 #else
96 # define DEFIO_PORT_H_USED_MASK 0
97 # define DEFIO_PORT_H_USED_COUNT 0
98 #endif
99 #define DEFIO_PORT_H_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
103 // DEFIO_GPIOID__<port> maps to port index
104 #define DEFIO_GPIOID__A 0
105 #define DEFIO_GPIOID__B 1
106 #define DEFIO_GPIOID__C 2
107 #define DEFIO_GPIOID__D 3
108 #define DEFIO_GPIOID__E 4
109 #define DEFIO_GPIOID__F 5
110 #define DEFIO_GPIOID__G 6
111 #define DEFIO_GPIOID__H 7
113 // DEFIO_TAG__P<port><pin> will expand to TAG if defined for target, error is triggered otherwise
114 // DEFIO_TAG_E__P<port><pin> will expand to TAG if defined, to NONE otherwise (usefull for tables that are CPU-specific)
115 // DEFIO_REC__P<port><pin> will expand to ioRec* (using DEFIO_REC_INDEX(idx))
117 #if DEFIO_PORT_A_USED_MASK & BIT(0)
118 # define DEFIO_TAG__PA0 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 0)
119 # define DEFIO_TAG_E__PA0 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 0)
120 # define DEFIO_REC__PA0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(0) - 1)) + 0)
121 #else
122 # define DEFIO_TAG__PA0 defio_error_PA0_is_not_supported_on_TARGET
123 # define DEFIO_TAG_E__PA0 DEFIO_TAG_E__NONE
124 # define DEFIO_REC__PA0 defio_error_PA0_is_not_supported_on_TARGET
125 #endif
126 #if DEFIO_PORT_A_USED_MASK & BIT(1)
127 # define DEFIO_TAG__PA1 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 1)
128 # define DEFIO_TAG_E__PA1 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 1)
129 # define DEFIO_REC__PA1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(1) - 1)) + 0)
130 #else
131 # define DEFIO_TAG__PA1 defio_error_PA1_is_not_supported_on_TARGET
132 # define DEFIO_TAG_E__PA1 DEFIO_TAG_E__NONE
133 # define DEFIO_REC__PA1 defio_error_PA1_is_not_supported_on_TARGET
134 #endif
135 #if DEFIO_PORT_A_USED_MASK & BIT(2)
136 # define DEFIO_TAG__PA2 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 2)
137 # define DEFIO_TAG_E__PA2 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 2)
138 # define DEFIO_REC__PA2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(2) - 1)) + 0)
139 #else
140 # define DEFIO_TAG__PA2 defio_error_PA2_is_not_supported_on_TARGET
141 # define DEFIO_TAG_E__PA2 DEFIO_TAG_E__NONE
142 # define DEFIO_REC__PA2 defio_error_PA2_is_not_supported_on_TARGET
143 #endif
144 #if DEFIO_PORT_A_USED_MASK & BIT(3)
145 # define DEFIO_TAG__PA3 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 3)
146 # define DEFIO_TAG_E__PA3 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 3)
147 # define DEFIO_REC__PA3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(3) - 1)) + 0)
148 #else
149 # define DEFIO_TAG__PA3 defio_error_PA3_is_not_supported_on_TARGET
150 # define DEFIO_TAG_E__PA3 DEFIO_TAG_E__NONE
151 # define DEFIO_REC__PA3 defio_error_PA3_is_not_supported_on_TARGET
152 #endif
153 #if DEFIO_PORT_A_USED_MASK & BIT(4)
154 # define DEFIO_TAG__PA4 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 4)
155 # define DEFIO_TAG_E__PA4 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 4)
156 # define DEFIO_REC__PA4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(4) - 1)) + 0)
157 #else
158 # define DEFIO_TAG__PA4 defio_error_PA4_is_not_supported_on_TARGET
159 # define DEFIO_TAG_E__PA4 DEFIO_TAG_E__NONE
160 # define DEFIO_REC__PA4 defio_error_PA4_is_not_supported_on_TARGET
161 #endif
162 #if DEFIO_PORT_A_USED_MASK & BIT(5)
163 # define DEFIO_TAG__PA5 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 5)
164 # define DEFIO_TAG_E__PA5 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 5)
165 # define DEFIO_REC__PA5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(5) - 1)) + 0)
166 #else
167 # define DEFIO_TAG__PA5 defio_error_PA5_is_not_supported_on_TARGET
168 # define DEFIO_TAG_E__PA5 DEFIO_TAG_E__NONE
169 # define DEFIO_REC__PA5 defio_error_PA5_is_not_supported_on_TARGET
170 #endif
171 #if DEFIO_PORT_A_USED_MASK & BIT(6)
172 # define DEFIO_TAG__PA6 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 6)
173 # define DEFIO_TAG_E__PA6 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 6)
174 # define DEFIO_REC__PA6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(6) - 1)) + 0)
175 #else
176 # define DEFIO_TAG__PA6 defio_error_PA6_is_not_supported_on_TARGET
177 # define DEFIO_TAG_E__PA6 DEFIO_TAG_E__NONE
178 # define DEFIO_REC__PA6 defio_error_PA6_is_not_supported_on_TARGET
179 #endif
180 #if DEFIO_PORT_A_USED_MASK & BIT(7)
181 # define DEFIO_TAG__PA7 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 7)
182 # define DEFIO_TAG_E__PA7 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 7)
183 # define DEFIO_REC__PA7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(7) - 1)) + 0)
184 #else
185 # define DEFIO_TAG__PA7 defio_error_PA7_is_not_supported_on_TARGET
186 # define DEFIO_TAG_E__PA7 DEFIO_TAG_E__NONE
187 # define DEFIO_REC__PA7 defio_error_PA7_is_not_supported_on_TARGET
188 #endif
189 #if DEFIO_PORT_A_USED_MASK & BIT(8)
190 # define DEFIO_TAG__PA8 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 8)
191 # define DEFIO_TAG_E__PA8 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 8)
192 # define DEFIO_REC__PA8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(8) - 1)) + 0)
193 #else
194 # define DEFIO_TAG__PA8 defio_error_PA8_is_not_supported_on_TARGET
195 # define DEFIO_TAG_E__PA8 DEFIO_TAG_E__NONE
196 # define DEFIO_REC__PA8 defio_error_PA8_is_not_supported_on_TARGET
197 #endif
198 #if DEFIO_PORT_A_USED_MASK & BIT(9)
199 # define DEFIO_TAG__PA9 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 9)
200 # define DEFIO_TAG_E__PA9 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 9)
201 # define DEFIO_REC__PA9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(9) - 1)) + 0)
202 #else
203 # define DEFIO_TAG__PA9 defio_error_PA9_is_not_supported_on_TARGET
204 # define DEFIO_TAG_E__PA9 DEFIO_TAG_E__NONE
205 # define DEFIO_REC__PA9 defio_error_PA9_is_not_supported_on_TARGET
206 #endif
207 #if DEFIO_PORT_A_USED_MASK & BIT(10)
208 # define DEFIO_TAG__PA10 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 10)
209 # define DEFIO_TAG_E__PA10 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 10)
210 # define DEFIO_REC__PA10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(10) - 1)) + 0)
211 #else
212 # define DEFIO_TAG__PA10 defio_error_PA10_is_not_supported_on_TARGET
213 # define DEFIO_TAG_E__PA10 DEFIO_TAG_E__NONE
214 # define DEFIO_REC__PA10 defio_error_PA10_is_not_supported_on_TARGET
215 #endif
216 #if DEFIO_PORT_A_USED_MASK & BIT(11)
217 # define DEFIO_TAG__PA11 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 11)
218 # define DEFIO_TAG_E__PA11 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 11)
219 # define DEFIO_REC__PA11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(11) - 1)) + 0)
220 #else
221 # define DEFIO_TAG__PA11 defio_error_PA11_is_not_supported_on_TARGET
222 # define DEFIO_TAG_E__PA11 DEFIO_TAG_E__NONE
223 # define DEFIO_REC__PA11 defio_error_PA11_is_not_supported_on_TARGET
224 #endif
225 #if DEFIO_PORT_A_USED_MASK & BIT(12)
226 # define DEFIO_TAG__PA12 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 12)
227 # define DEFIO_TAG_E__PA12 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 12)
228 # define DEFIO_REC__PA12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(12) - 1)) + 0)
229 #else
230 # define DEFIO_TAG__PA12 defio_error_PA12_is_not_supported_on_TARGET
231 # define DEFIO_TAG_E__PA12 DEFIO_TAG_E__NONE
232 # define DEFIO_REC__PA12 defio_error_PA12_is_not_supported_on_TARGET
233 #endif
234 #if DEFIO_PORT_A_USED_MASK & BIT(13)
235 # define DEFIO_TAG__PA13 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 13)
236 # define DEFIO_TAG_E__PA13 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 13)
237 # define DEFIO_REC__PA13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(13) - 1)) + 0)
238 #else
239 # define DEFIO_TAG__PA13 defio_error_PA13_is_not_supported_on_TARGET
240 # define DEFIO_TAG_E__PA13 DEFIO_TAG_E__NONE
241 # define DEFIO_REC__PA13 defio_error_PA13_is_not_supported_on_TARGET
242 #endif
243 #if DEFIO_PORT_A_USED_MASK & BIT(14)
244 # define DEFIO_TAG__PA14 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 14)
245 # define DEFIO_TAG_E__PA14 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 14)
246 # define DEFIO_REC__PA14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(14) - 1)) + 0)
247 #else
248 # define DEFIO_TAG__PA14 defio_error_PA14_is_not_supported_on_TARGET
249 # define DEFIO_TAG_E__PA14 DEFIO_TAG_E__NONE
250 # define DEFIO_REC__PA14 defio_error_PA14_is_not_supported_on_TARGET
251 #endif
252 #if DEFIO_PORT_A_USED_MASK & BIT(15)
253 # define DEFIO_TAG__PA15 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 15)
254 # define DEFIO_TAG_E__PA15 DEFIO_TAG_MAKE(DEFIO_GPIOID__A, 15)
255 # define DEFIO_REC__PA15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_A_USED_MASK & (BIT(15) - 1)) + 0)
256 #else
257 # define DEFIO_TAG__PA15 defio_error_PA15_is_not_supported_on_TARGET
258 # define DEFIO_TAG_E__PA15 DEFIO_TAG_E__NONE
259 # define DEFIO_REC__PA15 defio_error_PA15_is_not_supported_on_TARGET
260 #endif
261 #if DEFIO_PORT_B_USED_MASK & BIT(0)
262 # define DEFIO_TAG__PB0 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 0)
263 # define DEFIO_TAG_E__PB0 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 0)
264 # define DEFIO_REC__PB0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT)
265 #else
266 # define DEFIO_TAG__PB0 defio_error_PB0_is_not_supported_on_TARGET
267 # define DEFIO_TAG_E__PB0 DEFIO_TAG_E__NONE
268 # define DEFIO_REC__PB0 defio_error_PB0_is_not_supported_on_TARGET
269 #endif
270 #if DEFIO_PORT_B_USED_MASK & BIT(1)
271 # define DEFIO_TAG__PB1 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 1)
272 # define DEFIO_TAG_E__PB1 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 1)
273 # define DEFIO_REC__PB1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT)
274 #else
275 # define DEFIO_TAG__PB1 defio_error_PB1_is_not_supported_on_TARGET
276 # define DEFIO_TAG_E__PB1 DEFIO_TAG_E__NONE
277 # define DEFIO_REC__PB1 defio_error_PB1_is_not_supported_on_TARGET
278 #endif
279 #if DEFIO_PORT_B_USED_MASK & BIT(2)
280 # define DEFIO_TAG__PB2 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 2)
281 # define DEFIO_TAG_E__PB2 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 2)
282 # define DEFIO_REC__PB2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT)
283 #else
284 # define DEFIO_TAG__PB2 defio_error_PB2_is_not_supported_on_TARGET
285 # define DEFIO_TAG_E__PB2 DEFIO_TAG_E__NONE
286 # define DEFIO_REC__PB2 defio_error_PB2_is_not_supported_on_TARGET
287 #endif
288 #if DEFIO_PORT_B_USED_MASK & BIT(3)
289 # define DEFIO_TAG__PB3 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 3)
290 # define DEFIO_TAG_E__PB3 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 3)
291 # define DEFIO_REC__PB3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT)
292 #else
293 # define DEFIO_TAG__PB3 defio_error_PB3_is_not_supported_on_TARGET
294 # define DEFIO_TAG_E__PB3 DEFIO_TAG_E__NONE
295 # define DEFIO_REC__PB3 defio_error_PB3_is_not_supported_on_TARGET
296 #endif
297 #if DEFIO_PORT_B_USED_MASK & BIT(4)
298 # define DEFIO_TAG__PB4 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 4)
299 # define DEFIO_TAG_E__PB4 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 4)
300 # define DEFIO_REC__PB4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT)
301 #else
302 # define DEFIO_TAG__PB4 defio_error_PB4_is_not_supported_on_TARGET
303 # define DEFIO_TAG_E__PB4 DEFIO_TAG_E__NONE
304 # define DEFIO_REC__PB4 defio_error_PB4_is_not_supported_on_TARGET
305 #endif
306 #if DEFIO_PORT_B_USED_MASK & BIT(5)
307 # define DEFIO_TAG__PB5 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 5)
308 # define DEFIO_TAG_E__PB5 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 5)
309 # define DEFIO_REC__PB5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT)
310 #else
311 # define DEFIO_TAG__PB5 defio_error_PB5_is_not_supported_on_TARGET
312 # define DEFIO_TAG_E__PB5 DEFIO_TAG_E__NONE
313 # define DEFIO_REC__PB5 defio_error_PB5_is_not_supported_on_TARGET
314 #endif
315 #if DEFIO_PORT_B_USED_MASK & BIT(6)
316 # define DEFIO_TAG__PB6 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 6)
317 # define DEFIO_TAG_E__PB6 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 6)
318 # define DEFIO_REC__PB6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT)
319 #else
320 # define DEFIO_TAG__PB6 defio_error_PB6_is_not_supported_on_TARGET
321 # define DEFIO_TAG_E__PB6 DEFIO_TAG_E__NONE
322 # define DEFIO_REC__PB6 defio_error_PB6_is_not_supported_on_TARGET
323 #endif
324 #if DEFIO_PORT_B_USED_MASK & BIT(7)
325 # define DEFIO_TAG__PB7 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 7)
326 # define DEFIO_TAG_E__PB7 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 7)
327 # define DEFIO_REC__PB7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT)
328 #else
329 # define DEFIO_TAG__PB7 defio_error_PB7_is_not_supported_on_TARGET
330 # define DEFIO_TAG_E__PB7 DEFIO_TAG_E__NONE
331 # define DEFIO_REC__PB7 defio_error_PB7_is_not_supported_on_TARGET
332 #endif
333 #if DEFIO_PORT_B_USED_MASK & BIT(8)
334 # define DEFIO_TAG__PB8 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 8)
335 # define DEFIO_TAG_E__PB8 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 8)
336 # define DEFIO_REC__PB8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT)
337 #else
338 # define DEFIO_TAG__PB8 defio_error_PB8_is_not_supported_on_TARGET
339 # define DEFIO_TAG_E__PB8 DEFIO_TAG_E__NONE
340 # define DEFIO_REC__PB8 defio_error_PB8_is_not_supported_on_TARGET
341 #endif
342 #if DEFIO_PORT_B_USED_MASK & BIT(9)
343 # define DEFIO_TAG__PB9 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 9)
344 # define DEFIO_TAG_E__PB9 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 9)
345 # define DEFIO_REC__PB9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT)
346 #else
347 # define DEFIO_TAG__PB9 defio_error_PB9_is_not_supported_on_TARGET
348 # define DEFIO_TAG_E__PB9 DEFIO_TAG_E__NONE
349 # define DEFIO_REC__PB9 defio_error_PB9_is_not_supported_on_TARGET
350 #endif
351 #if DEFIO_PORT_B_USED_MASK & BIT(10)
352 # define DEFIO_TAG__PB10 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 10)
353 # define DEFIO_TAG_E__PB10 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 10)
354 # define DEFIO_REC__PB10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT)
355 #else
356 # define DEFIO_TAG__PB10 defio_error_PB10_is_not_supported_on_TARGET
357 # define DEFIO_TAG_E__PB10 DEFIO_TAG_E__NONE
358 # define DEFIO_REC__PB10 defio_error_PB10_is_not_supported_on_TARGET
359 #endif
360 #if DEFIO_PORT_B_USED_MASK & BIT(11)
361 # define DEFIO_TAG__PB11 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 11)
362 # define DEFIO_TAG_E__PB11 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 11)
363 # define DEFIO_REC__PB11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT)
364 #else
365 # define DEFIO_TAG__PB11 defio_error_PB11_is_not_supported_on_TARGET
366 # define DEFIO_TAG_E__PB11 DEFIO_TAG_E__NONE
367 # define DEFIO_REC__PB11 defio_error_PB11_is_not_supported_on_TARGET
368 #endif
369 #if DEFIO_PORT_B_USED_MASK & BIT(12)
370 # define DEFIO_TAG__PB12 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 12)
371 # define DEFIO_TAG_E__PB12 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 12)
372 # define DEFIO_REC__PB12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT)
373 #else
374 # define DEFIO_TAG__PB12 defio_error_PB12_is_not_supported_on_TARGET
375 # define DEFIO_TAG_E__PB12 DEFIO_TAG_E__NONE
376 # define DEFIO_REC__PB12 defio_error_PB12_is_not_supported_on_TARGET
377 #endif
378 #if DEFIO_PORT_B_USED_MASK & BIT(13)
379 # define DEFIO_TAG__PB13 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 13)
380 # define DEFIO_TAG_E__PB13 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 13)
381 # define DEFIO_REC__PB13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT)
382 #else
383 # define DEFIO_TAG__PB13 defio_error_PB13_is_not_supported_on_TARGET
384 # define DEFIO_TAG_E__PB13 DEFIO_TAG_E__NONE
385 # define DEFIO_REC__PB13 defio_error_PB13_is_not_supported_on_TARGET
386 #endif
387 #if DEFIO_PORT_B_USED_MASK & BIT(14)
388 # define DEFIO_TAG__PB14 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 14)
389 # define DEFIO_TAG_E__PB14 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 14)
390 # define DEFIO_REC__PB14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT)
391 #else
392 # define DEFIO_TAG__PB14 defio_error_PB14_is_not_supported_on_TARGET
393 # define DEFIO_TAG_E__PB14 DEFIO_TAG_E__NONE
394 # define DEFIO_REC__PB14 defio_error_PB14_is_not_supported_on_TARGET
395 #endif
396 #if DEFIO_PORT_B_USED_MASK & BIT(15)
397 # define DEFIO_TAG__PB15 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 15)
398 # define DEFIO_TAG_E__PB15 DEFIO_TAG_MAKE(DEFIO_GPIOID__B, 15)
399 # define DEFIO_REC__PB15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_B_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT)
400 #else
401 # define DEFIO_TAG__PB15 defio_error_PB15_is_not_supported_on_TARGET
402 # define DEFIO_TAG_E__PB15 DEFIO_TAG_E__NONE
403 # define DEFIO_REC__PB15 defio_error_PB15_is_not_supported_on_TARGET
404 #endif
405 #if DEFIO_PORT_C_USED_MASK & BIT(0)
406 # define DEFIO_TAG__PC0 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 0)
407 # define DEFIO_TAG_E__PC0 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 0)
408 # define DEFIO_REC__PC0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
409 #else
410 # define DEFIO_TAG__PC0 defio_error_PC0_is_not_supported_on_TARGET
411 # define DEFIO_TAG_E__PC0 DEFIO_TAG_E__NONE
412 # define DEFIO_REC__PC0 defio_error_PC0_is_not_supported_on_TARGET
413 #endif
414 #if DEFIO_PORT_C_USED_MASK & BIT(1)
415 # define DEFIO_TAG__PC1 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 1)
416 # define DEFIO_TAG_E__PC1 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 1)
417 # define DEFIO_REC__PC1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
418 #else
419 # define DEFIO_TAG__PC1 defio_error_PC1_is_not_supported_on_TARGET
420 # define DEFIO_TAG_E__PC1 DEFIO_TAG_E__NONE
421 # define DEFIO_REC__PC1 defio_error_PC1_is_not_supported_on_TARGET
422 #endif
423 #if DEFIO_PORT_C_USED_MASK & BIT(2)
424 # define DEFIO_TAG__PC2 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 2)
425 # define DEFIO_TAG_E__PC2 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 2)
426 # define DEFIO_REC__PC2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
427 #else
428 # define DEFIO_TAG__PC2 defio_error_PC2_is_not_supported_on_TARGET
429 # define DEFIO_TAG_E__PC2 DEFIO_TAG_E__NONE
430 # define DEFIO_REC__PC2 defio_error_PC2_is_not_supported_on_TARGET
431 #endif
432 #if DEFIO_PORT_C_USED_MASK & BIT(3)
433 # define DEFIO_TAG__PC3 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 3)
434 # define DEFIO_TAG_E__PC3 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 3)
435 # define DEFIO_REC__PC3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
436 #else
437 # define DEFIO_TAG__PC3 defio_error_PC3_is_not_supported_on_TARGET
438 # define DEFIO_TAG_E__PC3 DEFIO_TAG_E__NONE
439 # define DEFIO_REC__PC3 defio_error_PC3_is_not_supported_on_TARGET
440 #endif
441 #if DEFIO_PORT_C_USED_MASK & BIT(4)
442 # define DEFIO_TAG__PC4 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 4)
443 # define DEFIO_TAG_E__PC4 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 4)
444 # define DEFIO_REC__PC4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
445 #else
446 # define DEFIO_TAG__PC4 defio_error_PC4_is_not_supported_on_TARGET
447 # define DEFIO_TAG_E__PC4 DEFIO_TAG_E__NONE
448 # define DEFIO_REC__PC4 defio_error_PC4_is_not_supported_on_TARGET
449 #endif
450 #if DEFIO_PORT_C_USED_MASK & BIT(5)
451 # define DEFIO_TAG__PC5 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 5)
452 # define DEFIO_TAG_E__PC5 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 5)
453 # define DEFIO_REC__PC5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
454 #else
455 # define DEFIO_TAG__PC5 defio_error_PC5_is_not_supported_on_TARGET
456 # define DEFIO_TAG_E__PC5 DEFIO_TAG_E__NONE
457 # define DEFIO_REC__PC5 defio_error_PC5_is_not_supported_on_TARGET
458 #endif
459 #if DEFIO_PORT_C_USED_MASK & BIT(6)
460 # define DEFIO_TAG__PC6 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 6)
461 # define DEFIO_TAG_E__PC6 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 6)
462 # define DEFIO_REC__PC6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
463 #else
464 # define DEFIO_TAG__PC6 defio_error_PC6_is_not_supported_on_TARGET
465 # define DEFIO_TAG_E__PC6 DEFIO_TAG_E__NONE
466 # define DEFIO_REC__PC6 defio_error_PC6_is_not_supported_on_TARGET
467 #endif
468 #if DEFIO_PORT_C_USED_MASK & BIT(7)
469 # define DEFIO_TAG__PC7 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 7)
470 # define DEFIO_TAG_E__PC7 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 7)
471 # define DEFIO_REC__PC7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
472 #else
473 # define DEFIO_TAG__PC7 defio_error_PC7_is_not_supported_on_TARGET
474 # define DEFIO_TAG_E__PC7 DEFIO_TAG_E__NONE
475 # define DEFIO_REC__PC7 defio_error_PC7_is_not_supported_on_TARGET
476 #endif
477 #if DEFIO_PORT_C_USED_MASK & BIT(8)
478 # define DEFIO_TAG__PC8 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 8)
479 # define DEFIO_TAG_E__PC8 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 8)
480 # define DEFIO_REC__PC8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
481 #else
482 # define DEFIO_TAG__PC8 defio_error_PC8_is_not_supported_on_TARGET
483 # define DEFIO_TAG_E__PC8 DEFIO_TAG_E__NONE
484 # define DEFIO_REC__PC8 defio_error_PC8_is_not_supported_on_TARGET
485 #endif
486 #if DEFIO_PORT_C_USED_MASK & BIT(9)
487 # define DEFIO_TAG__PC9 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 9)
488 # define DEFIO_TAG_E__PC9 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 9)
489 # define DEFIO_REC__PC9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
490 #else
491 # define DEFIO_TAG__PC9 defio_error_PC9_is_not_supported_on_TARGET
492 # define DEFIO_TAG_E__PC9 DEFIO_TAG_E__NONE
493 # define DEFIO_REC__PC9 defio_error_PC9_is_not_supported_on_TARGET
494 #endif
495 #if DEFIO_PORT_C_USED_MASK & BIT(10)
496 # define DEFIO_TAG__PC10 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 10)
497 # define DEFIO_TAG_E__PC10 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 10)
498 # define DEFIO_REC__PC10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
499 #else
500 # define DEFIO_TAG__PC10 defio_error_PC10_is_not_supported_on_TARGET
501 # define DEFIO_TAG_E__PC10 DEFIO_TAG_E__NONE
502 # define DEFIO_REC__PC10 defio_error_PC10_is_not_supported_on_TARGET
503 #endif
504 #if DEFIO_PORT_C_USED_MASK & BIT(11)
505 # define DEFIO_TAG__PC11 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 11)
506 # define DEFIO_TAG_E__PC11 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 11)
507 # define DEFIO_REC__PC11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
508 #else
509 # define DEFIO_TAG__PC11 defio_error_PC11_is_not_supported_on_TARGET
510 # define DEFIO_TAG_E__PC11 DEFIO_TAG_E__NONE
511 # define DEFIO_REC__PC11 defio_error_PC11_is_not_supported_on_TARGET
512 #endif
513 #if DEFIO_PORT_C_USED_MASK & BIT(12)
514 # define DEFIO_TAG__PC12 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 12)
515 # define DEFIO_TAG_E__PC12 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 12)
516 # define DEFIO_REC__PC12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
517 #else
518 # define DEFIO_TAG__PC12 defio_error_PC12_is_not_supported_on_TARGET
519 # define DEFIO_TAG_E__PC12 DEFIO_TAG_E__NONE
520 # define DEFIO_REC__PC12 defio_error_PC12_is_not_supported_on_TARGET
521 #endif
522 #if DEFIO_PORT_C_USED_MASK & BIT(13)
523 # define DEFIO_TAG__PC13 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 13)
524 # define DEFIO_TAG_E__PC13 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 13)
525 # define DEFIO_REC__PC13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
526 #else
527 # define DEFIO_TAG__PC13 defio_error_PC13_is_not_supported_on_TARGET
528 # define DEFIO_TAG_E__PC13 DEFIO_TAG_E__NONE
529 # define DEFIO_REC__PC13 defio_error_PC13_is_not_supported_on_TARGET
530 #endif
531 #if DEFIO_PORT_C_USED_MASK & BIT(14)
532 # define DEFIO_TAG__PC14 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 14)
533 # define DEFIO_TAG_E__PC14 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 14)
534 # define DEFIO_REC__PC14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
535 #else
536 # define DEFIO_TAG__PC14 defio_error_PC14_is_not_supported_on_TARGET
537 # define DEFIO_TAG_E__PC14 DEFIO_TAG_E__NONE
538 # define DEFIO_REC__PC14 defio_error_PC14_is_not_supported_on_TARGET
539 #endif
540 #if DEFIO_PORT_C_USED_MASK & BIT(15)
541 # define DEFIO_TAG__PC15 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 15)
542 # define DEFIO_TAG_E__PC15 DEFIO_TAG_MAKE(DEFIO_GPIOID__C, 15)
543 # define DEFIO_REC__PC15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_C_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT)
544 #else
545 # define DEFIO_TAG__PC15 defio_error_PC15_is_not_supported_on_TARGET
546 # define DEFIO_TAG_E__PC15 DEFIO_TAG_E__NONE
547 # define DEFIO_REC__PC15 defio_error_PC15_is_not_supported_on_TARGET
548 #endif
549 #if DEFIO_PORT_D_USED_MASK & BIT(0)
550 # define DEFIO_TAG__PD0 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 0)
551 # define DEFIO_TAG_E__PD0 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 0)
552 # define DEFIO_REC__PD0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
553 #else
554 # define DEFIO_TAG__PD0 defio_error_PD0_is_not_supported_on_TARGET
555 # define DEFIO_TAG_E__PD0 DEFIO_TAG_E__NONE
556 # define DEFIO_REC__PD0 defio_error_PD0_is_not_supported_on_TARGET
557 #endif
558 #if DEFIO_PORT_D_USED_MASK & BIT(1)
559 # define DEFIO_TAG__PD1 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 1)
560 # define DEFIO_TAG_E__PD1 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 1)
561 # define DEFIO_REC__PD1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
562 #else
563 # define DEFIO_TAG__PD1 defio_error_PD1_is_not_supported_on_TARGET
564 # define DEFIO_TAG_E__PD1 DEFIO_TAG_E__NONE
565 # define DEFIO_REC__PD1 defio_error_PD1_is_not_supported_on_TARGET
566 #endif
567 #if DEFIO_PORT_D_USED_MASK & BIT(2)
568 # define DEFIO_TAG__PD2 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 2)
569 # define DEFIO_TAG_E__PD2 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 2)
570 # define DEFIO_REC__PD2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
571 #else
572 # define DEFIO_TAG__PD2 defio_error_PD2_is_not_supported_on_TARGET
573 # define DEFIO_TAG_E__PD2 DEFIO_TAG_E__NONE
574 # define DEFIO_REC__PD2 defio_error_PD2_is_not_supported_on_TARGET
575 #endif
576 #if DEFIO_PORT_D_USED_MASK & BIT(3)
577 # define DEFIO_TAG__PD3 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 3)
578 # define DEFIO_TAG_E__PD3 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 3)
579 # define DEFIO_REC__PD3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
580 #else
581 # define DEFIO_TAG__PD3 defio_error_PD3_is_not_supported_on_TARGET
582 # define DEFIO_TAG_E__PD3 DEFIO_TAG_E__NONE
583 # define DEFIO_REC__PD3 defio_error_PD3_is_not_supported_on_TARGET
584 #endif
585 #if DEFIO_PORT_D_USED_MASK & BIT(4)
586 # define DEFIO_TAG__PD4 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 4)
587 # define DEFIO_TAG_E__PD4 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 4)
588 # define DEFIO_REC__PD4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
589 #else
590 # define DEFIO_TAG__PD4 defio_error_PD4_is_not_supported_on_TARGET
591 # define DEFIO_TAG_E__PD4 DEFIO_TAG_E__NONE
592 # define DEFIO_REC__PD4 defio_error_PD4_is_not_supported_on_TARGET
593 #endif
594 #if DEFIO_PORT_D_USED_MASK & BIT(5)
595 # define DEFIO_TAG__PD5 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 5)
596 # define DEFIO_TAG_E__PD5 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 5)
597 # define DEFIO_REC__PD5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
598 #else
599 # define DEFIO_TAG__PD5 defio_error_PD5_is_not_supported_on_TARGET
600 # define DEFIO_TAG_E__PD5 DEFIO_TAG_E__NONE
601 # define DEFIO_REC__PD5 defio_error_PD5_is_not_supported_on_TARGET
602 #endif
603 #if DEFIO_PORT_D_USED_MASK & BIT(6)
604 # define DEFIO_TAG__PD6 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 6)
605 # define DEFIO_TAG_E__PD6 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 6)
606 # define DEFIO_REC__PD6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
607 #else
608 # define DEFIO_TAG__PD6 defio_error_PD6_is_not_supported_on_TARGET
609 # define DEFIO_TAG_E__PD6 DEFIO_TAG_E__NONE
610 # define DEFIO_REC__PD6 defio_error_PD6_is_not_supported_on_TARGET
611 #endif
612 #if DEFIO_PORT_D_USED_MASK & BIT(7)
613 # define DEFIO_TAG__PD7 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 7)
614 # define DEFIO_TAG_E__PD7 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 7)
615 # define DEFIO_REC__PD7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
616 #else
617 # define DEFIO_TAG__PD7 defio_error_PD7_is_not_supported_on_TARGET
618 # define DEFIO_TAG_E__PD7 DEFIO_TAG_E__NONE
619 # define DEFIO_REC__PD7 defio_error_PD7_is_not_supported_on_TARGET
620 #endif
621 #if DEFIO_PORT_D_USED_MASK & BIT(8)
622 # define DEFIO_TAG__PD8 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 8)
623 # define DEFIO_TAG_E__PD8 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 8)
624 # define DEFIO_REC__PD8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
625 #else
626 # define DEFIO_TAG__PD8 defio_error_PD8_is_not_supported_on_TARGET
627 # define DEFIO_TAG_E__PD8 DEFIO_TAG_E__NONE
628 # define DEFIO_REC__PD8 defio_error_PD8_is_not_supported_on_TARGET
629 #endif
630 #if DEFIO_PORT_D_USED_MASK & BIT(9)
631 # define DEFIO_TAG__PD9 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 9)
632 # define DEFIO_TAG_E__PD9 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 9)
633 # define DEFIO_REC__PD9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
634 #else
635 # define DEFIO_TAG__PD9 defio_error_PD9_is_not_supported_on_TARGET
636 # define DEFIO_TAG_E__PD9 DEFIO_TAG_E__NONE
637 # define DEFIO_REC__PD9 defio_error_PD9_is_not_supported_on_TARGET
638 #endif
639 #if DEFIO_PORT_D_USED_MASK & BIT(10)
640 # define DEFIO_TAG__PD10 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 10)
641 # define DEFIO_TAG_E__PD10 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 10)
642 # define DEFIO_REC__PD10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
643 #else
644 # define DEFIO_TAG__PD10 defio_error_PD10_is_not_supported_on_TARGET
645 # define DEFIO_TAG_E__PD10 DEFIO_TAG_E__NONE
646 # define DEFIO_REC__PD10 defio_error_PD10_is_not_supported_on_TARGET
647 #endif
648 #if DEFIO_PORT_D_USED_MASK & BIT(11)
649 # define DEFIO_TAG__PD11 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 11)
650 # define DEFIO_TAG_E__PD11 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 11)
651 # define DEFIO_REC__PD11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
652 #else
653 # define DEFIO_TAG__PD11 defio_error_PD11_is_not_supported_on_TARGET
654 # define DEFIO_TAG_E__PD11 DEFIO_TAG_E__NONE
655 # define DEFIO_REC__PD11 defio_error_PD11_is_not_supported_on_TARGET
656 #endif
657 #if DEFIO_PORT_D_USED_MASK & BIT(12)
658 # define DEFIO_TAG__PD12 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 12)
659 # define DEFIO_TAG_E__PD12 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 12)
660 # define DEFIO_REC__PD12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
661 #else
662 # define DEFIO_TAG__PD12 defio_error_PD12_is_not_supported_on_TARGET
663 # define DEFIO_TAG_E__PD12 DEFIO_TAG_E__NONE
664 # define DEFIO_REC__PD12 defio_error_PD12_is_not_supported_on_TARGET
665 #endif
666 #if DEFIO_PORT_D_USED_MASK & BIT(13)
667 # define DEFIO_TAG__PD13 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 13)
668 # define DEFIO_TAG_E__PD13 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 13)
669 # define DEFIO_REC__PD13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
670 #else
671 # define DEFIO_TAG__PD13 defio_error_PD13_is_not_supported_on_TARGET
672 # define DEFIO_TAG_E__PD13 DEFIO_TAG_E__NONE
673 # define DEFIO_REC__PD13 defio_error_PD13_is_not_supported_on_TARGET
674 #endif
675 #if DEFIO_PORT_D_USED_MASK & BIT(14)
676 # define DEFIO_TAG__PD14 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 14)
677 # define DEFIO_TAG_E__PD14 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 14)
678 # define DEFIO_REC__PD14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
679 #else
680 # define DEFIO_TAG__PD14 defio_error_PD14_is_not_supported_on_TARGET
681 # define DEFIO_TAG_E__PD14 DEFIO_TAG_E__NONE
682 # define DEFIO_REC__PD14 defio_error_PD14_is_not_supported_on_TARGET
683 #endif
684 #if DEFIO_PORT_D_USED_MASK & BIT(15)
685 # define DEFIO_TAG__PD15 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 15)
686 # define DEFIO_TAG_E__PD15 DEFIO_TAG_MAKE(DEFIO_GPIOID__D, 15)
687 # define DEFIO_REC__PD15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_D_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT)
688 #else
689 # define DEFIO_TAG__PD15 defio_error_PD15_is_not_supported_on_TARGET
690 # define DEFIO_TAG_E__PD15 DEFIO_TAG_E__NONE
691 # define DEFIO_REC__PD15 defio_error_PD15_is_not_supported_on_TARGET
692 #endif
693 #if DEFIO_PORT_E_USED_MASK & BIT(0)
694 # define DEFIO_TAG__PE0 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 0)
695 # define DEFIO_TAG_E__PE0 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 0)
696 # define DEFIO_REC__PE0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
697 #else
698 # define DEFIO_TAG__PE0 defio_error_PE0_is_not_supported_on_TARGET
699 # define DEFIO_TAG_E__PE0 DEFIO_TAG_E__NONE
700 # define DEFIO_REC__PE0 defio_error_PE0_is_not_supported_on_TARGET
701 #endif
702 #if DEFIO_PORT_E_USED_MASK & BIT(1)
703 # define DEFIO_TAG__PE1 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 1)
704 # define DEFIO_TAG_E__PE1 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 1)
705 # define DEFIO_REC__PE1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
706 #else
707 # define DEFIO_TAG__PE1 defio_error_PE1_is_not_supported_on_TARGET
708 # define DEFIO_TAG_E__PE1 DEFIO_TAG_E__NONE
709 # define DEFIO_REC__PE1 defio_error_PE1_is_not_supported_on_TARGET
710 #endif
711 #if DEFIO_PORT_E_USED_MASK & BIT(2)
712 # define DEFIO_TAG__PE2 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 2)
713 # define DEFIO_TAG_E__PE2 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 2)
714 # define DEFIO_REC__PE2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
715 #else
716 # define DEFIO_TAG__PE2 defio_error_PE2_is_not_supported_on_TARGET
717 # define DEFIO_TAG_E__PE2 DEFIO_TAG_E__NONE
718 # define DEFIO_REC__PE2 defio_error_PE2_is_not_supported_on_TARGET
719 #endif
720 #if DEFIO_PORT_E_USED_MASK & BIT(3)
721 # define DEFIO_TAG__PE3 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 3)
722 # define DEFIO_TAG_E__PE3 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 3)
723 # define DEFIO_REC__PE3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
724 #else
725 # define DEFIO_TAG__PE3 defio_error_PE3_is_not_supported_on_TARGET
726 # define DEFIO_TAG_E__PE3 DEFIO_TAG_E__NONE
727 # define DEFIO_REC__PE3 defio_error_PE3_is_not_supported_on_TARGET
728 #endif
729 #if DEFIO_PORT_E_USED_MASK & BIT(4)
730 # define DEFIO_TAG__PE4 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 4)
731 # define DEFIO_TAG_E__PE4 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 4)
732 # define DEFIO_REC__PE4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
733 #else
734 # define DEFIO_TAG__PE4 defio_error_PE4_is_not_supported_on_TARGET
735 # define DEFIO_TAG_E__PE4 DEFIO_TAG_E__NONE
736 # define DEFIO_REC__PE4 defio_error_PE4_is_not_supported_on_TARGET
737 #endif
738 #if DEFIO_PORT_E_USED_MASK & BIT(5)
739 # define DEFIO_TAG__PE5 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 5)
740 # define DEFIO_TAG_E__PE5 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 5)
741 # define DEFIO_REC__PE5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
742 #else
743 # define DEFIO_TAG__PE5 defio_error_PE5_is_not_supported_on_TARGET
744 # define DEFIO_TAG_E__PE5 DEFIO_TAG_E__NONE
745 # define DEFIO_REC__PE5 defio_error_PE5_is_not_supported_on_TARGET
746 #endif
747 #if DEFIO_PORT_E_USED_MASK & BIT(6)
748 # define DEFIO_TAG__PE6 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 6)
749 # define DEFIO_TAG_E__PE6 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 6)
750 # define DEFIO_REC__PE6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
751 #else
752 # define DEFIO_TAG__PE6 defio_error_PE6_is_not_supported_on_TARGET
753 # define DEFIO_TAG_E__PE6 DEFIO_TAG_E__NONE
754 # define DEFIO_REC__PE6 defio_error_PE6_is_not_supported_on_TARGET
755 #endif
756 #if DEFIO_PORT_E_USED_MASK & BIT(7)
757 # define DEFIO_TAG__PE7 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 7)
758 # define DEFIO_TAG_E__PE7 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 7)
759 # define DEFIO_REC__PE7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
760 #else
761 # define DEFIO_TAG__PE7 defio_error_PE7_is_not_supported_on_TARGET
762 # define DEFIO_TAG_E__PE7 DEFIO_TAG_E__NONE
763 # define DEFIO_REC__PE7 defio_error_PE7_is_not_supported_on_TARGET
764 #endif
765 #if DEFIO_PORT_E_USED_MASK & BIT(8)
766 # define DEFIO_TAG__PE8 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 8)
767 # define DEFIO_TAG_E__PE8 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 8)
768 # define DEFIO_REC__PE8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
769 #else
770 # define DEFIO_TAG__PE8 defio_error_PE8_is_not_supported_on_TARGET
771 # define DEFIO_TAG_E__PE8 DEFIO_TAG_E__NONE
772 # define DEFIO_REC__PE8 defio_error_PE8_is_not_supported_on_TARGET
773 #endif
774 #if DEFIO_PORT_E_USED_MASK & BIT(9)
775 # define DEFIO_TAG__PE9 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 9)
776 # define DEFIO_TAG_E__PE9 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 9)
777 # define DEFIO_REC__PE9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
778 #else
779 # define DEFIO_TAG__PE9 defio_error_PE9_is_not_supported_on_TARGET
780 # define DEFIO_TAG_E__PE9 DEFIO_TAG_E__NONE
781 # define DEFIO_REC__PE9 defio_error_PE9_is_not_supported_on_TARGET
782 #endif
783 #if DEFIO_PORT_E_USED_MASK & BIT(10)
784 # define DEFIO_TAG__PE10 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 10)
785 # define DEFIO_TAG_E__PE10 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 10)
786 # define DEFIO_REC__PE10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
787 #else
788 # define DEFIO_TAG__PE10 defio_error_PE10_is_not_supported_on_TARGET
789 # define DEFIO_TAG_E__PE10 DEFIO_TAG_E__NONE
790 # define DEFIO_REC__PE10 defio_error_PE10_is_not_supported_on_TARGET
791 #endif
792 #if DEFIO_PORT_E_USED_MASK & BIT(11)
793 # define DEFIO_TAG__PE11 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 11)
794 # define DEFIO_TAG_E__PE11 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 11)
795 # define DEFIO_REC__PE11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
796 #else
797 # define DEFIO_TAG__PE11 defio_error_PE11_is_not_supported_on_TARGET
798 # define DEFIO_TAG_E__PE11 DEFIO_TAG_E__NONE
799 # define DEFIO_REC__PE11 defio_error_PE11_is_not_supported_on_TARGET
800 #endif
801 #if DEFIO_PORT_E_USED_MASK & BIT(12)
802 # define DEFIO_TAG__PE12 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 12)
803 # define DEFIO_TAG_E__PE12 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 12)
804 # define DEFIO_REC__PE12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
805 #else
806 # define DEFIO_TAG__PE12 defio_error_PE12_is_not_supported_on_TARGET
807 # define DEFIO_TAG_E__PE12 DEFIO_TAG_E__NONE
808 # define DEFIO_REC__PE12 defio_error_PE12_is_not_supported_on_TARGET
809 #endif
810 #if DEFIO_PORT_E_USED_MASK & BIT(13)
811 # define DEFIO_TAG__PE13 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 13)
812 # define DEFIO_TAG_E__PE13 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 13)
813 # define DEFIO_REC__PE13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
814 #else
815 # define DEFIO_TAG__PE13 defio_error_PE13_is_not_supported_on_TARGET
816 # define DEFIO_TAG_E__PE13 DEFIO_TAG_E__NONE
817 # define DEFIO_REC__PE13 defio_error_PE13_is_not_supported_on_TARGET
818 #endif
819 #if DEFIO_PORT_E_USED_MASK & BIT(14)
820 # define DEFIO_TAG__PE14 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 14)
821 # define DEFIO_TAG_E__PE14 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 14)
822 # define DEFIO_REC__PE14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
823 #else
824 # define DEFIO_TAG__PE14 defio_error_PE14_is_not_supported_on_TARGET
825 # define DEFIO_TAG_E__PE14 DEFIO_TAG_E__NONE
826 # define DEFIO_REC__PE14 defio_error_PE14_is_not_supported_on_TARGET
827 #endif
828 #if DEFIO_PORT_E_USED_MASK & BIT(15)
829 # define DEFIO_TAG__PE15 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 15)
830 # define DEFIO_TAG_E__PE15 DEFIO_TAG_MAKE(DEFIO_GPIOID__E, 15)
831 # define DEFIO_REC__PE15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_E_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT)
832 #else
833 # define DEFIO_TAG__PE15 defio_error_PE15_is_not_supported_on_TARGET
834 # define DEFIO_TAG_E__PE15 DEFIO_TAG_E__NONE
835 # define DEFIO_REC__PE15 defio_error_PE15_is_not_supported_on_TARGET
836 #endif
837 #if DEFIO_PORT_F_USED_MASK & BIT(0)
838 # define DEFIO_TAG__PF0 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 0)
839 # define DEFIO_TAG_E__PF0 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 0)
840 # define DEFIO_REC__PF0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
841 #else
842 # define DEFIO_TAG__PF0 defio_error_PF0_is_not_supported_on_TARGET
843 # define DEFIO_TAG_E__PF0 DEFIO_TAG_E__NONE
844 # define DEFIO_REC__PF0 defio_error_PF0_is_not_supported_on_TARGET
845 #endif
846 #if DEFIO_PORT_F_USED_MASK & BIT(1)
847 # define DEFIO_TAG__PF1 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 1)
848 # define DEFIO_TAG_E__PF1 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 1)
849 # define DEFIO_REC__PF1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
850 #else
851 # define DEFIO_TAG__PF1 defio_error_PF1_is_not_supported_on_TARGET
852 # define DEFIO_TAG_E__PF1 DEFIO_TAG_E__NONE
853 # define DEFIO_REC__PF1 defio_error_PF1_is_not_supported_on_TARGET
854 #endif
855 #if DEFIO_PORT_F_USED_MASK & BIT(2)
856 # define DEFIO_TAG__PF2 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 2)
857 # define DEFIO_TAG_E__PF2 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 2)
858 # define DEFIO_REC__PF2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
859 #else
860 # define DEFIO_TAG__PF2 defio_error_PF2_is_not_supported_on_TARGET
861 # define DEFIO_TAG_E__PF2 DEFIO_TAG_E__NONE
862 # define DEFIO_REC__PF2 defio_error_PF2_is_not_supported_on_TARGET
863 #endif
864 #if DEFIO_PORT_F_USED_MASK & BIT(3)
865 # define DEFIO_TAG__PF3 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 3)
866 # define DEFIO_TAG_E__PF3 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 3)
867 # define DEFIO_REC__PF3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
868 #else
869 # define DEFIO_TAG__PF3 defio_error_PF3_is_not_supported_on_TARGET
870 # define DEFIO_TAG_E__PF3 DEFIO_TAG_E__NONE
871 # define DEFIO_REC__PF3 defio_error_PF3_is_not_supported_on_TARGET
872 #endif
873 #if DEFIO_PORT_F_USED_MASK & BIT(4)
874 # define DEFIO_TAG__PF4 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 4)
875 # define DEFIO_TAG_E__PF4 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 4)
876 # define DEFIO_REC__PF4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
877 #else
878 # define DEFIO_TAG__PF4 defio_error_PF4_is_not_supported_on_TARGET
879 # define DEFIO_TAG_E__PF4 DEFIO_TAG_E__NONE
880 # define DEFIO_REC__PF4 defio_error_PF4_is_not_supported_on_TARGET
881 #endif
882 #if DEFIO_PORT_F_USED_MASK & BIT(5)
883 # define DEFIO_TAG__PF5 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 5)
884 # define DEFIO_TAG_E__PF5 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 5)
885 # define DEFIO_REC__PF5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
886 #else
887 # define DEFIO_TAG__PF5 defio_error_PF5_is_not_supported_on_TARGET
888 # define DEFIO_TAG_E__PF5 DEFIO_TAG_E__NONE
889 # define DEFIO_REC__PF5 defio_error_PF5_is_not_supported_on_TARGET
890 #endif
891 #if DEFIO_PORT_F_USED_MASK & BIT(6)
892 # define DEFIO_TAG__PF6 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 6)
893 # define DEFIO_TAG_E__PF6 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 6)
894 # define DEFIO_REC__PF6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
895 #else
896 # define DEFIO_TAG__PF6 defio_error_PF6_is_not_supported_on_TARGET
897 # define DEFIO_TAG_E__PF6 DEFIO_TAG_E__NONE
898 # define DEFIO_REC__PF6 defio_error_PF6_is_not_supported_on_TARGET
899 #endif
900 #if DEFIO_PORT_F_USED_MASK & BIT(7)
901 # define DEFIO_TAG__PF7 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 7)
902 # define DEFIO_TAG_E__PF7 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 7)
903 # define DEFIO_REC__PF7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
904 #else
905 # define DEFIO_TAG__PF7 defio_error_PF7_is_not_supported_on_TARGET
906 # define DEFIO_TAG_E__PF7 DEFIO_TAG_E__NONE
907 # define DEFIO_REC__PF7 defio_error_PF7_is_not_supported_on_TARGET
908 #endif
909 #if DEFIO_PORT_F_USED_MASK & BIT(8)
910 # define DEFIO_TAG__PF8 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 8)
911 # define DEFIO_TAG_E__PF8 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 8)
912 # define DEFIO_REC__PF8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
913 #else
914 # define DEFIO_TAG__PF8 defio_error_PF8_is_not_supported_on_TARGET
915 # define DEFIO_TAG_E__PF8 DEFIO_TAG_E__NONE
916 # define DEFIO_REC__PF8 defio_error_PF8_is_not_supported_on_TARGET
917 #endif
918 #if DEFIO_PORT_F_USED_MASK & BIT(9)
919 # define DEFIO_TAG__PF9 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 9)
920 # define DEFIO_TAG_E__PF9 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 9)
921 # define DEFIO_REC__PF9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
922 #else
923 # define DEFIO_TAG__PF9 defio_error_PF9_is_not_supported_on_TARGET
924 # define DEFIO_TAG_E__PF9 DEFIO_TAG_E__NONE
925 # define DEFIO_REC__PF9 defio_error_PF9_is_not_supported_on_TARGET
926 #endif
927 #if DEFIO_PORT_F_USED_MASK & BIT(10)
928 # define DEFIO_TAG__PF10 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 10)
929 # define DEFIO_TAG_E__PF10 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 10)
930 # define DEFIO_REC__PF10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
931 #else
932 # define DEFIO_TAG__PF10 defio_error_PF10_is_not_supported_on_TARGET
933 # define DEFIO_TAG_E__PF10 DEFIO_TAG_E__NONE
934 # define DEFIO_REC__PF10 defio_error_PF10_is_not_supported_on_TARGET
935 #endif
936 #if DEFIO_PORT_F_USED_MASK & BIT(11)
937 # define DEFIO_TAG__PF11 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 11)
938 # define DEFIO_TAG_E__PF11 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 11)
939 # define DEFIO_REC__PF11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
940 #else
941 # define DEFIO_TAG__PF11 defio_error_PF11_is_not_supported_on_TARGET
942 # define DEFIO_TAG_E__PF11 DEFIO_TAG_E__NONE
943 # define DEFIO_REC__PF11 defio_error_PF11_is_not_supported_on_TARGET
944 #endif
945 #if DEFIO_PORT_F_USED_MASK & BIT(12)
946 # define DEFIO_TAG__PF12 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 12)
947 # define DEFIO_TAG_E__PF12 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 12)
948 # define DEFIO_REC__PF12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
949 #else
950 # define DEFIO_TAG__PF12 defio_error_PF12_is_not_supported_on_TARGET
951 # define DEFIO_TAG_E__PF12 DEFIO_TAG_E__NONE
952 # define DEFIO_REC__PF12 defio_error_PF12_is_not_supported_on_TARGET
953 #endif
954 #if DEFIO_PORT_F_USED_MASK & BIT(13)
955 # define DEFIO_TAG__PF13 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 13)
956 # define DEFIO_TAG_E__PF13 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 13)
957 # define DEFIO_REC__PF13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
958 #else
959 # define DEFIO_TAG__PF13 defio_error_PF13_is_not_supported_on_TARGET
960 # define DEFIO_TAG_E__PF13 DEFIO_TAG_E__NONE
961 # define DEFIO_REC__PF13 defio_error_PF13_is_not_supported_on_TARGET
962 #endif
963 #if DEFIO_PORT_F_USED_MASK & BIT(14)
964 # define DEFIO_TAG__PF14 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 14)
965 # define DEFIO_TAG_E__PF14 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 14)
966 # define DEFIO_REC__PF14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
967 #else
968 # define DEFIO_TAG__PF14 defio_error_PF14_is_not_supported_on_TARGET
969 # define DEFIO_TAG_E__PF14 DEFIO_TAG_E__NONE
970 # define DEFIO_REC__PF14 defio_error_PF14_is_not_supported_on_TARGET
971 #endif
972 #if DEFIO_PORT_F_USED_MASK & BIT(15)
973 # define DEFIO_TAG__PF15 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 15)
974 # define DEFIO_TAG_E__PF15 DEFIO_TAG_MAKE(DEFIO_GPIOID__F, 15)
975 # define DEFIO_REC__PF15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_F_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT)
976 #else
977 # define DEFIO_TAG__PF15 defio_error_PF15_is_not_supported_on_TARGET
978 # define DEFIO_TAG_E__PF15 DEFIO_TAG_E__NONE
979 # define DEFIO_REC__PF15 defio_error_PF15_is_not_supported_on_TARGET
980 #endif
981 #if DEFIO_PORT_G_USED_MASK & BIT(0)
982 # define DEFIO_TAG__PG0 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 0)
983 # define DEFIO_TAG_E__PG0 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 0)
984 # define DEFIO_REC__PG0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
985 #else
986 # define DEFIO_TAG__PG0 defio_error_PG0_is_not_supported_on_TARGET
987 # define DEFIO_TAG_E__PG0 DEFIO_TAG_E__NONE
988 # define DEFIO_REC__PG0 defio_error_PG0_is_not_supported_on_TARGET
989 #endif
990 #if DEFIO_PORT_G_USED_MASK & BIT(1)
991 # define DEFIO_TAG__PG1 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 1)
992 # define DEFIO_TAG_E__PG1 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 1)
993 # define DEFIO_REC__PG1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
994 #else
995 # define DEFIO_TAG__PG1 defio_error_PG1_is_not_supported_on_TARGET
996 # define DEFIO_TAG_E__PG1 DEFIO_TAG_E__NONE
997 # define DEFIO_REC__PG1 defio_error_PG1_is_not_supported_on_TARGET
998 #endif
999 #if DEFIO_PORT_G_USED_MASK & BIT(2)
1000 # define DEFIO_TAG__PG2 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 2)
1001 # define DEFIO_TAG_E__PG2 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 2)
1002 # define DEFIO_REC__PG2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1003 #else
1004 # define DEFIO_TAG__PG2 defio_error_PG2_is_not_supported_on_TARGET
1005 # define DEFIO_TAG_E__PG2 DEFIO_TAG_E__NONE
1006 # define DEFIO_REC__PG2 defio_error_PG2_is_not_supported_on_TARGET
1007 #endif
1008 #if DEFIO_PORT_G_USED_MASK & BIT(3)
1009 # define DEFIO_TAG__PG3 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 3)
1010 # define DEFIO_TAG_E__PG3 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 3)
1011 # define DEFIO_REC__PG3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1012 #else
1013 # define DEFIO_TAG__PG3 defio_error_PG3_is_not_supported_on_TARGET
1014 # define DEFIO_TAG_E__PG3 DEFIO_TAG_E__NONE
1015 # define DEFIO_REC__PG3 defio_error_PG3_is_not_supported_on_TARGET
1016 #endif
1017 #if DEFIO_PORT_G_USED_MASK & BIT(4)
1018 # define DEFIO_TAG__PG4 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 4)
1019 # define DEFIO_TAG_E__PG4 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 4)
1020 # define DEFIO_REC__PG4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1021 #else
1022 # define DEFIO_TAG__PG4 defio_error_PG4_is_not_supported_on_TARGET
1023 # define DEFIO_TAG_E__PG4 DEFIO_TAG_E__NONE
1024 # define DEFIO_REC__PG4 defio_error_PG4_is_not_supported_on_TARGET
1025 #endif
1026 #if DEFIO_PORT_G_USED_MASK & BIT(5)
1027 # define DEFIO_TAG__PG5 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 5)
1028 # define DEFIO_TAG_E__PG5 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 5)
1029 # define DEFIO_REC__PG5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1030 #else
1031 # define DEFIO_TAG__PG5 defio_error_PG5_is_not_supported_on_TARGET
1032 # define DEFIO_TAG_E__PG5 DEFIO_TAG_E__NONE
1033 # define DEFIO_REC__PG5 defio_error_PG5_is_not_supported_on_TARGET
1034 #endif
1035 #if DEFIO_PORT_G_USED_MASK & BIT(6)
1036 # define DEFIO_TAG__PG6 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 6)
1037 # define DEFIO_TAG_E__PG6 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 6)
1038 # define DEFIO_REC__PG6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1039 #else
1040 # define DEFIO_TAG__PG6 defio_error_PG6_is_not_supported_on_TARGET
1041 # define DEFIO_TAG_E__PG6 DEFIO_TAG_E__NONE
1042 # define DEFIO_REC__PG6 defio_error_PG6_is_not_supported_on_TARGET
1043 #endif
1044 #if DEFIO_PORT_G_USED_MASK & BIT(7)
1045 # define DEFIO_TAG__PG7 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 7)
1046 # define DEFIO_TAG_E__PG7 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 7)
1047 # define DEFIO_REC__PG7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1048 #else
1049 # define DEFIO_TAG__PG7 defio_error_PG7_is_not_supported_on_TARGET
1050 # define DEFIO_TAG_E__PG7 DEFIO_TAG_E__NONE
1051 # define DEFIO_REC__PG7 defio_error_PG7_is_not_supported_on_TARGET
1052 #endif
1053 #if DEFIO_PORT_G_USED_MASK & BIT(8)
1054 # define DEFIO_TAG__PG8 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 8)
1055 # define DEFIO_TAG_E__PG8 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 8)
1056 # define DEFIO_REC__PG8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1057 #else
1058 # define DEFIO_TAG__PG8 defio_error_PG8_is_not_supported_on_TARGET
1059 # define DEFIO_TAG_E__PG8 DEFIO_TAG_E__NONE
1060 # define DEFIO_REC__PG8 defio_error_PG8_is_not_supported_on_TARGET
1061 #endif
1062 #if DEFIO_PORT_G_USED_MASK & BIT(9)
1063 # define DEFIO_TAG__PG9 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 9)
1064 # define DEFIO_TAG_E__PG9 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 9)
1065 # define DEFIO_REC__PG9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1066 #else
1067 # define DEFIO_TAG__PG9 defio_error_PG9_is_not_supported_on_TARGET
1068 # define DEFIO_TAG_E__PG9 DEFIO_TAG_E__NONE
1069 # define DEFIO_REC__PG9 defio_error_PG9_is_not_supported_on_TARGET
1070 #endif
1071 #if DEFIO_PORT_G_USED_MASK & BIT(10)
1072 # define DEFIO_TAG__PG10 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 10)
1073 # define DEFIO_TAG_E__PG10 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 10)
1074 # define DEFIO_REC__PG10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1075 #else
1076 # define DEFIO_TAG__PG10 defio_error_PG10_is_not_supported_on_TARGET
1077 # define DEFIO_TAG_E__PG10 DEFIO_TAG_E__NONE
1078 # define DEFIO_REC__PG10 defio_error_PG10_is_not_supported_on_TARGET
1079 #endif
1080 #if DEFIO_PORT_G_USED_MASK & BIT(11)
1081 # define DEFIO_TAG__PG11 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 11)
1082 # define DEFIO_TAG_E__PG11 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 11)
1083 # define DEFIO_REC__PG11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1084 #else
1085 # define DEFIO_TAG__PG11 defio_error_PG11_is_not_supported_on_TARGET
1086 # define DEFIO_TAG_E__PG11 DEFIO_TAG_E__NONE
1087 # define DEFIO_REC__PG11 defio_error_PG11_is_not_supported_on_TARGET
1088 #endif
1089 #if DEFIO_PORT_G_USED_MASK & BIT(12)
1090 # define DEFIO_TAG__PG12 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 12)
1091 # define DEFIO_TAG_E__PG12 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 12)
1092 # define DEFIO_REC__PG12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1093 #else
1094 # define DEFIO_TAG__PG12 defio_error_PG12_is_not_supported_on_TARGET
1095 # define DEFIO_TAG_E__PG12 DEFIO_TAG_E__NONE
1096 # define DEFIO_REC__PG12 defio_error_PG12_is_not_supported_on_TARGET
1097 #endif
1098 #if DEFIO_PORT_G_USED_MASK & BIT(13)
1099 # define DEFIO_TAG__PG13 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 13)
1100 # define DEFIO_TAG_E__PG13 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 13)
1101 # define DEFIO_REC__PG13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1102 #else
1103 # define DEFIO_TAG__PG13 defio_error_PG13_is_not_supported_on_TARGET
1104 # define DEFIO_TAG_E__PG13 DEFIO_TAG_E__NONE
1105 # define DEFIO_REC__PG13 defio_error_PG13_is_not_supported_on_TARGET
1106 #endif
1107 #if DEFIO_PORT_G_USED_MASK & BIT(14)
1108 # define DEFIO_TAG__PG14 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 14)
1109 # define DEFIO_TAG_E__PG14 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 14)
1110 # define DEFIO_REC__PG14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1111 #else
1112 # define DEFIO_TAG__PG14 defio_error_PG14_is_not_supported_on_TARGET
1113 # define DEFIO_TAG_E__PG14 DEFIO_TAG_E__NONE
1114 # define DEFIO_REC__PG14 defio_error_PG14_is_not_supported_on_TARGET
1115 #endif
1116 #if DEFIO_PORT_G_USED_MASK & BIT(15)
1117 # define DEFIO_TAG__PG15 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 15)
1118 # define DEFIO_TAG_E__PG15 DEFIO_TAG_MAKE(DEFIO_GPIOID__G, 15)
1119 # define DEFIO_REC__PG15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_G_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT)
1120 #else
1121 # define DEFIO_TAG__PG15 defio_error_PG15_is_not_supported_on_TARGET
1122 # define DEFIO_TAG_E__PG15 DEFIO_TAG_E__NONE
1123 # define DEFIO_REC__PG15 defio_error_PG15_is_not_supported_on_TARGET
1124 #endif
1125 #if DEFIO_PORT_H_USED_MASK & BIT(0)
1126 # define DEFIO_TAG__PH0 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 0)
1127 # define DEFIO_TAG_E__PH0 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 0)
1128 # define DEFIO_REC__PH0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1129 #else
1130 # define DEFIO_TAG__PH0 defio_error_PH0_is_not_supported_on_TARGET
1131 # define DEFIO_TAG_E__PH0 DEFIO_TAG_E__NONE
1132 # define DEFIO_REC__PH0 defio_error_PH0_is_not_supported_on_TARGET
1133 #endif
1134 #if DEFIO_PORT_H_USED_MASK & BIT(1)
1135 # define DEFIO_TAG__PH1 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 1)
1136 # define DEFIO_TAG_E__PH1 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 1)
1137 # define DEFIO_REC__PH1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1138 #else
1139 # define DEFIO_TAG__PH1 defio_error_PH1_is_not_supported_on_TARGET
1140 # define DEFIO_TAG_E__PH1 DEFIO_TAG_E__NONE
1141 # define DEFIO_REC__PH1 defio_error_PH1_is_not_supported_on_TARGET
1142 #endif
1143 #if DEFIO_PORT_H_USED_MASK & BIT(2)
1144 # define DEFIO_TAG__PH2 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 2)
1145 # define DEFIO_TAG_E__PH2 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 2)
1146 # define DEFIO_REC__PH2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1147 #else
1148 # define DEFIO_TAG__PH2 defio_error_PH2_is_not_supported_on_TARGET
1149 # define DEFIO_TAG_E__PH2 DEFIO_TAG_E__NONE
1150 # define DEFIO_REC__PH2 defio_error_PH2_is_not_supported_on_TARGET
1151 #endif
1152 #if DEFIO_PORT_H_USED_MASK & BIT(3)
1153 # define DEFIO_TAG__PH3 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 3)
1154 # define DEFIO_TAG_E__PH3 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 3)
1155 # define DEFIO_REC__PH3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1156 #else
1157 # define DEFIO_TAG__PH3 defio_error_PH3_is_not_supported_on_TARGET
1158 # define DEFIO_TAG_E__PH3 DEFIO_TAG_E__NONE
1159 # define DEFIO_REC__PH3 defio_error_PH3_is_not_supported_on_TARGET
1160 #endif
1161 #if DEFIO_PORT_H_USED_MASK & BIT(4)
1162 # define DEFIO_TAG__PH4 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 4)
1163 # define DEFIO_TAG_E__PH4 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 4)
1164 # define DEFIO_REC__PH4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1165 #else
1166 # define DEFIO_TAG__PH4 defio_error_PH4_is_not_supported_on_TARGET
1167 # define DEFIO_TAG_E__PH4 DEFIO_TAG_E__NONE
1168 # define DEFIO_REC__PH4 defio_error_PH4_is_not_supported_on_TARGET
1169 #endif
1170 #if DEFIO_PORT_H_USED_MASK & BIT(5)
1171 # define DEFIO_TAG__PH5 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 5)
1172 # define DEFIO_TAG_E__PH5 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 5)
1173 # define DEFIO_REC__PH5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1174 #else
1175 # define DEFIO_TAG__PH5 defio_error_PH5_is_not_supported_on_TARGET
1176 # define DEFIO_TAG_E__PH5 DEFIO_TAG_E__NONE
1177 # define DEFIO_REC__PH5 defio_error_PH5_is_not_supported_on_TARGET
1178 #endif
1179 #if DEFIO_PORT_H_USED_MASK & BIT(6)
1180 # define DEFIO_TAG__PH6 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 6)
1181 # define DEFIO_TAG_E__PH6 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 6)
1182 # define DEFIO_REC__PH6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1183 #else
1184 # define DEFIO_TAG__PH6 defio_error_PH6_is_not_supported_on_TARGET
1185 # define DEFIO_TAG_E__PH6 DEFIO_TAG_E__NONE
1186 # define DEFIO_REC__PH6 defio_error_PH6_is_not_supported_on_TARGET
1187 #endif
1188 #if DEFIO_PORT_H_USED_MASK & BIT(7)
1189 # define DEFIO_TAG__PH7 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 7)
1190 # define DEFIO_TAG_E__PH7 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 7)
1191 # define DEFIO_REC__PH7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1192 #else
1193 # define DEFIO_TAG__PH7 defio_error_PH7_is_not_supported_on_TARGET
1194 # define DEFIO_TAG_E__PH7 DEFIO_TAG_E__NONE
1195 # define DEFIO_REC__PH7 defio_error_PH7_is_not_supported_on_TARGET
1196 #endif
1197 #if DEFIO_PORT_H_USED_MASK & BIT(8)
1198 # define DEFIO_TAG__PH8 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 8)
1199 # define DEFIO_TAG_E__PH8 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 8)
1200 # define DEFIO_REC__PH8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1201 #else
1202 # define DEFIO_TAG__PH8 defio_error_PH8_is_not_supported_on_TARGET
1203 # define DEFIO_TAG_E__PH8 DEFIO_TAG_E__NONE
1204 # define DEFIO_REC__PH8 defio_error_PH8_is_not_supported_on_TARGET
1205 #endif
1206 #if DEFIO_PORT_H_USED_MASK & BIT(9)
1207 # define DEFIO_TAG__PH9 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 9)
1208 # define DEFIO_TAG_E__PH9 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 9)
1209 # define DEFIO_REC__PH9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1210 #else
1211 # define DEFIO_TAG__PH9 defio_error_PH9_is_not_supported_on_TARGET
1212 # define DEFIO_TAG_E__PH9 DEFIO_TAG_E__NONE
1213 # define DEFIO_REC__PH9 defio_error_PH9_is_not_supported_on_TARGET
1214 #endif
1215 #if DEFIO_PORT_H_USED_MASK & BIT(10)
1216 # define DEFIO_TAG__PH10 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 10)
1217 # define DEFIO_TAG_E__PH10 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 10)
1218 # define DEFIO_REC__PH10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1219 #else
1220 # define DEFIO_TAG__PH10 defio_error_PH10_is_not_supported_on_TARGET
1221 # define DEFIO_TAG_E__PH10 DEFIO_TAG_E__NONE
1222 # define DEFIO_REC__PH10 defio_error_PH10_is_not_supported_on_TARGET
1223 #endif
1224 #if DEFIO_PORT_H_USED_MASK & BIT(11)
1225 # define DEFIO_TAG__PH11 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 11)
1226 # define DEFIO_TAG_E__PH11 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 11)
1227 # define DEFIO_REC__PH11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1228 #else
1229 # define DEFIO_TAG__PH11 defio_error_PH11_is_not_supported_on_TARGET
1230 # define DEFIO_TAG_E__PH11 DEFIO_TAG_E__NONE
1231 # define DEFIO_REC__PH11 defio_error_PH11_is_not_supported_on_TARGET
1232 #endif
1233 #if DEFIO_PORT_H_USED_MASK & BIT(12)
1234 # define DEFIO_TAG__PH12 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 12)
1235 # define DEFIO_TAG_E__PH12 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 12)
1236 # define DEFIO_REC__PH12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1237 #else
1238 # define DEFIO_TAG__PH12 defio_error_PH12_is_not_supported_on_TARGET
1239 # define DEFIO_TAG_E__PH12 DEFIO_TAG_E__NONE
1240 # define DEFIO_REC__PH12 defio_error_PH12_is_not_supported_on_TARGET
1241 #endif
1242 #if DEFIO_PORT_H_USED_MASK & BIT(13)
1243 # define DEFIO_TAG__PH13 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 13)
1244 # define DEFIO_TAG_E__PH13 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 13)
1245 # define DEFIO_REC__PH13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1246 #else
1247 # define DEFIO_TAG__PH13 defio_error_PH13_is_not_supported_on_TARGET
1248 # define DEFIO_TAG_E__PH13 DEFIO_TAG_E__NONE
1249 # define DEFIO_REC__PH13 defio_error_PH13_is_not_supported_on_TARGET
1250 #endif
1251 #if DEFIO_PORT_H_USED_MASK & BIT(14)
1252 # define DEFIO_TAG__PH14 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 14)
1253 # define DEFIO_TAG_E__PH14 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 14)
1254 # define DEFIO_REC__PH14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1255 #else
1256 # define DEFIO_TAG__PH14 defio_error_PH14_is_not_supported_on_TARGET
1257 # define DEFIO_TAG_E__PH14 DEFIO_TAG_E__NONE
1258 # define DEFIO_REC__PH14 defio_error_PH14_is_not_supported_on_TARGET
1259 #endif
1260 #if DEFIO_PORT_H_USED_MASK & BIT(15)
1261 # define DEFIO_TAG__PH15 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 15)
1262 # define DEFIO_TAG_E__PH15 DEFIO_TAG_MAKE(DEFIO_GPIOID__H, 15)
1263 # define DEFIO_REC__PH15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_H_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
1264 #else
1265 # define DEFIO_TAG__PH15 defio_error_PH15_is_not_supported_on_TARGET
1266 # define DEFIO_TAG_E__PH15 DEFIO_TAG_E__NONE
1267 # define DEFIO_REC__PH15 defio_error_PH15_is_not_supported_on_TARGET
1268 #endif
1270 // DEFIO_IO_USED_COUNT is number of io pins supported on target
1271 #define DEFIO_IO_USED_COUNT (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
1273 // DEFIO_PORT_USED_LIST - comma separated list of bitmask for all used ports.
1274 // DEFIO_PORT_OFFSET_LIST - comma separated list of port offsets (count of pins before this port)
1275 // unused ports on end of list are skipped
1276 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_H_USED_COUNT > 0
1277 # define DEFIO_PORT_USED_COUNT 8
1278 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK,DEFIO_PORT_E_USED_MASK,DEFIO_PORT_F_USED_MASK,DEFIO_PORT_G_USED_MASK,DEFIO_PORT_H_USED_MASK
1279 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET,DEFIO_PORT_D_OFFSET,DEFIO_PORT_E_OFFSET,DEFIO_PORT_F_OFFSET,DEFIO_PORT_G_OFFSET,DEFIO_PORT_H_OFFSET
1280 #endif
1281 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_G_USED_COUNT > 0
1282 # define DEFIO_PORT_USED_COUNT 7
1283 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK,DEFIO_PORT_E_USED_MASK,DEFIO_PORT_F_USED_MASK,DEFIO_PORT_G_USED_MASK
1284 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET,DEFIO_PORT_D_OFFSET,DEFIO_PORT_E_OFFSET,DEFIO_PORT_F_OFFSET,DEFIO_PORT_G_OFFSET
1285 #endif
1286 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_F_USED_COUNT > 0
1287 # define DEFIO_PORT_USED_COUNT 6
1288 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK,DEFIO_PORT_E_USED_MASK,DEFIO_PORT_F_USED_MASK
1289 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET,DEFIO_PORT_D_OFFSET,DEFIO_PORT_E_OFFSET,DEFIO_PORT_F_OFFSET
1290 #endif
1291 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_E_USED_COUNT > 0
1292 # define DEFIO_PORT_USED_COUNT 5
1293 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK,DEFIO_PORT_E_USED_MASK
1294 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET,DEFIO_PORT_D_OFFSET,DEFIO_PORT_E_OFFSET
1295 #endif
1296 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_D_USED_COUNT > 0
1297 # define DEFIO_PORT_USED_COUNT 4
1298 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK
1299 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET,DEFIO_PORT_D_OFFSET
1300 #endif
1301 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_C_USED_COUNT > 0
1302 # define DEFIO_PORT_USED_COUNT 3
1303 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK
1304 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET
1305 #endif
1306 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_B_USED_COUNT > 0
1307 # define DEFIO_PORT_USED_COUNT 2
1308 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK
1309 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET
1310 #endif
1311 #if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_A_USED_COUNT > 0
1312 # define DEFIO_PORT_USED_COUNT 1
1313 # define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK
1314 # define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET
1315 #endif
1317 #if !defined(DEFIO_PORT_USED_LIST)
1318 # if !defined DEFIO_NO_PORTS // supress warnings if we really don't want any pins
1319 # warning "No pins are defined. Maybe you forgot to define TARGET_IO_PORTx in target.h"
1320 # endif
1321 # define DEFIO_PORT_USED_COUNT 0
1322 # define DEFIO_PORT_USED_LIST /* empty */
1323 # define DEFIO_PORT_OFFSET_LIST /* empty */
1324 #endif