blob: cc94d3ce54b48b8c75ea7bf20daa857b717567cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
#ifndef __MACH_ZYNQMP_DEBUG_LL_H__
#define __MACH_ZYNQMP_DEBUG_LL_H__
#include <io.h>
#define ZYNQMP_UART0_BASE 0xFF000000
#define ZYNQMP_UART1_BASE 0xFF010000
#define ZYNQMP_UART_BASE ZYNQMP_UART0_BASE
#define ZYNQMP_DEBUG_LL_UART_BASE ZYNQMP_UART_BASE
#define ZYNQMP_UART_RXTXFIFO 0x30
#define ZYNQMP_UART_CHANNEL_STS 0x2C
#define ZYNQMP_UART_STS_TFUL (1 << 4)
#define ZYNQMP_UART_TXDIS (1 << 5)
static inline void cdns_serial_putc(void *ctx, int c)
{
void __iomem *base = ctx;
if (readl(base) & ZYNQMP_UART_TXDIS)
return;
while ((readl(base + ZYNQMP_UART_CHANNEL_STS) & ZYNQMP_UART_STS_TFUL) != 0)
;
writel(c, base + 0x30);
}
static inline void PUTC_LL(int c)
{
cdns_serial_putc(IOMEM(ZYNQMP_DEBUG_LL_UART_BASE), c);
}
#endif /* __MACH_ZYNQMP_DEBUG_LL_H__ */
|