drivers: esp32: Add UART Driver with FIFO/Interrupt support

- Fixes #3981
- Implement UART Polling functions
- Implement UART Interrupt APIs
- Remove dependency on esp32_rom_uart_xxx functions
- Update Device tree with UART addresses and pin config
- Update ESP32 UART KConfig

Notes about implementation:
- Interrupts now defined as a local macros, and should be removed
later on, when interrupts for esp32 are supported in dts

- Threshold interrupts are used for TX/RX
- Reseting FIFOs using _RST bit will corrupt FIFO of UART2 when used for
UART1 and vice-versa, so a generic way is used for all three UARTs

- Old Silicon rev is not supported

Signed-off-by: Mohamed ElShahawi <ExtremeGTX@hotmail.com>
This commit is contained in:
Mohamed ElShahawi 2019-08-21 23:54:00 +02:00 committed by Kumar Gala
commit 2d035c4191
6 changed files with 582 additions and 39 deletions

View file

@ -2,7 +2,10 @@
menuconfig UART_ESP32
bool "ESP32 UART driver"
default y
select SERIAL_HAS_DRIVER
select SERIAL_SUPPORT_INTERRUPT
select GPIO_ESP32
depends on SOC_ESP32
help
Enable the ESP32 UART using ROM routines.