From c8cbc97e0da42d9047ae4f7cfd4c0940b17e15e8 Mon Sep 17 00:00:00 2001 From: Dong Heng Date: Fri, 7 Sep 2018 15:45:41 +0800 Subject: [PATCH] feat(esp8266): Add configuration for UART swap I/O pins --- components/bootloader_support/src/bootloader_init.c | 10 ++++++++++ components/esp8266/Kconfig | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/components/bootloader_support/src/bootloader_init.c b/components/bootloader_support/src/bootloader_init.c index 77edb7e7..a7e518bb 100644 --- a/components/bootloader_support/src/bootloader_init.c +++ b/components/bootloader_support/src/bootloader_init.c @@ -568,6 +568,16 @@ static void update_flash_config(const esp_image_header_t* pfhdr); static void uart_console_configure(void) { +#if CONFIG_CONSOLE_UART_SWAP_IO + while (READ_PERI_REG(UART_STATUS(0)) & (UART_TXFIFO_CNT << UART_TXFIFO_CNT_S)); + + PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_UART0_CTS); + PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_UART0_RTS); + + // UART0: TXD <-> RTS and RXD <-> CTS + SET_PERI_REG_MASK(UART_SWAP_REG, 0x4); +#endif + #if CONFIG_CONSOLE_UART_NUM == 1 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_U1TXD_BK); diff --git a/components/esp8266/Kconfig b/components/esp8266/Kconfig index bf1a79f8..a69952cc 100644 --- a/components/esp8266/Kconfig +++ b/components/esp8266/Kconfig @@ -57,6 +57,12 @@ config CONSOLE_UART_BAUDRATE default 74880 range 1200 4000000 +config CONSOLE_UART_SWAP_IO + bool "Swap UART0 I/O pins" + default n + help + Enable this option, UART0's I/O pins are swaped: TXD <-> RTS, RTX <-> CTS. + endmenu menu WIFI