Skip to content

Commit 7805392

Browse files
Update UART.c
Incorporating feedback: #4772 (comment)
1 parent 2b64b1d commit 7805392

File tree

1 file changed

+10
-13
lines changed
  • ports/atmel-samd/common-hal/busio

1 file changed

+10
-13
lines changed

ports/atmel-samd/common-hal/busio/UART.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -255,21 +255,18 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
255255
}
256256

257257
void common_hal_busio_uart_never_reset(busio_uart_obj_t *self) {
258-
#if (1)
259-
never_reset_sercom(self->usart_desc.device.hw);
260-
never_reset_pin_number(self->rx_pin);
261-
never_reset_pin_number(self->tx_pin);
262-
return;
263-
#else
264-
for (size_t i = 0; i < MP_ARRAY_SIZE(mcu_uart_banks); i++) {
265-
if (mcu_uart_banks[i] == self->handle.Instance) {
266-
never_reset_uart[i] = true;
267-
never_reset_pin_number(self->tx->pin->port, self->tx->pin->number);
268-
never_reset_pin_number(self->rx->pin->port, self->rx->pin->number);
269-
break;
258+
for (size_t i = 0; i < MP_ARRAY_SIZE(sercom_insts); i++) {
259+
const Sercom *sercom = sercom_insts[i];
260+
Sercom *hw = (Sercom *)(self->usart_desc.device.hw);
261+
262+
// Reserve pins for active UART only
263+
if (sercom == hw) {
264+
never_reset_sercom(hw);
265+
never_reset_pin_number(self->rx_pin);
266+
never_reset_pin_number(self->tx_pin);
270267
}
271268
}
272-
#endif
269+
return;
273270
}
274271

275272
bool common_hal_busio_uart_deinited(busio_uart_obj_t *self) {

0 commit comments

Comments
 (0)