32#ifndef __IMX8MP_UART_H__
33#define __IMX8MP_UART_H__
42#define IMX8MP_UART1_BASE_ADDRESS 0x30860000
43#define IMX8MP_UART3_BASE_ADDRESS 0x30880000
44#define IMX8MP_UART2_BASE_ADDRESS 0x30890000
47#define IMX8MP_UART_URXD(base) base
48#define IMX8MP_UART_UTXD(base) (base + 0x40)
49#define IMX8MP_UART_UCR1(base) (base + 0x80)
50#define IMX8MP_UART_UCR2(base) (base + 0x84)
51#define IMX8MP_UART_UCR3(base) (base + 0x88)
52#define IMX8MP_UART_UCR4(base) (base + 0x8C)
53#define IMX8MP_UART_UFCR(base) (base + 0x90)
54#define IMX8MP_UART_USR1(base) (base + 0x94)
55#define IMX8MP_UART_USR2(base) (base + 0x98)
56#define IMX8MP_UART_UESC(base) (base + 0x9C)
57#define IMX8MP_UART_UTIM(base) (base + 0xA0)
58#define IMX8MP_UART_UBIR(base) (base + 0xA4)
59#define IMX8MP_UART_UBMR(base) (base + 0xA8)
60#define IMX8MP_UART_UBRC(base) (base + 0xAC)
61#define IMX8MP_UART_ONEMS(base) (base + 0xB0)
62#define IMX8MP_UART_UTS(base) (base + 0xB4)
63#define IMX8MP_UART_UMCR(base) (base + 0xB8)
66#define UCR1_UARTEN (1u << 0)
67#define UCR1_DOZE (1u << 1)
68#define UCR1_ATDMAEN (1u << 2)
69#define UCR1_TXDMAEN (1u << 3)
70#define UCR1_SNDBRK (1u << 4)
71#define UCR1_RTSDEN (1u << 5)
72#define UCR1_TXMPTYEN (1u << 6)
73#define UCR1_IREN (1u << 7)
74#define UCR1_RXDMAEN (1u << 8)
75#define UCR1_RRDYEN (1u << 9)
76#define UCR1_ICD_MASK (3u << 10)
77#define UCR1_IDEN (1u << 12)
78#define UCR1_TRDYEN (1u << 13)
79#define UCR1_ADBR (1u << 14)
80#define UCR1_ADEN (1u << 15)
83#define UCR2_SRST (1u << 0)
84#define UCR2_RXEN (1u << 1)
85#define UCR2_TXEN (1u << 2)
86#define UCR2_ATEN (1u << 3)
87#define UCR2_RTSEN (1u << 4)
88#define UCR2_WS (1u << 5)
89#define UCR2_STPB (1u << 6)
90#define UCR2_PROE (1u << 7)
91#define UCR2_PREN (1u << 8)
92#define UCR2_RTEC_MASK (3u << 9)
93#define UCR2_ESCEN (1u << 11)
94#define UCR2_CTS (1u << 12)
95#define UCR2_CTSC (1u << 13)
96#define UCR2_IRTS (1u << 14)
97#define UCR2_ESCI (1u << 15)
100#define UCR3_RXDMUXSEL (1u << 2)
103#define UCR4_DREN (1u << 0)
104#define UCR4_OREN (1u << 1)
105#define UCR4_BKEN (1u << 2)
106#define UCR4_TCEN (1u << 3)
107#define UCR4_INVR (1u << 9)
110#define UFCR_RXTL_SHIFT 0
111#define UFCR_RXTL_MASK (0x3Fu)
112#define UFCR_DCEDTE (1u << 6)
113#define UFCR_RFDIV_SHIFT 7
114#define UFCR_RFDIV_MASK (7u << 7)
115#define UFCR_TXTL_SHIFT 10
116#define UFCR_TXTL_MASK (0x3Fu << 10)
119#define UFCR_RFDIV(n) (((n) & 7u) << UFCR_RFDIV_SHIFT)
122#define USR1_AWAKE (1u << 4)
123#define USR1_AIRINT (1u << 5)
124#define USR1_RXDS (1u << 6)
125#define USR1_DTRD (1u << 7)
126#define USR1_AGTIM (1u << 8)
127#define USR1_RRDY (1u << 9)
128#define USR1_FRAMERR (1u << 10)
129#define USR1_ESCF (1u << 11)
130#define USR1_RTSD (1u << 12)
131#define USR1_TRDY (1u << 13)
132#define USR1_RTSS (1u << 14)
133#define USR1_PARITYERR (1u << 15)
136#define USR2_RDR (1u << 0)
137#define USR2_ORE (1u << 1)
138#define USR2_BRCD (1u << 2)
139#define USR2_TXDC (1u << 3)
140#define USR2_RTSF (1u << 4)
141#define USR2_DCDIN (1u << 5)
142#define USR2_DCDDELT (1u << 6)
143#define USR2_WAKE (1u << 7)
144#define USR2_IRINT (1u << 8)
145#define USR2_RIIN (1u << 9)
146#define USR2_RIDELT (1u << 10)
147#define USR2_ACST (1u << 11)
148#define USR2_IDLE (1u << 12)
149#define USR2_DTRF (1u << 13)
150#define USR2_TXFE (1u << 14)
151#define USR2_ADET (1u << 15)
154#define UTS_SOFTRST (1u << 0)
155#define UTS_RXFULL (1u << 3)
156#define UTS_TXFULL (1u << 4)
157#define UTS_RXEMPTY (1u << 5)
158#define UTS_TXEMPTY (1u << 6)
159#define UTS_RXDBG (1u << 9)
160#define UTS_LOOPIR (1u << 10)
161#define UTS_DBGEN (1u << 11)
162#define UTS_LOOP (1u << 12)
163#define UTS_FRCPERR (1u << 13)
166#define URXD_RX_DATA 0x00FFu
167#define URXD_PRERR (1u << 10)
168#define URXD_BRK (1u << 11)
169#define URXD_FRMERR (1u << 12)
170#define URXD_OVRRUN (1u << 13)
171#define URXD_ERR (1u << 14)
172#define URXD_CHARRDY (1u << 15)
175#define IMX_PARITY_NONE 0
176#define IMX_PARITY_EVEN 1
177#define IMX_PARITY_ODD 2
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
void au_imx8mp_uart_putc(char c)
imx8mp_uart_putc – put a single character on the UART
int au_imx8mp_uart_getc()
imx8mp_uart_getc – receive a single character from the UART
void au_imx8mp_uart_puts(const char *s)
imx8mp_uart_puts – put a collection of character on the UART
void au_imx8np_uart_initialize(uint64_t base)