1/*
2 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <arch.h>
8#include <asm_macros.S>
9#include <console_macros.S>
10#include <assert_macros.S>
11#include "imx_uart.h"
12
13	.globl	console_imx_uart_register
14	.globl	console_imx_uart_putc
15	.globl	console_imx_uart_getc
16	.globl	console_imx_uart_flush
17
18func console_imx_uart_register
19	push	{r4, lr}
20	mov	r4, r3
21	cmp	r4, #0
22	beq	register_fail
23	str	r0, [r4, #CONSOLE_T_BASE]
24
25	bl	console_imx_uart_core_init
26	cmp	r0, #0
27	bne	register_fail
28
29	mov	r0, r4
30	pop	{r4, lr}
31	finish_console_register imx_uart putc=1, getc=1, flush=1
32
33register_fail:
34	pop	{r4, pc}
35endfunc console_imx_uart_register
36
37func console_imx_uart_putc
38	ldr	r1, [r1, #CONSOLE_T_BASE]
39	b console_imx_uart_core_putc
40endfunc console_imx_uart_putc
41
42func console_imx_uart_getc
43	ldr	r0, [r0, #CONSOLE_T_BASE]
44	b console_imx_uart_core_getc
45endfunc console_imx_uart_getc
46
47func console_imx_uart_flush
48	ldr	r0, [r0, #CONSOLE_T_BASE]
49	b console_imx_uart_core_flush
50endfunc console_imx_uart_flush
51