170086dc4SYing-Chun Liu (PaulLiu)/* 270086dc4SYing-Chun Liu (PaulLiu) * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved. 370086dc4SYing-Chun Liu (PaulLiu) * 470086dc4SYing-Chun Liu (PaulLiu) * SPDX-License-Identifier: BSD-3-Clause 570086dc4SYing-Chun Liu (PaulLiu) */ 670086dc4SYing-Chun Liu (PaulLiu) 770086dc4SYing-Chun Liu (PaulLiu)#include <arch.h> 870086dc4SYing-Chun Liu (PaulLiu)#include <asm_macros.S> 970086dc4SYing-Chun Liu (PaulLiu)#include <console_macros.S> 1070086dc4SYing-Chun Liu (PaulLiu)#include <assert_macros.S> 1170086dc4SYing-Chun Liu (PaulLiu)#include "imx_uart.h" 1270086dc4SYing-Chun Liu (PaulLiu) 1370086dc4SYing-Chun Liu (PaulLiu) .globl console_imx_uart_register 1470086dc4SYing-Chun Liu (PaulLiu) .globl console_imx_uart_putc 1570086dc4SYing-Chun Liu (PaulLiu) .globl console_imx_uart_getc 1670086dc4SYing-Chun Liu (PaulLiu) .globl console_imx_uart_flush 1770086dc4SYing-Chun Liu (PaulLiu) 1870086dc4SYing-Chun Liu (PaulLiu)func console_imx_uart_register 1970086dc4SYing-Chun Liu (PaulLiu) push {r4, lr} 2070086dc4SYing-Chun Liu (PaulLiu) mov r4, r3 2170086dc4SYing-Chun Liu (PaulLiu) cmp r4, #0 2270086dc4SYing-Chun Liu (PaulLiu) beq register_fail 236627de53SAndre Przywara str r0, [r4, #CONSOLE_T_BASE] 2470086dc4SYing-Chun Liu (PaulLiu) 2570086dc4SYing-Chun Liu (PaulLiu) bl console_imx_uart_core_init 2670086dc4SYing-Chun Liu (PaulLiu) cmp r0, #0 2770086dc4SYing-Chun Liu (PaulLiu) bne register_fail 2870086dc4SYing-Chun Liu (PaulLiu) 2970086dc4SYing-Chun Liu (PaulLiu) mov r0, r4 3070086dc4SYing-Chun Liu (PaulLiu) pop {r4, lr} 31*85bebe18SSandrine Bailleux finish_console_register imx_uart putc=1, getc=ENABLE_CONSOLE_GETC, flush=1 3270086dc4SYing-Chun Liu (PaulLiu) 3370086dc4SYing-Chun Liu (PaulLiu)register_fail: 3470086dc4SYing-Chun Liu (PaulLiu) pop {r4, pc} 3570086dc4SYing-Chun Liu (PaulLiu)endfunc console_imx_uart_register 3670086dc4SYing-Chun Liu (PaulLiu) 3770086dc4SYing-Chun Liu (PaulLiu)func console_imx_uart_putc 386627de53SAndre Przywara ldr r1, [r1, #CONSOLE_T_BASE] 3970086dc4SYing-Chun Liu (PaulLiu) b console_imx_uart_core_putc 4070086dc4SYing-Chun Liu (PaulLiu)endfunc console_imx_uart_putc 4170086dc4SYing-Chun Liu (PaulLiu) 4270086dc4SYing-Chun Liu (PaulLiu)func console_imx_uart_getc 436627de53SAndre Przywara ldr r0, [r0, #CONSOLE_T_BASE] 4470086dc4SYing-Chun Liu (PaulLiu) b console_imx_uart_core_getc 4570086dc4SYing-Chun Liu (PaulLiu)endfunc console_imx_uart_getc 4670086dc4SYing-Chun Liu (PaulLiu) 4770086dc4SYing-Chun Liu (PaulLiu)func console_imx_uart_flush 486627de53SAndre Przywara ldr r0, [r0, #CONSOLE_T_BASE] 4970086dc4SYing-Chun Liu (PaulLiu) b console_imx_uart_core_flush 5070086dc4SYing-Chun Liu (PaulLiu)endfunc console_imx_uart_flush 51