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#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 52