diff options
| author | Tom Rini <[email protected]> | 2021-01-27 11:39:31 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2021-01-27 11:39:31 -0500 |
| commit | 8b195f4b716e4d802768e0e2cd63b417a4690b7f (patch) | |
| tree | ee95cc34be28ab8a49b4fb9f6d99a893006c810f /drivers/serial | |
| parent | 290e40b2aa96e13b19292d81146063e036028931 (diff) | |
| parent | 177cecdc4edcda5881cf217e21568d921b630bf5 (diff) | |
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-marvell
- Espressobin: Disable slot when emmc is not present (Pali)
- DS414; config header cleanup (Phil)
- PCI: auto-config enhancement (Phil)
- pci_mvebu: Also map IO region (Phil)
- serial: a3720: Implement pending method for output direction (Pali)
- turris_mox: Enable a few commands (Marek)
- helios4 & ClearFog changes (Dennis)
- Plus some minor misc changes
Diffstat (limited to 'drivers/serial')
| -rw-r--r-- | drivers/serial/serial_mvebu_a3700.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/serial/serial_mvebu_a3700.c b/drivers/serial/serial_mvebu_a3700.c index 5a1d40e0a6a..8f404879a56 100644 --- a/drivers/serial/serial_mvebu_a3700.c +++ b/drivers/serial/serial_mvebu_a3700.c @@ -23,6 +23,7 @@ struct mvebu_plat { #define UART_POSSR_REG 0x14 #define UART_STATUS_RX_RDY 0x10 +#define UART_STATUS_TX_EMPTY 0x40 #define UART_STATUS_TXFIFO_FULL 0x800 #define UART_CTRL_RXFIFO_RESET 0x4000 @@ -59,8 +60,13 @@ static int mvebu_serial_pending(struct udevice *dev, bool input) struct mvebu_plat *plat = dev_get_plat(dev); void __iomem *base = plat->base; - if (readl(base + UART_STATUS_REG) & UART_STATUS_RX_RDY) - return 1; + if (input) { + if (readl(base + UART_STATUS_REG) & UART_STATUS_RX_RDY) + return 1; + } else { + if (!(readl(base + UART_STATUS_REG) & UART_STATUS_TX_EMPTY)) + return 1; + } return 0; } |
