summaryrefslogtreecommitdiff
path: root/plat/imx/common/lpuart_console.S
diff options
context:
space:
mode:
Diffstat (limited to 'plat/imx/common/lpuart_console.S')
-rw-r--r--plat/imx/common/lpuart_console.S75
1 files changed, 37 insertions, 38 deletions
diff --git a/plat/imx/common/lpuart_console.S b/plat/imx/common/lpuart_console.S
index e53ef2a6..9263182b 100644
--- a/plat/imx/common/lpuart_console.S
+++ b/plat/imx/common/lpuart_console.S
@@ -1,72 +1,71 @@
/*
- * Copyright 2017 NXP
+ * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
+#include <arch.h>
#include <asm_macros.S>
+#include <console_macros.S>
+#include <assert_macros.S>
+#include "lpuart.h"
-#define UARTBAUD 0x10
-#define UARTSTAT 0x14
-#define UARTCTRL 0x18
-#define UARTDATA 0x1C
-#define UARTMATCH 0x20
-#define UARTMODIR 0x24
-#define UARTFIFO 0x28
-#define UARTWATER 0x2c
+ .globl console_lpuart_register
+ .globl console_lpuart_init
+ .globl console_lpuart_putc
+ .globl console_lpuart_getc
-#define US1_TDRE (1 << 23)
-#define US1_RDRF (1 << 21)
+func console_lpuart_register
+ mov x7, x30
+ mov x6, x3
+ cbz x6, register_fail
+ str x0, [x6, #CONSOLE_T_DRVDATA]
- .globl console_core_init
- .globl console_core_putc
- .globl console_core_getc
- .globl console_core_flush
+ bl console_lpuart_init
+ cbz x0, register_fail
-/* console_core_init */
-func console_core_init
- mov w0, wzr
+ mov x0, x6
+ mov x30, x7
+ finish_console_register lpuart
+
+register_fail:
+ ret x7
+endfunc console_lpuart_register
+
+func console_lpuart_init
+ mov w0, #1
ret
-endfunc console_core_init
+endfunc console_lpuart_init
-/* console_core_putc */
-func console_core_putc
- /* Check the input parameter */
+func console_lpuart_putc
+ ldr x1, [x1, #CONSOLE_T_DRVDATA]
cbz x1, putc_error
- /* Insert implementation here */
/* Prepare '\r' to '\n' */
cmp w0, #0xA
b.ne 2f
1:
/* Check if the transmit FIFO is full */
- ldr w2, [x1, #UARTSTAT]
+ ldr w2, [x1, #STAT]
tbz w2, #23, 1b
mov w2, #0xD
- str w2, [x1, #UARTDATA]
+ str w2, [x1, #DATA]
2:
/* Check if the transmit FIFO is full */
- ldr w2, [x1, #UARTSTAT]
+ ldr w2, [x1, #STAT]
tbz w2, #23, 2b
- str w0, [x1, #UARTDATA]
+ str w0, [x1, #DATA]
ret
putc_error:
mov w0, #-1
ret
-endfunc console_core_putc
+endfunc console_lpuart_putc
-/* console_core_getc */
-func console_core_getc
+func console_lpuart_getc
+ ldr x0, [x0, #CONSOLE_T_DRVDATA]
cbz x0, getc_error
- /* Insert implementation here */
/* Check if the receive FIFO state */
ret
getc_error:
mov w0, #-1
ret
-endfunc console_core_getc
-
-/* console_core_flush */
-func console_core_flush
- mov w0, wzr
- ret
-endfunc console_core_flush
+endfunc console_lpuart_getc