diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c
index cb361ac65c..5b3b51ce15 100644
--- a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c
+++ b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <config.h>
+#include <serial.h>
 #include <asm/io.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/sys_proto.h>
diff --git a/board/amarula/vyasa-rk3288/vyasa-rk3288.c b/board/amarula/vyasa-rk3288/vyasa-rk3288.c
index baf197c485..92e0698c53 100644
--- a/board/amarula/vyasa-rk3288/vyasa-rk3288.c
+++ b/board/amarula/vyasa-rk3288/vyasa-rk3288.c
@@ -4,6 +4,7 @@
  */
 
 #include <common.h>
+#include <serial.h>
 
 #ifndef CONFIG_TPL_BUILD
 
diff --git a/board/astro/mcf5373l/mcf5373l.c b/board/astro/mcf5373l/mcf5373l.c
index 759ff49562..db157a83c8 100644
--- a/board/astro/mcf5373l/mcf5373l.c
+++ b/board/astro/mcf5373l/mcf5373l.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <serial.h>
 #include <watchdog.h>
 #include <command.h>
 #include <asm/m5329.h>
diff --git a/board/birdland/bav335x/board.c b/board/birdland/bav335x/board.c
index 8811583ac6..1f3f44a867 100644
--- a/board/birdland/bav335x/board.c
+++ b/board/birdland/bav335x/board.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <env.h>
 #include <errno.h>
+#include <serial.h>
 #include <spl.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/hardware.h>
diff --git a/board/bticino/mamoj/spl.c b/board/bticino/mamoj/spl.c
index c53bdce0ce..620e4d1de0 100644
--- a/board/bticino/mamoj/spl.c
+++ b/board/bticino/mamoj/spl.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <serial.h>
 #include <spl.h>
 
 #include <asm/io.h>
diff --git a/board/cssi/MCR3000/MCR3000.c b/board/cssi/MCR3000/MCR3000.c
index 445b84c180..dcd2c1c975 100644
--- a/board/cssi/MCR3000/MCR3000.c
+++ b/board/cssi/MCR3000/MCR3000.c
@@ -12,6 +12,7 @@
 #include <hwconfig.h>
 #include <mpc8xx.h>
 #include <fdt_support.h>
+#include <serial.h>
 #include <asm/io.h>
 #include <dm/uclass.h>
 #include <wdt.h>
diff --git a/board/engicam/common/spl.c b/board/engicam/common/spl.c
index 4d293c8032..a9820a9028 100644
--- a/board/engicam/common/spl.c
+++ b/board/engicam/common/spl.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <serial.h>
 #include <spl.h>
 
 #include <asm/io.h>
diff --git a/board/esd/meesc/meesc.c b/board/esd/meesc/meesc.c
index 221048a91f..4271b0db19 100644
--- a/board/esd/meesc/meesc.c
+++ b/board/esd/meesc/meesc.c
@@ -11,6 +11,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <serial.h>
 #include <vsprintf.h>
 #include <asm/io.h>
 #include <asm/gpio.h>
diff --git a/board/gumstix/pepper/board.c b/board/gumstix/pepper/board.c
index f5beb8c940..65e5e1e60f 100644
--- a/board/gumstix/pepper/board.c
+++ b/board/gumstix/pepper/board.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <env.h>
 #include <errno.h>
+#include <serial.h>
 #include <spl.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/hardware.h>
diff --git a/board/isee/igep003x/board.c b/board/isee/igep003x/board.c
index a8c2b121a4..d59121296e 100644
--- a/board/isee/igep003x/board.c
+++ b/board/isee/igep003x/board.c
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <env.h>
 #include <errno.h>
+#include <serial.h>
 #include <spl.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/hardware.h>
diff --git a/board/isee/igep00x0/spl.c b/board/isee/igep00x0/spl.c
index e092e1a418..f814fe1354 100644
--- a/board/isee/igep00x0/spl.c
+++ b/board/isee/igep00x0/spl.c
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 
+#include <serial.h>
 #include <asm/io.h>
 #include <asm/arch/mem.h>
 #include <asm/arch/sys_proto.h>
diff --git a/board/liebherr/display5/spl.c b/board/liebherr/display5/spl.c
index 311edaf939..e845edf068 100644
--- a/board/liebherr/display5/spl.c
+++ b/board/liebherr/display5/spl.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <serial.h>
 #include <spl.h>
 #include <linux/libfdt.h>
 #include <asm/io.h>
diff --git a/board/liebherr/mccmon6/mccmon6.c b/board/liebherr/mccmon6/mccmon6.c
index 6a5fbbb8e6..c7af73ff71 100644
--- a/board/liebherr/mccmon6/mccmon6.c
+++ b/board/liebherr/mccmon6/mccmon6.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <serial.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/imx-regs.h>
diff --git a/board/liebherr/mccmon6/spl.c b/board/liebherr/mccmon6/spl.c
index fc5f5e948c..08d2b56d54 100644
--- a/board/liebherr/mccmon6/spl.c
+++ b/board/liebherr/mccmon6/spl.c
@@ -18,6 +18,7 @@
 #include <asm/arch/crm_regs.h>
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
+#include <serial.h>
 #include <spl.h>
 
 #include <asm/arch/mx6-ddr.h>
diff --git a/board/logicpd/am3517evm/am3517evm.c b/board/logicpd/am3517evm/am3517evm.c
index 95c4cfc75d..18f3c3f9d9 100644
--- a/board/logicpd/am3517evm/am3517evm.c
+++ b/board/logicpd/am3517evm/am3517evm.c
@@ -13,6 +13,7 @@
 #include <common.h>
 #include <dm.h>
 #include <ns16550.h>
+#include <serial.h>
 #include <asm/io.h>
 #include <asm/omap_musb.h>
 #include <asm/arch/am35x_def.h>
diff --git a/board/logicpd/imx6/imx6logic.c b/board/logicpd/imx6/imx6logic.c
index 3c1a3a9fa2..0ea24c0870 100644
--- a/board/logicpd/imx6/imx6logic.c
+++ b/board/logicpd/imx6/imx6logic.c
@@ -14,6 +14,7 @@
 #include <input.h>
 #include <mmc.h>
 #include <fsl_esdhc_imx.h>
+#include <serial.h>
 #include <asm/io.h>
 #include <asm/gpio.h>
 #include <linux/sizes.h>
diff --git a/board/logicpd/omap3som/omap3logic.c b/board/logicpd/omap3som/omap3logic.c
index ee77ce077c..ab5e6e8b97 100644
--- a/board/logicpd/omap3som/omap3logic.c
+++ b/board/logicpd/omap3som/omap3logic.c
@@ -17,6 +17,7 @@
 #include <flash.h>
 #include <nand.h>
 #include <i2c.h>
+#include <serial.h>
 #include <twl4030.h>
 #include <asm/io.h>
 #include <asm/arch/mmc_host_def.h>
diff --git a/board/overo/common.c b/board/overo/common.c
index 2c4f412e5d..67823e68b6 100644
--- a/board/overo/common.c
+++ b/board/overo/common.c
@@ -11,6 +11,7 @@
  * (C) Copyright 2004-2008
  * Texas Instruments, <www.ti.com>
  */
+#include <serial.h>
 #include <twl4030.h>
 #include <common.h>
 #include <asm/io.h>
diff --git a/board/siemens/common/board.c b/board/siemens/common/board.c
index 75462d1c34..5f5e2eb544 100644
--- a/board/siemens/common/board.c
+++ b/board/siemens/common/board.c
@@ -12,6 +12,7 @@
 #include <common.h>
 #include <env.h>
 #include <errno.h>
+#include <serial.h>
 #include <spl.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/hardware.h>
diff --git a/board/silica/pengwyn/board.c b/board/silica/pengwyn/board.c
index 345701fd52..c0496c549a 100644
--- a/board/silica/pengwyn/board.c
+++ b/board/silica/pengwyn/board.c
@@ -7,6 +7,7 @@
 
 #include <common.h>
 #include <env.h>
+#include <serial.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/ddr_defs.h>
diff --git a/board/st/stm32f746-disco/stm32f746-disco.c b/board/st/stm32f746-disco/stm32f746-disco.c
index e89ed2153b..5be60af18c 100644
--- a/board/st/stm32f746-disco/stm32f746-disco.c
+++ b/board/st/stm32f746-disco/stm32f746-disco.c
@@ -10,6 +10,7 @@
 #include <miiphy.h>
 #include <phy_interface.h>
 #include <ram.h>
+#include <serial.h>
 #include <spl.h>
 #include <splash.h>
 #include <st_logo_data.h>
diff --git a/board/tcl/sl50/board.c b/board/tcl/sl50/board.c
index c7eed31946..a958827507 100644
--- a/board/tcl/sl50/board.c
+++ b/board/tcl/sl50/board.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <env.h>
 #include <errno.h>
+#include <serial.h>
 #include <spl.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/hardware.h>
diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
index 237a834c53..8d1f38971c 100644
--- a/board/ti/am57xx/board.c
+++ b/board/ti/am57xx/board.c
@@ -11,6 +11,7 @@
 #include <env.h>
 #include <palmas.h>
 #include <sata.h>
+#include <serial.h>
 #include <usb.h>
 #include <asm/omap_common.h>
 #include <asm/omap_sec_common.h>
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 0138fc91fc..12e657c9c6 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -16,6 +16,7 @@
 #include <dm.h>
 #include <env.h>
 #include <ns16550.h>
+#include <serial.h>
 #ifdef CONFIG_LED_STATUS
 #include <status_led.h>
 #endif
diff --git a/board/ti/dra7xx/evm.c b/board/ti/dra7xx/evm.c
index 74d04bb1e3..ea8523541f 100644
--- a/board/ti/dra7xx/evm.c
+++ b/board/ti/dra7xx/evm.c
@@ -13,6 +13,7 @@
 #include <env.h>
 #include <palmas.h>
 #include <sata.h>
+#include <serial.h>
 #include <linux/string.h>
 #include <asm/gpio.h>
 #include <usb.h>
diff --git a/board/ti/evm/evm.c b/board/ti/evm/evm.c
index d0b9bafbd1..d26dd5ba84 100644
--- a/board/ti/evm/evm.c
+++ b/board/ti/evm/evm.c
@@ -15,6 +15,7 @@
 #include <env.h>
 #include <ns16550.h>
 #include <netdev.h>
+#include <serial.h>
 #include <asm/io.h>
 #include <asm/arch/mem.h>
 #include <asm/arch/mux.h>
diff --git a/board/vscom/baltos/board.c b/board/vscom/baltos/board.c
index 1ba58d0f11..588f6db172 100644
--- a/board/vscom/baltos/board.c
+++ b/board/vscom/baltos/board.c
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <env.h>
 #include <errno.h>
+#include <serial.h>
 #include <linux/libfdt.h>
 #include <spl.h>
 #include <asm/arch/cpu.h>
diff --git a/cmd/load.c b/cmd/load.c
index 713fe56b55..5811a99310 100644
--- a/cmd/load.c
+++ b/cmd/load.c
@@ -14,6 +14,7 @@
 #include <s_record.h>
 #include <net.h>
 #include <exports.h>
+#include <serial.h>
 #include <xyzModem.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/common/board_f.c b/common/board_f.c
index e3591cbaeb..01044452bf 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -26,6 +26,7 @@
 #include <os.h>
 #include <post.h>
 #include <relocate.h>
+#include <serial.h>
 #ifdef CONFIG_SPL
 #include <spl.h>
 #endif
diff --git a/common/kgdb_stubs.c b/common/kgdb_stubs.c
index 5278209909..afa7d6403a 100644
--- a/common/kgdb_stubs.c
+++ b/common/kgdb_stubs.c
@@ -9,6 +9,7 @@
 
 #include <common.h>
 #include <kgdb.h>
+#include <serial.h>
 
 int (*debugger_exception_handler)(struct pt_regs *);
 
diff --git a/common/lcd_console.c b/common/lcd_console.c
index 7d1f883013..d34bc2fa83 100644
--- a/common/lcd_console.c
+++ b/common/lcd_console.c
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <lcd.h>
+#include <serial.h>
 #include <video_font.h>		/* Get font data, width and height */
 #if defined(CONFIG_LCD_LOGO)
 #include <bmp_logo.h>
diff --git a/common/spl/spl.c b/common/spl/spl.c
index a2ef13a41c..82fd54c984 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -11,6 +11,7 @@
 #include <binman_sym.h>
 #include <dm.h>
 #include <handoff.h>
+#include <serial.h>
 #include <spl.h>
 #include <asm/u-boot.h>
 #include <nand.h>
diff --git a/include/common.h b/include/common.h
index f97a7b6e14..f433db17ae 100644
--- a/include/common.h
+++ b/include/common.h
@@ -238,15 +238,6 @@ void ft_pci_setup(void *blob, bd_t *bd);
 void smp_set_core_boot_addr(unsigned long addr, int corenr);
 void smp_kick_all_cpus(void);
 
-/* $(CPU)/serial.c */
-int	serial_init   (void);
-void	serial_setbrg (void);
-void	serial_putc   (const char);
-void	serial_putc_raw(const char);
-void	serial_puts   (const char *);
-int	serial_getc   (void);
-int	serial_tstc   (void);
-
 /* $(CPU)/speed.c */
 int	get_clocks (void);
 ulong	get_bus_freq  (ulong);
diff --git a/include/serial.h b/include/serial.h
index 8d1803c800..104f34ff91 100644
--- a/include/serial.h
+++ b/include/serial.h
@@ -335,4 +335,12 @@ void sh_serial_initialize(void);
 int serial_printf(const char *fmt, ...)
 		__attribute__ ((format (__printf__, 1, 2)));
 
+int serial_init(void);
+void serial_setbrg(void);
+void serial_putc(const char ch);
+void serial_putc_raw(const char ch);
+void serial_puts(const char *str);
+int serial_getc(void);
+int serial_tstc(void);
+
 #endif
