pl011: allow alternate stdout to be used

Till now only pl011 UART is available stdout but there is a usecase to
redirect it to other channel.

This patch decouples console_putc implementation from pl011.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I38e8c5c90421fad2425228f407e6f29bdf6b08c7
diff --git a/drivers/arm/pl011/aarch32/pl011_console.S b/drivers/arm/pl011/aarch32/pl011_console.S
index c65c4f6..b201f04 100644
--- a/drivers/arm/pl011/aarch32/pl011_console.S
+++ b/drivers/arm/pl011/aarch32/pl011_console.S
@@ -10,7 +10,7 @@
 #include <drivers/console.h>
 
 	.globl	console_init
-	.globl	console_putc
+	.globl	console_pl011_putc
 	.globl	console_getc
 	.globl	console_try_getc
 	.globl	console_flush
@@ -97,17 +97,19 @@
 	bx	lr
 endfunc console_core_init
 
-	/* ---------------------------------------------
-	 * int console_putc(int c)
+	/* -------------------------------------------------
+	 * To allow alternate implementation of putc, pl011
+	 * is appended in the function name.
+	 * int console_pl011_putc(int c)
 	 *
 	 * Clobber list : r1, r2
-	 * ---------------------------------------------
+	 * -------------------------------------------------
 	 */
-func console_putc
+func console_pl011_putc
 	ldr	r1, =console_base
 	ldr	r1, [r1]
 	b	console_core_putc
-endfunc console_putc
+endfunc console_pl011_putc
 
 	/* --------------------------------------------------------
 	 * int console_core_putc(int c, uintptr_t base_addr)
diff --git a/drivers/arm/pl011/aarch64/pl011_console.S b/drivers/arm/pl011/aarch64/pl011_console.S
index 8b1e062..0d607b9 100644
--- a/drivers/arm/pl011/aarch64/pl011_console.S
+++ b/drivers/arm/pl011/aarch64/pl011_console.S
@@ -10,7 +10,7 @@
 #include <drivers/console.h>
 
 	.globl	console_init
-	.globl	console_putc
+	.globl	console_pl011_putc
 	.globl	console_getc
 	.globl	console_try_getc
 	.globl	console_flush
@@ -93,17 +93,20 @@
 	ret
 endfunc console_core_init
 
-	/* ---------------------------------------------
-	 * int console_putc(int c)
+	/* -------------------------------------------------
+	 * To allow alternate implementation of putc, pl011
+	 * is appended in the function name.
+	 *
+	 * int console_pl011_putc(int c)
 	 *
 	 * Clobber list : x1, x2
-	 * ---------------------------------------------
+	 * -------------------------------------------------
 	 */
-func console_putc
+func console_pl011_putc
 	adrp	x1, console_base
 	ldr	x1, [x1, :lo12:console_base]
 	b	console_core_putc
-endfunc console_putc
+endfunc console_pl011_putc
 
 	/* ---------------------------------------------
 	 * int console_core_putc(int c, uintptr_t base_addr)
diff --git a/drivers/console/console.c b/drivers/console/console.c
new file mode 100644
index 0000000..b2bae28
--- /dev/null
+++ b/drivers/console/console.c
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <drivers/arm/pl011.h>
+
+int console_putc(int c)
+{
+	return console_pl011_putc(c);
+}