summaryrefslogtreecommitdiff
path: root/ports/esp32/machine_uart.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/esp32/machine_uart.c')
-rw-r--r--ports/esp32/machine_uart.c38
1 files changed, 26 insertions, 12 deletions
diff --git a/ports/esp32/machine_uart.c b/ports/esp32/machine_uart.c
index c334e694b..7fce83f2c 100644
--- a/ports/esp32/machine_uart.c
+++ b/ports/esp32/machine_uart.c
@@ -36,6 +36,20 @@
#include "py/mperrno.h"
#include "modmachine.h"
+#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(4, 1, 0)
+#define UART_INV_TX UART_INVERSE_TXD
+#define UART_INV_RX UART_INVERSE_RXD
+#define UART_INV_RTS UART_INVERSE_RTS
+#define UART_INV_CTS UART_INVERSE_CTS
+#else
+#define UART_INV_TX UART_SIGNAL_TXD_INV
+#define UART_INV_RX UART_SIGNAL_RXD_INV
+#define UART_INV_RTS UART_SIGNAL_RTS_INV
+#define UART_INV_CTS UART_SIGNAL_CTS_INV
+#endif
+
+#define UART_INV_MASK (UART_INV_TX | UART_INV_RX | UART_INV_RTS | UART_INV_CTS)
+
typedef struct _machine_uart_obj_t {
mp_obj_base_t base;
uart_port_t uart_num;
@@ -68,28 +82,28 @@ STATIC void machine_uart_print(const mp_print_t *print, mp_obj_t self_in, mp_pri
if (self->invert) {
mp_printf(print, ", invert=");
uint32_t invert_mask = self->invert;
- if (invert_mask & UART_INVERSE_TXD) {
+ if (invert_mask & UART_INV_TX) {
mp_printf(print, "INV_TX");
- invert_mask &= ~UART_INVERSE_TXD;
+ invert_mask &= ~UART_INV_TX;
if (invert_mask) {
mp_printf(print, "|");
}
}
- if (invert_mask & UART_INVERSE_RXD) {
+ if (invert_mask & UART_INV_RX) {
mp_printf(print, "INV_RX");
- invert_mask &= ~UART_INVERSE_RXD;
+ invert_mask &= ~UART_INV_RX;
if (invert_mask) {
mp_printf(print, "|");
}
}
- if (invert_mask & UART_INVERSE_RTS) {
+ if (invert_mask & UART_INV_RTS) {
mp_printf(print, "INV_RTS");
- invert_mask &= ~UART_INVERSE_RTS;
+ invert_mask &= ~UART_INV_RTS;
if (invert_mask) {
mp_printf(print, "|");
}
}
- if (invert_mask & UART_INVERSE_CTS) {
+ if (invert_mask & UART_INV_CTS) {
mp_printf(print, "INV_CTS");
}
}
@@ -238,7 +252,7 @@ STATIC void machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, co
}
// set line inversion
- if (args[ARG_invert].u_int & ~UART_LINE_INV_MASK) {
+ if (args[ARG_invert].u_int & ~UART_INV_MASK) {
mp_raise_ValueError(MP_ERROR_TEXT("invalid inversion mask"));
}
self->invert = args[ARG_invert].u_int;
@@ -380,10 +394,10 @@ STATIC const mp_rom_map_elem_t machine_uart_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&mp_stream_write_obj) },
{ MP_ROM_QSTR(MP_QSTR_sendbreak), MP_ROM_PTR(&machine_uart_sendbreak_obj) },
- { MP_ROM_QSTR(MP_QSTR_INV_TX), MP_ROM_INT(UART_INVERSE_TXD) },
- { MP_ROM_QSTR(MP_QSTR_INV_RX), MP_ROM_INT(UART_INVERSE_RXD) },
- { MP_ROM_QSTR(MP_QSTR_INV_RTS), MP_ROM_INT(UART_INVERSE_RTS) },
- { MP_ROM_QSTR(MP_QSTR_INV_CTS), MP_ROM_INT(UART_INVERSE_CTS) },
+ { MP_ROM_QSTR(MP_QSTR_INV_TX), MP_ROM_INT(UART_INV_TX) },
+ { MP_ROM_QSTR(MP_QSTR_INV_RX), MP_ROM_INT(UART_INV_RX) },
+ { MP_ROM_QSTR(MP_QSTR_INV_RTS), MP_ROM_INT(UART_INV_RTS) },
+ { MP_ROM_QSTR(MP_QSTR_INV_CTS), MP_ROM_INT(UART_INV_CTS) },
};
STATIC MP_DEFINE_CONST_DICT(machine_uart_locals_dict, machine_uart_locals_dict_table);