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