xref: /rk3399_ARM-atf/plat/imx/common/aarch32/imx_uart_console.S (revision 85bebe18dabea174d148f1478f5e16b36799175b)
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