diff --git a/drivers/console/console.S b/drivers/console/console.S
index d966f0d36bbc15159ff48a062e27f047d6027953..40a6db9f4899711d3487567c0e04603807c131a8 100644
--- a/drivers/console/console.S
+++ b/drivers/console/console.S
@@ -30,6 +30,7 @@
 #include <asm_macros.S>
 
 	.globl	console_init
+	.globl	console_uninit
 	.globl	console_putc
 	.globl	console_getc
 
@@ -66,6 +67,20 @@ init_fail:
 	ret
 endfunc console_init
 
+	/* -----------------------------------------------
+	 * void console_uninit(void)
+	 * Function to finish the use of console driver.
+	 * It sets the console_base as NULL so that any
+	 * further invocation of `console_putc` or
+	 * `console_getc` APIs would return error.
+	 * -----------------------------------------------
+	 */
+func console_uninit
+	mov	x0, #0
+	adrp	x3, console_base
+	str	x0, [x3, :lo12:console_base]
+endfunc console_uninit
+
 	/* ---------------------------------------------
 	 * int console_putc(int c)
 	 * Function to output a character over the
diff --git a/include/drivers/console.h b/include/drivers/console.h
index d374157bd02dc833eca771a1f59af77ba5c0027e..69ad0bd740f9c73981a8265f79bb74bd6f291e9f 100644
--- a/include/drivers/console.h
+++ b/include/drivers/console.h
@@ -35,6 +35,7 @@
 
 int console_init(uintptr_t base_addr,
 		unsigned int uart_clk, unsigned int baud_rate);
+void console_uninit(void);
 int console_putc(int c);
 int console_getc(void);