@@ -44,6 +44,19 @@ STATIC uint32_t in_use[2];
44
44
bool apa102_mosi_in_use ;
45
45
bool apa102_sck_in_use ;
46
46
47
+ STATIC void floating_gpio_reset (gpio_num_t pin_number ) {
48
+ // This is the same as gpio_reset_pin(), but without the pullup.
49
+ // Note that gpio_config resets the iomatrix to GPIO_FUNC as well.
50
+ gpio_config_t cfg = {
51
+ .pin_bit_mask = BIT64 (pin_number ),
52
+ .mode = GPIO_MODE_DISABLE ,
53
+ .pull_up_en = false,
54
+ .pull_down_en = false,
55
+ .intr_type = GPIO_INTR_DISABLE ,
56
+ };
57
+ gpio_config (& cfg );
58
+ }
59
+
47
60
void never_reset_pin_number (gpio_num_t pin_number ) {
48
61
if (pin_number == -1 ) {
49
62
return ;
@@ -63,7 +76,7 @@ void reset_pin_number(gpio_num_t pin_number) {
63
76
never_reset_pins [pin_number / 32 ] &= ~(1 << pin_number % 32 );
64
77
in_use [pin_number / 32 ] &= ~(1 << pin_number % 32 );
65
78
66
- gpio_matrix_out (pin_number , 0x100 , 0 , 0 );
79
+ floating_gpio_reset (pin_number );
67
80
68
81
#ifdef MICROPY_HW_NEOPIXEL
69
82
if (pin_number == MICROPY_HW_NEOPIXEL -> number ) {
@@ -85,7 +98,7 @@ void reset_all_pins(void) {
85
98
(never_reset_pins [i / 32 ] & (1 << i % 32 )) != 0 ) {
86
99
continue ;
87
100
}
88
- gpio_matrix_out ( i , 0x100 , 0 , 0 );
101
+ floating_gpio_reset ( i );
89
102
}
90
103
in_use [0 ] = 0 ;
91
104
in_use [1 ] = 0 ;
0 commit comments