boardsource_blok/lib.rs
1#![no_std]
2
3pub extern crate rp2040_hal as hal;
4
5#[cfg(feature = "rt")]
6extern crate cortex_m_rt;
7#[cfg(feature = "rt")]
8pub use hal::entry;
9
10/// The linker will place this boot block at the start of our program image. We
11/// need this to help the ROM bootloader get our code up and running.
12#[cfg(feature = "boot2")]
13#[link_section = ".boot2"]
14#[no_mangle]
15#[used]
16pub static BOOT2_FIRMWARE: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080;
17
18pub use hal::pac;
19
20hal::bsp_pins!(
21
22 /// GPIO 0 supports following functions:
23 ///
24 /// | Function | Alias with applied function |
25 /// |--------------|-----------------------------|
26 /// | `SPI0 RX` | [crate::Gp0Spi0Rx] |
27 /// | `UART0 TX` | [crate::Gp0Uart0Tx] |
28 /// | `I2C0 SDA` | [crate::Gp0I2C0Sda] |
29 /// | `PWM0 A` | [crate::Gp0Pwm0A] |
30 /// | `PIO0` | [crate::Gp0Pio0] |
31 /// | `PIO1` | [crate::Gp0Pio1] |
32 Gpio0 {
33 name: gpio0,
34 aliases: {
35 /// UART Function alias for pin [crate::Pins::gpio0].
36 FunctionUart, PullNone: Gp0Uart0Tx,
37 /// SPI Function alias for pin [crate::Pins::gpio0].
38 FunctionSpi, PullNone: Gp0Spi0Rx,
39 /// I2C Function alias for pin [crate::Pins::gpio0].
40 FunctionI2C, PullUp: Gp0I2C0Sda,
41 /// PWM Function alias for pin [crate::Pins::gpio0].
42 FunctionPwm, PullNone: Gp0Pwm0A,
43 /// PIO0 Function alias for pin [crate::Pins::gpio0].
44 FunctionPio0, PullNone: Gp0Pio0,
45 /// PIO1 Function alias for pin [crate::Pins::gpio0].
46 FunctionPio1, PullNone: Gp0Pio1
47 }
48 },
49
50 /// GPIO 1 supports following functions:
51 ///
52 /// | Function | Alias with applied function |
53 /// |--------------|-----------------------------|
54 /// | `SPI0 CSn` | [crate::Gp1Spi0Csn] |
55 /// | `UART0 RX` | [crate::Gp1Uart0Rx] |
56 /// | `I2C0 SCL` | [crate::Gp1I2C0Scl] |
57 /// | `PWM0 B` | [crate::Gp1Pwm0B] |
58 /// | `PIO0` | [crate::Gp1Pio0] |
59 /// | `PIO1` | [crate::Gp1Pio1] |
60 Gpio1 {
61 name: gpio1,
62 aliases: {
63 /// UART Function alias for pin [crate::Pins::gpio1].
64 FunctionUart, PullNone: Gp1Uart0Rx,
65 /// SPI Function alias for pin [crate::Pins::gpio1].
66 FunctionSpi, PullNone: Gp1Spi0Csn,
67 /// I2C Function alias for pin [crate::Pins::gpio1].
68 FunctionI2C, PullUp: Gp1I2C0Scl,
69 /// PWM Function alias for pin [crate::Pins::gpio1].
70 FunctionPwm, PullNone: Gp1Pwm0B,
71 /// PIO0 Function alias for pin [crate::Pins::gpio1].
72 FunctionPio0, PullNone: Gp1Pio0,
73 /// PIO1 Function alias for pin [crate::Pins::gpio1].
74 FunctionPio1, PullNone: Gp1Pio1
75 }
76 },
77
78 /// GPIO 16 supports following functions:
79 ///
80 /// | Function | Alias with applied function |
81 /// |--------------|-----------------------------|
82 /// | `SPI0 RX` | [crate::Gp16Spi0Rx] |
83 /// | `UART0 TX` | [crate::Gp16Uart0Tx] |
84 /// | `I2C0 SDA` | [crate::Gp16I2C0Sda] |
85 /// | `PWM0 A` | [crate::Gp16Pwm0A] |
86 /// | `PIO0` | [crate::Gp16Pio0] |
87 /// | `PIO1` | [crate::Gp16Pio1] |
88 Gpio16 {
89 name: gpio16,
90 aliases: {
91 /// UART Function alias for pin [crate::Pins::gpio16].
92 FunctionUart, PullNone: Gp16Uart0Tx,
93 /// SPI Function alias for pin [crate::Pins::gpio16].
94 FunctionSpi, PullNone: Gp16Spi0Rx,
95 /// I2C Function alias for pin [crate::Pins::gpio16].
96 FunctionI2C, PullUp: Gp16I2C0Sda,
97 /// PWM Function alias for pin [crate::Pins::gpio16].
98 FunctionPwm, PullNone: Gp16Pwm0A,
99 /// PIO0 Function alias for pin [crate::Pins::gpio16].
100 FunctionPio0, PullNone: Gp16Pio0,
101 /// PIO1 Function alias for pin [crate::Pins::gpio16].
102 FunctionPio1, PullNone: Gp16Pio1
103 }
104 },
105
106 /// GPIO 17 supports following functions:
107 ///
108 /// | Function | Alias with applied function |
109 /// |--------------|-----------------------------|
110 /// | `SPI0 CSn` | [crate::Gp17Spi0Csn] |
111 /// | `UART0 RX` | [crate::Gp17Uart0Rx] |
112 /// | `I2C0 SCL` | [crate::Gp17I2C0Scl] |
113 /// | `PWM0 B` | [crate::Gp17Pwm0B] |
114 /// | `PIO0` | [crate::Gp17Pio0] |
115 /// | `PIO1` | [crate::Gp17Pio1] |
116 Gpio17 {
117 name: gpio17,
118 aliases: {
119 /// UART Function alias for pin [crate::Pins::gpio17].
120 FunctionUart, PullNone: Gp17Uart0Rx,
121 /// SPI Function alias for pin [crate::Pins::gpio17].
122 FunctionSpi, PullNone: Gp17Spi0Csn,
123 /// I2C Function alias for pin [crate::Pins::gpio17].
124 FunctionI2C, PullUp: Gp17I2C0Scl,
125 /// PWM Function alias for pin [crate::Pins::gpio17].
126 FunctionPwm, PullNone: Gp17Pwm0B,
127 /// PIO0 Function alias for pin [crate::Pins::gpio17].
128 FunctionPio0, PullNone: Gp17Pio0,
129 /// PIO1 Function alias for pin [crate::Pins::gpio17].
130 FunctionPio1, PullNone: Gp17Pio1
131 }
132 },
133
134 /// GPIO 4 supports following functions:
135 ///
136 /// | Function | Alias with applied function |
137 /// |--------------|-----------------------------|
138 /// | `SPI0 RX` | [crate::Gp4Spi0Rx] |
139 /// | `UART1 TX` | [crate::Gp4Uart1Tx] |
140 /// | `I2C0 SDA` | [crate::Gp4I2C0Sda] |
141 /// | `PWM2 A` | [crate::Gp4Pwm2A] |
142 /// | `PIO0` | [crate::Gp4Pio0] |
143 /// | `PIO1` | [crate::Gp4Pio1] |
144 Gpio4 {
145 name: gpio4,
146 aliases: {
147 /// UART Function alias for pin [crate::Pins::gpio4].
148 FunctionUart, PullNone: Gp4Uart1Tx,
149 /// SPI Function alias for pin [crate::Pins::gpio4].
150 FunctionSpi, PullNone: Gp4Spi0Rx,
151 /// I2C Function alias for pin [crate::Pins::gpio4].
152 FunctionI2C, PullUp: Gp4I2C0Sda,
153 /// PWM Function alias for pin [crate::Pins::gpio4].
154 FunctionPwm, PullNone: Gp4Pwm2A,
155 /// PIO0 Function alias for pin [crate::Pins::gpio4].
156 FunctionPio0, PullNone: Gp4Pio0,
157 /// PIO1 Function alias for pin [crate::Pins::gpio4].
158 FunctionPio1, PullNone: Gp4Pio1
159 }
160 },
161
162 /// GPIO 5 supports following functions:
163 ///
164 /// | Function | Alias with applied function |
165 /// |--------------|-----------------------------|
166 /// | `SPI0 CSn` | [crate::Gp5Spi0Csn] |
167 /// | `UART1 RX` | [crate::Gp5Uart1Rx] |
168 /// | `I2C0 SCL` | [crate::Gp5I2C0Scl] |
169 /// | `PWM2 B` | [crate::Gp5Pwm2B] |
170 /// | `PIO0` | [crate::Gp5Pio0] |
171 /// | `PIO1` | [crate::Gp5Pio1] |
172 Gpio5 {
173 name: gpio5,
174 aliases: {
175 /// UART Function alias for pin [crate::Pins::gpio5].
176 FunctionUart, PullNone: Gp5Uart1Rx,
177 /// SPI Function alias for pin [crate::Pins::gpio5].
178 FunctionSpi, PullNone: Gp5Spi0Csn,
179 /// I2C Function alias for pin [crate::Pins::gpio5].
180 FunctionI2C, PullUp: Gp5I2C0Scl,
181 /// PWM Function alias for pin [crate::Pins::gpio5].
182 FunctionPwm, PullNone: Gp5Pwm2B,
183 /// PIO0 Function alias for pin [crate::Pins::gpio5].
184 FunctionPio0, PullNone: Gp5Pio0,
185 /// PIO1 Function alias for pin [crate::Pins::gpio5].
186 FunctionPio1, PullNone: Gp5Pio1
187 }
188 },
189
190 /// GPIO 6 supports following functions:
191 ///
192 /// | Function | Alias with applied function |
193 /// |--------------|-----------------------------|
194 /// | `SPI0 SCK` | [crate::Gp6Spi0Sck] |
195 /// | `UART1 CTS` | [crate::Gp6Uart1Cts] |
196 /// | `I2C1 SDA` | [crate::Gp6I2C1Sda] |
197 /// | `PWM3 A` | [crate::Gp6Pwm3A] |
198 /// | `PIO0` | [crate::Gp6Pio0] |
199 /// | `PIO1` | [crate::Gp6Pio1] |
200 Gpio6 {
201 name: gpio6,
202 aliases: {
203 /// UART Function alias for pin [crate::Pins::gpio6].
204 FunctionUart, PullNone: Gp6Uart1Cts,
205 /// SPI Function alias for pin [crate::Pins::gpio6].
206 FunctionSpi, PullNone: Gp6Spi0Sck,
207 /// I2C Function alias for pin [crate::Pins::gpio6].
208 FunctionI2C, PullUp: Gp6I2C1Sda,
209 /// PWM Function alias for pin [crate::Pins::gpio6].
210 FunctionPwm, PullNone: Gp6Pwm3A,
211 /// PIO0 Function alias for pin [crate::Pins::gpio6].
212 FunctionPio0, PullNone: Gp6Pio0,
213 /// PIO1 Function alias for pin [crate::Pins::gpio6].
214 FunctionPio1, PullNone: Gp6Pio1
215 }
216 },
217
218 /// GPIO 7 supports following functions:
219 ///
220 /// | Function | Alias with applied function |
221 /// |--------------|-----------------------------|
222 /// | `SPI0 TX` | [crate::Gp7Spi0Tx] |
223 /// | `UART1 RTS` | [crate::Gp7Uart1Rts] |
224 /// | `I2C1 SCL` | [crate::Gp7I2C1Scl] |
225 /// | `PWM3 B` | [crate::Gp7Pwm3B] |
226 /// | `PIO0` | [crate::Gp7Pio0] |
227 /// | `PIO1` | [crate::Gp7Pio1] |
228 Gpio7 {
229 name: gpio7,
230 aliases: {
231 /// UART Function alias for pin [crate::Pins::gpio7].
232 FunctionUart, PullNone: Gp7Uart1Rts,
233 /// SPI Function alias for pin [crate::Pins::gpio7].
234 FunctionSpi, PullNone: Gp7Spi0Tx,
235 /// I2C Function alias for pin [crate::Pins::gpio7].
236 FunctionI2C, PullUp: Gp7I2C1Scl,
237 /// PWM Function alias for pin [crate::Pins::gpio7].
238 FunctionPwm, PullNone: Gp7Pwm3B,
239 /// PIO0 Function alias for pin [crate::Pins::gpio7].
240 FunctionPio0, PullNone: Gp7Pio0,
241 /// PIO1 Function alias for pin [crate::Pins::gpio7].
242 FunctionPio1, PullNone: Gp7Pio1
243 }
244 },
245
246 /// GPIO 8 supports following functions:
247 ///
248 /// | Function | Alias with applied function |
249 /// |--------------|-----------------------------|
250 /// | `SPI1 RX` | [crate::Gp8Spi1Rx] |
251 /// | `UART1 TX` | [crate::Gp8Uart1Tx] |
252 /// | `I2C0 SDA` | [crate::Gp8I2C0Sda] |
253 /// | `PWM4 A` | [crate::Gp8Pwm4A] |
254 /// | `PIO0` | [crate::Gp8Pio0] |
255 /// | `PIO1` | [crate::Gp8Pio1] |
256 Gpio8 {
257 name: gpio8,
258 aliases: {
259 /// UART Function alias for pin [crate::Pins::gpio8].
260 FunctionUart, PullNone: Gp8Uart1Tx,
261 /// SPI Function alias for pin [crate::Pins::gpio8].
262 FunctionSpi, PullNone: Gp8Spi1Rx,
263 /// I2C Function alias for pin [crate::Pins::gpio8].
264 FunctionI2C, PullUp: Gp8I2C0Sda,
265 /// PWM Function alias for pin [crate::Pins::gpio8].
266 FunctionPwm, PullNone: Gp8Pwm4A,
267 /// PIO0 Function alias for pin [crate::Pins::gpio8].
268 FunctionPio0, PullNone: Gp8Pio0,
269 /// PIO1 Function alias for pin [crate::Pins::gpio8].
270 FunctionPio1, PullNone: Gp8Pio1
271 }
272 },
273
274 /// GPIO 9 supports following functions:
275 ///
276 /// | Function | Alias with applied function |
277 /// |--------------|-----------------------------|
278 /// | `SPI1 CSn` | [crate::Gp9Spi1Csn] |
279 /// | `UART1 RX` | [crate::Gp9Uart1Rx] |
280 /// | `I2C0 SCL` | [crate::Gp9I2C0Scl] |
281 /// | `PWM4 B` | [crate::Gp9Pwm4B] |
282 /// | `PIO0` | [crate::Gp9Pio0] |
283 /// | `PIO1` | [crate::Gp9Pio1] |
284 Gpio9 {
285 name: gpio9,
286 aliases: {
287 /// UART Function alias for pin [crate::Pins::gpio9].
288 FunctionUart, PullNone: Gp9Uart1Rx,
289 /// SPI Function alias for pin [crate::Pins::gpio9].
290 FunctionSpi, PullNone: Gp9Spi1Csn,
291 /// I2C Function alias for pin [crate::Pins::gpio9].
292 FunctionI2C, PullUp: Gp9I2C0Scl,
293 /// PWM Function alias for pin [crate::Pins::gpio9].
294 FunctionPwm, PullNone: Gp9Pwm4B,
295 /// PIO0 Function alias for pin [crate::Pins::gpio9].
296 FunctionPio0, PullNone: Gp9Pio0,
297 /// PIO1 Function alias for pin [crate::Pins::gpio9].
298 FunctionPio1, PullNone: Gp9Pio1
299 }
300 },
301
302 /// GPIO 29 supports following functions:
303 ///
304 /// | Function | Alias with applied function |
305 /// |--------------|-----------------------------|
306 /// | `SPI1 CSn` | [crate::Gp29Spi1Csn] |
307 /// | `UART0 RX` | [crate::Gp29Uart0Rx] |
308 /// | `I2C0 SCL` | [crate::Gp29I2C0Scl] |
309 /// | `PWM4 B` | [crate::Gp29Pwm6B] |
310 /// | `PIO0` | [crate::Gp29Pio0] |
311 /// | `PIO1` | [crate::Gp29Pio1] |
312 Gpio29 {
313 name: gpio29,
314 aliases: {
315 /// UART Function alias for pin [crate::Pins::gpio29].
316 FunctionUart, PullNone: Gp29Uart0Rx,
317 /// SPI Function alias for pin [crate::Pins::gpio29].
318 FunctionSpi, PullNone: Gp29Spi1Csn,
319 /// I2C Function alias for pin [crate::Pins::gpio29].
320 FunctionI2C, PullUp: Gp29I2C0Scl,
321 /// PWM Function alias for pin [crate::Pins::gpio29].
322 FunctionPwm, PullNone: Gp29Pwm6B,
323 /// PIO0 Function alias for pin [crate::Pins::gpio29].
324 FunctionPio0, PullNone: Gp29Pio0,
325 /// PIO1 Function alias for pin [crate::Pins::gpio29].
326 FunctionPio1, PullNone: Gp29Pio1
327 }
328 },
329
330 /// GPIO 28 supports following functions:
331 ///
332 /// | Function | Alias with applied function |
333 /// |--------------|-----------------------------|
334 /// | `SPI1 RX` | [crate::Gp28Spi1Rx] |
335 /// | `UART0 TX` | [crate::Gp28Uart0Tx] |
336 /// | `I2C0 SDA` | [crate::Gp28I2C0Sda] |
337 /// | `PWM6 A` | [crate::Gp28Pwm6A] |
338 /// | `PIO0` | [crate::Gp28Pio0] |
339 /// | `PIO1` | [crate::Gp28Pio1] |
340 Gpio28 {
341 name: gpio28,
342 aliases: {
343 /// UART Function alias for pin [crate::Pins::gpio28].
344 FunctionUart, PullNone: Gp28Uart0Tx,
345 /// SPI Function alias for pin [crate::Pins::gpio28].
346 FunctionSpi, PullNone: Gp28Spi1Rx,
347 /// I2C Function alias for pin [crate::Pins::gpio28].
348 FunctionI2C, PullUp: Gp28I2C0Sda,
349 /// PWM Function alias for pin [crate::Pins::gpio28].
350 FunctionPwm, PullNone: Gp28Pwm6A,
351 /// PIO0 Function alias for pin [crate::Pins::gpio28].
352 FunctionPio0, PullNone: Gp28Pio0,
353 /// PIO1 Function alias for pin [crate::Pins::gpio28].
354 FunctionPio1, PullNone: Gp28Pio1
355 }
356 },
357
358 /// GPIO 27 supports following functions:
359 ///
360 /// | Function | Alias with applied function |
361 /// |--------------|-----------------------------|
362 /// | `SPI1 TX` | [crate::Gp27Spi1Tx] |
363 /// | `UART1 RTS` | [crate::Gp27Uart1Rts] |
364 /// | `I2C1 SCL` | [crate::Gp27I2C1Scl] |
365 /// | `PWM5 B` | [crate::Gp27Pwm5B] |
366 /// | `PIO0` | [crate::Gp27Pio0] |
367 /// | `PIO1` | [crate::Gp27Pio1] |
368 Gpio27 {
369 name: gpio27,
370 aliases: {
371 /// UART Function alias for pin [crate::Pins::gpio27].
372 FunctionUart, PullNone: Gp27Uart1Rts,
373 /// SPI Function alias for pin [crate::Pins::gpio27].
374 FunctionSpi, PullNone: Gp27Spi1Tx,
375 /// I2C Function alias for pin [crate::Pins::gpio27].
376 FunctionI2C, PullUp: Gp27I2C1Scl,
377 /// PWM Function alias for pin [crate::Pins::gpio27].
378 FunctionPwm, PullNone: Gp27Pwm5B,
379 /// PIO0 Function alias for pin [crate::Pins::gpio27].
380 FunctionPio0, PullNone: Gp27Pio0,
381 /// PIO1 Function alias for pin [crate::Pins::gpio27].
382 FunctionPio1, PullNone: Gp27Pio1
383 }
384 },
385
386 /// GPIO 26 supports following functions:
387 ///
388 /// | Function | Alias with applied function |
389 /// |--------------|-----------------------------|
390 /// | `SPI1 SCK` | [crate::Gp26Spi1Sck] |
391 /// | `UART1 CTS` | [crate::Gp26Uart1Cts] |
392 /// | `I2C1 SDA` | [crate::Gp26I2C1Sda] |
393 /// | `PWM5 A` | [crate::Gp26Pwm5A] |
394 /// | `PIO0` | [crate::Gp26Pio0] |
395 /// | `PIO1` | [crate::Gp26Pio1] |
396 Gpio26 {
397 name: gpio26,
398 aliases: {
399 /// UART Function alias for pin [crate::Pins::gpio26].
400 FunctionUart, PullNone: Gp26Uart1Cts,
401 /// SPI Function alias for pin [crate::Pins::gpio26].
402 FunctionSpi, PullNone: Gp26Spi1Sck,
403 /// I2C Function alias for pin [crate::Pins::gpio26].
404 FunctionI2C, PullUp: Gp26I2C1Sda,
405 /// PWM Function alias for pin [crate::Pins::gpio26].
406 FunctionPwm, PullNone: Gp26Pwm5A,
407 /// PIO0 Function alias for pin [crate::Pins::gpio26].
408 FunctionPio0, PullNone: Gp26Pio0,
409 /// PIO1 Function alias for pin [crate::Pins::gpio26].
410 FunctionPio1, PullNone: Gp26Pio1
411 }
412 },
413
414 /// GPIO 22 supports following functions:
415 ///
416 /// | Function | Alias with applied function |
417 /// |--------------|-----------------------------|
418 /// | `SPI0 SCK` | [crate::Gp22Spi0Sck] |
419 /// | `UART1 CTS` | [crate::Gp22Uart1Cts] |
420 /// | `I2C1 SDA` | [crate::Gp22I2C1Sda] |
421 /// | `PWM3 A` | [crate::Gp22Pwm3A] |
422 /// | `PIO0` | [crate::Gp22Pio0] |
423 /// | `PIO1` | [crate::Gp22Pio1] |
424 Gpio22 {
425 name: gpio22,
426 aliases: {
427 /// UART Function alias for pin [crate::Pins::gpio22].
428 FunctionUart, PullNone: Gp22Uart1Cts,
429 /// SPI Function alias for pin [crate::Pins::gpio22].
430 FunctionSpi, PullNone: Gp22Spi0Sck,
431 /// I2C Function alias for pin [crate::Pins::gpio22].
432 FunctionI2C, PullUp: Gp22I2C1Sda,
433 /// PWM Function alias for pin [crate::Pins::gpio22].
434 FunctionPwm, PullNone: Gp22Pwm3A,
435 /// PIO0 Function alias for pin [crate::Pins::gpio22].
436 FunctionPio0, PullNone: Gp22Pio0,
437 /// PIO1 Function alias for pin [crate::Pins::gpio22].
438 FunctionPio1, PullNone: Gp22Pio1
439 }
440 },
441
442 /// GPIO 20 supports following functions:
443 ///
444 /// | Function | Alias with applied function |
445 /// |--------------|-----------------------------|
446 /// | `SPI0 RX` | [crate::Gp20Spi0Rx] |
447 /// | `UART1 TX` | [crate::Gp20Uart1Tx] |
448 /// | `I2C0 SDA` | [crate::Gp20I2C0Sda] |
449 /// | `PWM2 A` | [crate::Gp20Pwm2A] |
450 /// | `PIO0` | [crate::Gp20Pio0] |
451 /// | `PIO1` | [crate::Gp20Pio1] |
452 Gpio20 {
453 name: gpio20,
454 aliases: {
455 /// UART Function alias for pin [crate::Pins::gpio20].
456 FunctionUart, PullNone: Gp20Uart1Tx,
457 /// SPI Function alias for pin [crate::Pins::gpio20].
458 FunctionSpi, PullNone: Gp20Spi0Rx,
459 /// I2C Function alias for pin [crate::Pins::gpio20].
460 FunctionI2C, PullUp: Gp20I2C0Sda,
461 /// PWM Function alias for pin [crate::Pins::gpio20].
462 FunctionPwm, PullNone: Gp20Pwm2A,
463 /// PIO0 Function alias for pin [crate::Pins::gpio20].
464 FunctionPio0, PullNone: Gp20Pio0,
465 /// PIO1 Function alias for pin [crate::Pins::gpio20].
466 FunctionPio1, PullNone: Gp20Pio1
467 }
468 },
469
470 /// GPIO 23 supports following functions:
471 ///
472 /// | Function | Alias with applied function |
473 /// |--------------|-----------------------------|
474 /// | `SPI0 TX` | [crate::Gp23Spi0Tx] |
475 /// | `UART1 RTS` | [crate::Gp23Uart1Rts] |
476 /// | `I2C1 SCL` | [crate::Gp23I2C1Scl] |
477 /// | `PWM3 B` | [crate::Gp23Pwm3B] |
478 /// | `PIO0` | [crate::Gp23Pio0] |
479 /// | `PIO1` | [crate::Gp23Pio1] |
480 Gpio23 {
481 name: gpio23,
482 aliases: {
483 /// UART Function alias for pin [crate::Pins::gpio21].
484 FunctionUart, PullNone: Gp23Uart1Rts,
485 /// SPI Function alias for pin [crate::Pins::gpio21].
486 FunctionSpi, PullNone: Gp23Spi0Tx,
487 /// I2C Function alias for pin [crate::Pins::gpio21].
488 FunctionI2C, PullUp: Gp23I2C1Scl,
489 /// PWM Function alias for pin [crate::Pins::gpio21].
490 FunctionPwm, PullNone: Gp23Pwm3B,
491 /// PIO0 Function alias for pin [crate::Pins::gpio21].
492 FunctionPio0, PullNone: Gp23Pio0,
493 /// PIO1 Function alias for pin [crate::Pins::gpio21].
494 FunctionPio1, PullNone: Gp23Pio1
495 }
496 },
497
498 /// GPIO 21 supports following functions:
499 ///
500 /// | Function | Alias with applied function |
501 /// |--------------|-----------------------------|
502 /// | `SPI0 CSn` | [crate::Gp21Spi0Csn] |
503 /// | `UART1 RX` | [crate::Gp21Uart1Rx] |
504 /// | `I2C0 SCL` | [crate::Gp21I2C0Scl] |
505 /// | `PWM2 B` | [crate::Gp21Pwm2B] |
506 /// | `PIO0` | [crate::Gp21Pio0] |
507 /// | `PIO1` | [crate::Gp21Pio1] |
508 Gpio21 {
509 name: gpio21,
510 aliases: {
511 /// UART Function alias for pin [crate::Pins::gpio21].
512 FunctionUart, PullNone: Gp21Uart1Rx,
513 /// SPI Function alias for pin [crate::Pins::gpio21].
514 FunctionSpi, PullNone: Gp21Spi0Csn,
515 /// I2C Function alias for pin [crate::Pins::gpio21].
516 FunctionI2C, PullUp: Gp21I2C0Scl,
517 /// PWM Function alias for pin [crate::Pins::gpio21].
518 FunctionPwm, PullNone: Gp21Pwm2B,
519 /// PIO0 Function alias for pin [crate::Pins::gpio21].
520 FunctionPio0, PullNone: Gp21Pio0,
521 /// PIO1 Function alias for pin [crate::Pins::gpio21].
522 FunctionPio1, PullNone: Gp21Pio1
523 }
524 },
525
526 /// GPIO 25 is connected to a neopixel on the top right of the board
527 Gpio25 {
528 name: neopixel,
529 },
530);
531
532pub const XOSC_CRYSTAL_FREQ: u32 = 12_000_000;