26
26
27
27
#include "py/runtime.h"
28
28
29
+ #include "common-hal/microcontroller/__init__.h"
29
30
#include "shared-bindings/microcontroller/Pin.h"
30
31
31
32
#include "supervisor/shared/rgb_led_status.h"
@@ -46,7 +47,7 @@ bool speaker_enable_in_use;
46
47
STATIC uint32_t never_reset_pins ;
47
48
48
49
void reset_all_pins (void ) {
49
- for (size_t i = 0 ; i < 30 ; i ++ ) {
50
+ for (size_t i = 0 ; i < TOTAL_GPIO_COUNT ; i ++ ) {
50
51
if ((never_reset_pins & (1 << i )) != 0 ) {
51
52
continue ;
52
53
}
@@ -55,20 +56,15 @@ void reset_all_pins(void) {
55
56
}
56
57
57
58
void never_reset_pin_number (uint8_t pin_number ) {
58
- if (pin_number >= 32 ) {
59
+ if (pin_number >= TOTAL_GPIO_COUNT ) {
59
60
return ;
60
61
}
61
62
62
63
never_reset_pins |= 1 << pin_number ;
63
64
}
64
65
65
66
void reset_pin_number (uint8_t pin_number ) {
66
- if (pin_number >= 32
67
- #if TUD_OPT_RP2040_USB_DEVICE_ENUMERATION_FIX
68
- // Pin 15 is used for Errata so we don't mess with it.
69
- || pin_number == 15
70
- #endif
71
- ) {
67
+ if (pin_number >= TOTAL_GPIO_COUNT ) {
72
68
return ;
73
69
}
74
70
@@ -139,15 +135,10 @@ void claim_pin(const mcu_pin_obj_t* pin) {
139
135
}
140
136
141
137
bool pin_number_is_free (uint8_t pin_number ) {
142
- if (pin_number >= 30 ) {
138
+ if (pin_number >= TOTAL_GPIO_COUNT ) {
143
139
return false;
144
140
}
145
- #if TUD_OPT_RP2040_USB_DEVICE_ENUMERATION_FIX
146
- // Pin 15 is used for Errata so we don't mess with it.
147
- if (pin_number == 15 ) {
148
- return true;
149
- }
150
- #endif
141
+
151
142
uint32_t pad_state = padsbank0_hw -> io [pin_number ];
152
143
return (pad_state & PADS_BANK0_GPIO0_IE_BITS ) == 0 &&
153
144
(pad_state & PADS_BANK0_GPIO0_OD_BITS ) != 0 ;
0 commit comments