summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Epler <jeff@adafruit.com>2020-12-29 10:08:47 -0600
committerGitHub <noreply@github.com>2020-12-29 10:08:47 -0600
commit7401aa8e8506e61e1637ef1c826be4d5f74c38f9 (patch)
treef43cfb83f1b27612a8e3815b335033e4a98a15cb
parentf9d9c031a9449105b264bee58c0893511b9a6f14 (diff)
parentdc332baa87bf1fa3d777ffe31c7dc29b24a6a142 (diff)
Merge pull request #3888 from microDev1/fix-reset-pin
FIX : common_hal_reset_pin()
-rw-r--r--ports/atmel-samd/common-hal/microcontroller/Pin.c3
-rw-r--r--ports/esp32s2/common-hal/busio/SPI.c8
-rw-r--r--ports/esp32s2/common-hal/microcontroller/Pin.c3
-rw-r--r--ports/litex/common-hal/microcontroller/Pin.c3
-rw-r--r--ports/mimxrt10xx/common-hal/busio/SPI.c9
-rw-r--r--ports/mimxrt10xx/common-hal/busio/UART.c10
-rw-r--r--ports/mimxrt10xx/common-hal/microcontroller/Pin.c3
-rw-r--r--ports/nrf/common-hal/microcontroller/Pin.c3
-rw-r--r--ports/stm/common-hal/microcontroller/Pin.c3
-rw-r--r--shared-module/displayio/FourWire.c4
10 files changed, 28 insertions, 21 deletions
diff --git a/ports/atmel-samd/common-hal/microcontroller/Pin.c b/ports/atmel-samd/common-hal/microcontroller/Pin.c
index 7dd87a3b2..564d037e0 100644
--- a/ports/atmel-samd/common-hal/microcontroller/Pin.c
+++ b/ports/atmel-samd/common-hal/microcontroller/Pin.c
@@ -169,6 +169,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
}
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
+ if (pin == NULL) {
+ return;
+ }
reset_pin_number(pin->number);
}
diff --git a/ports/esp32s2/common-hal/busio/SPI.c b/ports/esp32s2/common-hal/busio/SPI.c
index 182a04b0b..c4d54ec81 100644
--- a/ports/esp32s2/common-hal/busio/SPI.c
+++ b/ports/esp32s2/common-hal/busio/SPI.c
@@ -248,12 +248,8 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
spi_bus_free(self->host_id);
common_hal_reset_pin(self->clock_pin);
- if (self->MOSI_pin != NULL) {
- common_hal_reset_pin(self->MOSI_pin);
- }
- if (self->MISO_pin != NULL) {
- common_hal_reset_pin(self->MISO_pin);
- }
+ common_hal_reset_pin(self->MOSI_pin);
+ common_hal_reset_pin(self->MISO_pin);
self->clock_pin = NULL;
self->MISO_pin = NULL;
self->MOSI_pin = NULL;
diff --git a/ports/esp32s2/common-hal/microcontroller/Pin.c b/ports/esp32s2/common-hal/microcontroller/Pin.c
index 9a393c170..fca89ce8e 100644
--- a/ports/esp32s2/common-hal/microcontroller/Pin.c
+++ b/ports/esp32s2/common-hal/microcontroller/Pin.c
@@ -89,6 +89,9 @@ void reset_pin_number(gpio_num_t pin_number) {
}
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
+ if (pin == NULL) {
+ return;
+ }
reset_pin_number(pin->number);
}
diff --git a/ports/litex/common-hal/microcontroller/Pin.c b/ports/litex/common-hal/microcontroller/Pin.c
index 38601e0d3..4d088a076 100644
--- a/ports/litex/common-hal/microcontroller/Pin.c
+++ b/ports/litex/common-hal/microcontroller/Pin.c
@@ -42,6 +42,9 @@ void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
}
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
+ if (pin == NULL) {
+ return;
+ }
reset_pin_number(0, pin->number);
}
diff --git a/ports/mimxrt10xx/common-hal/busio/SPI.c b/ports/mimxrt10xx/common-hal/busio/SPI.c
index 8fe1b799d..ce7cbea7e 100644
--- a/ports/mimxrt10xx/common-hal/busio/SPI.c
+++ b/ports/mimxrt10xx/common-hal/busio/SPI.c
@@ -220,12 +220,9 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
never_reset_spi[self->clock->bank_idx - 1] = false;
common_hal_reset_pin(self->clock->pin);
- if (self->mosi != NULL) {
- common_hal_reset_pin(self->mosi->pin);
- }
- if (self->miso != NULL) {
- common_hal_reset_pin(self->miso->pin);
- }
+ common_hal_reset_pin(self->mosi->pin);
+ common_hal_reset_pin(self->miso->pin);
+
self->clock = NULL;
self->mosi = NULL;
self->miso = NULL;
diff --git a/ports/mimxrt10xx/common-hal/busio/UART.c b/ports/mimxrt10xx/common-hal/busio/UART.c
index db5582d15..03a6e8f3e 100644
--- a/ports/mimxrt10xx/common-hal/busio/UART.c
+++ b/ports/mimxrt10xx/common-hal/busio/UART.c
@@ -295,12 +295,10 @@ void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
LPUART_Deinit(self->uart);
gc_free(self->ringbuf);
- if (self->rx) {
- common_hal_reset_pin(self->rx->pin);
- }
- if (self->tx) {
- common_hal_reset_pin(self->tx->pin);
- }
+
+ common_hal_reset_pin(self->rx->pin);
+ common_hal_reset_pin(self->tx->pin);
+
self->rx = NULL;
self->tx = NULL;
diff --git a/ports/mimxrt10xx/common-hal/microcontroller/Pin.c b/ports/mimxrt10xx/common-hal/microcontroller/Pin.c
index a005924e2..50970f8e2 100644
--- a/ports/mimxrt10xx/common-hal/microcontroller/Pin.c
+++ b/ports/mimxrt10xx/common-hal/microcontroller/Pin.c
@@ -67,6 +67,9 @@ void reset_all_pins(void) {
// Since i.MX pins need extra register and reset information to reset properly,
// resetting pins by number alone has been removed.
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
+ if (pin == NULL) {
+ return;
+ }
never_reset_pins[pin->mux_idx] = false;
claimed_pins[pin->mux_idx] = false;
*(uint32_t*)pin->mux_reg = pin->mux_reset;
diff --git a/ports/nrf/common-hal/microcontroller/Pin.c b/ports/nrf/common-hal/microcontroller/Pin.c
index bc7ff831a..23d6e23bf 100644
--- a/ports/nrf/common-hal/microcontroller/Pin.c
+++ b/ports/nrf/common-hal/microcontroller/Pin.c
@@ -134,6 +134,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
}
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
+ if (pin == NULL) {
+ return;
+ }
reset_pin_number(pin->number);
}
diff --git a/ports/stm/common-hal/microcontroller/Pin.c b/ports/stm/common-hal/microcontroller/Pin.c
index 0e333c71c..37c202d86 100644
--- a/ports/stm/common-hal/microcontroller/Pin.c
+++ b/ports/stm/common-hal/microcontroller/Pin.c
@@ -125,6 +125,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
}
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
+ if (pin == NULL) {
+ return;
+ }
reset_pin_number(pin->port, pin->number);
}
diff --git a/shared-module/displayio/FourWire.c b/shared-module/displayio/FourWire.c
index 06f8a84e3..e993f2480 100644
--- a/shared-module/displayio/FourWire.c
+++ b/shared-module/displayio/FourWire.c
@@ -76,9 +76,7 @@ void common_hal_displayio_fourwire_deinit(displayio_fourwire_obj_t* self) {
common_hal_reset_pin(self->command.pin);
common_hal_reset_pin(self->chip_select.pin);
- if (self->reset.pin) {
- common_hal_reset_pin(self->reset.pin);
- }
+ common_hal_reset_pin(self->reset.pin);
}
bool common_hal_displayio_fourwire_reset(mp_obj_t obj) {