aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/plat-sunxi
diff options
context:
space:
mode:
authorJerome Forissier <jerome.forissier@linaro.org>2017-02-17 15:49:51 +0100
committerJerome Forissier <jerome.forissier@linaro.org>2017-03-17 18:23:51 +0100
commitab806dc30280e7fd735d85cb53e334244da295f7 (patch)
treef3b3c836b23f512a057739c5e00b34214fe7a18b /core/arch/arm/plat-sunxi
parent59cfa779ae5675bc94196d2526ec3e9df4cf3059 (diff)
drivers: convert sunxi_uart driver to use struct serial_chip
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Diffstat (limited to 'core/arch/arm/plat-sunxi')
-rw-r--r--core/arch/arm/plat-sunxi/console.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/core/arch/arm/plat-sunxi/console.c b/core/arch/arm/plat-sunxi/console.c
index b9853163..499fcd88 100644
--- a/core/arch/arm/plat-sunxi/console.c
+++ b/core/arch/arm/plat-sunxi/console.c
@@ -30,30 +30,23 @@
#include <mm/core_memprot.h>
#include <console.h>
-static vaddr_t console_base(void)
-{
- static void *va;
-
- if (cpu_mmu_enabled()) {
- if (!va)
- va = phys_to_virt(CONSOLE_UART_BASE, MEM_AREA_IO_SEC);
- return (vaddr_t)va;
- }
- return CONSOLE_UART_BASE;
-}
-
+static struct sunxi_uart_data console_data __early_bss;
void console_init(void)
{
- sunxi_uart_init(console_base());
+ sunxi_uart_init(&console_data, CONSOLE_UART_BASE);
}
void console_putc(int ch)
{
- sunxi_uart_putc(ch, console_base());
+ struct serial_chip *cons = &console_data.chip;
+
+ cons->ops->putc(cons, ch);
}
void console_flush(void)
{
- sunxi_uart_flush(console_base());
+ struct serial_chip *cons = &console_data.chip;
+
+ cons->ops->flush(cons);
}