/*
 * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <asm_macros.S>
#include <drivers/console.h>

#include "uniphier_console.h"

/*
 * In: w0 - character to be printed
 *     x1 - pointer to console structure
 * Out: return the character written (always succeeds)
 * Clobber: x2
 */
	.globl	uniphier_console_putc
func uniphier_console_putc
	ldr	x1, [x1, #CONSOLE_T_DRVDATA]

	/* Wait until the transmitter FIFO gets empty */
0:	ldr	w2, [x1, #UNIPHIER_UART_LSR]
	tbz	w2, #UNIPHIER_UART_LSR_THRE_BIT, 0b

	mov	w2, w0

1:	str	w2, [x1, #UNIPHIER_UART_TX]

	cmp	w2, #'\n'
	b.ne	2f
	mov	w2, #'\r'	/* Append '\r' to '\n' */
	b	1b
2:	ret
endfunc uniphier_console_putc

/*
 * In: x0 - pointer to console structure
 * Out: return the character read, or ERROR_NO_PENDING_CHAR if no character
	is available
 * Clobber: x1
 */
	.globl	uniphier_console_getc
func uniphier_console_getc
	ldr	x0, [x0, #CONSOLE_T_DRVDATA]

	ldr	w1, [x0, #UNIPHIER_UART_LSR]
	tbz	w1, #UNIPHIER_UART_LSR_DR_BIT, 0f

	ldr	w0, [x0, #UNIPHIER_UART_RX]
	ret

0:	mov	w0, #ERROR_NO_PENDING_CHAR
	ret
endfunc uniphier_console_getc

/*
 * In: x0 - pointer to console structure
 * Out: return 0 (always succeeds)
 * Clobber: x1
 */
	.global uniphier_console_flush
func uniphier_console_flush
	ldr	x0, [x0, #CONSOLE_T_DRVDATA]

	/* wait until the transmitter gets empty */
0:	ldr	w1, [x0, #UNIPHIER_UART_LSR]
	tbz	w1, #UNIPHIER_UART_LSR_TEMT_BIT, 0b

	mov	w0, #0
	ret
endfunc uniphier_console_flush
