blob: e526d9cb27b2a1b916357b86ba64ec8f325539d9 [file] [log] [blame]
Ying-Chun Liu (PaulLiu)26ca4f52019-02-12 18:33:04 +08001/*
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#define USE_FINISH_CONSOLE_REG_2
10#include <console_macros.S>
11#include <assert_macros.S>
12#include "imx_uart.h"
13
14 .globl console_imx_uart_register
15 .globl console_imx_uart_putc
16 .globl console_imx_uart_getc
17 .globl console_imx_uart_flush
18
19func console_imx_uart_register
20 push {r4, lr}
21 mov r4, r3
22 cmp r4, #0
23 beq register_fail
24 str r0, [r4, #CONSOLE_T_DRVDATA]
25
26 bl console_imx_uart_core_init
27 cmp r0, #0
28 bne register_fail
29
30 mov r0, r4
31 pop {r4, lr}
32 finish_console_register imx_uart putc=1, getc=1, flush=1
33
34register_fail:
35 pop {r4, pc}
36endfunc console_imx_uart_register
37
38func console_imx_uart_putc
39 ldr r1, [r1, #CONSOLE_T_DRVDATA]
40 b console_imx_uart_core_putc
41endfunc console_imx_uart_putc
42
43func console_imx_uart_getc
44 ldr r0, [r0, #CONSOLE_T_DRVDATA]
45 b console_imx_uart_core_getc
46endfunc console_imx_uart_getc
47
48func console_imx_uart_flush
49 ldr r0, [r0, #CONSOLE_T_DRVDATA]
50 b console_imx_uart_core_flush
51endfunc console_imx_uart_flush