Skip to content

Commit 9e722c8

Browse files
authored
Merge pull request #3375 from DavePutz/issue3296
Correction for Issue #3296 - ble hanging on nrf52840
2 parents e5dd2a3 + 2690fae commit 9e722c8

File tree

5 files changed

+21
-1
lines changed
  • ports
    • atmel-samd/common-hal/microcontroller
    • esp32s2/common-hal/microcontroller
    • nrf/common-hal
    • stm/common-hal/microcontroller

5 files changed

+21
-1
lines changed

ports/atmel-samd/common-hal/microcontroller/Pin.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ void reset_all_pins(void) {
106106
}
107107

108108
void never_reset_pin_number(uint8_t pin_number) {
109+
if (pin_number >= PORT_BITS) {
110+
return;
111+
}
112+
109113
never_reset_pins[GPIO_PORT(pin_number)] |= 1 << GPIO_PIN(pin_number);
110114
}
111115

ports/esp32s2/common-hal/microcontroller/Pin.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ bool apa102_mosi_in_use;
4545
bool apa102_sck_in_use;
4646

4747
void never_reset_pin_number(gpio_num_t pin_number) {
48+
if (pin_number == -1 ) {
49+
return;
50+
}
4851
never_reset_pins[pin_number / 32] |= 1 << pin_number % 32;
4952
}
5053

@@ -54,6 +57,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
5457

5558
// Mark pin as free and return it to a quiescent state.
5659
void reset_pin_number(gpio_num_t pin_number) {
60+
if (pin_number == -1 ) {
61+
return;
62+
}
5763
never_reset_pins[pin_number / 32] &= ~(1 << pin_number % 32);
5864
in_use[pin_number / 32] &= ~(1 << pin_number % 32);
5965

ports/nrf/common-hal/busio/SPI.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, const mcu_pin_obj_t *
180180

181181
if (miso != NULL) {
182182
config.miso_pin = miso->number;
183-
self->MISO_pin_number = mosi->number;
183+
self->MISO_pin_number = miso->number;
184184
claim_pin(miso);
185185
} else {
186186
self->MISO_pin_number = NO_PIN;

ports/nrf/common-hal/microcontroller/Pin.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ void reset_pin_number(uint8_t pin_number) {
123123

124124

125125
void never_reset_pin_number(uint8_t pin_number) {
126+
if (pin_number == NO_PIN) {
127+
return;
128+
}
126129
never_reset_pins[nrf_pin_port(pin_number)] |= 1 << nrf_relative_pin_number(pin_number);
127130
}
128131

ports/stm/common-hal/microcontroller/Pin.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ void reset_all_pins(void) {
7070

7171
// Mark pin as free and return it to a quiescent state.
7272
void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
73+
if ( pin_number == NO_PIN ) {
74+
return;
75+
}
76+
7377
if (pin_port == 0x0F) {
7478
return;
7579
}
@@ -88,6 +92,9 @@ void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
8892
}
8993

9094
void never_reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
95+
if ( pin_number == NO_PIN ) {
96+
return;
97+
}
9198
never_reset_pins[pin_port] |= 1<<pin_number;
9299
// Make sure never reset pins are also always claimed
93100
claimed_pins[pin_port] |= 1<<pin_number;

0 commit comments

Comments
 (0)