diff --git a/configs/efi-x86_defconfig b/configs/efi-x86_defconfig
index ffbb87915602b90cb1e12a72f1224bdb4aed011c..46801a99933faac8393e35b820806be3c63476e2 100644
--- a/configs/efi-x86_defconfig
+++ b/configs/efi-x86_defconfig
@@ -3,7 +3,6 @@ CONFIG_VENDOR_EFI=y
 CONFIG_DEFAULT_DEVICE_TREE="efi"
 CONFIG_TARGET_EFI=y
 CONFIG_TSC_CALIBRATION_BYPASS=y
-# CONFIG_NS16550_SERIAL is not set
 # CONFIG_CMD_BOOTM is not set
 CONFIG_CMD_GPIO=y
 # CONFIG_CMD_NET is not set
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 123941612822bd881d542e66659f3e03c2497b08..fe407b775c73fba626dfe0e13a241f32a4ce144b 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -186,18 +186,6 @@ config ALTERA_UART
 	  Select this to enable an UART for Altera devices. Please find
 	  details on the "Embedded Peripherals IP User Guide" of Altera.
 
-config NS16550_SERIAL
-	bool "NS16550 UART or compatible"
-	depends on DM_SERIAL
-	default y if X86 || PPC || ARCH_ROCKCHIP
-	help
-	  Support NS16550 UART or compatible with driver model. This can be
-	  enabled in the device tree with the correct input clock frequency.
-	  If the input clock frequency is not defined in the device tree,
-	  the macro CONFIG_SYS_NS16550_CLK defined in a legacy board header
-	  file will be used. It can be a constant or a function to get clock,
-	  eg, get_serial_clock().
-
 config SANDBOX_SERIAL
 	bool "Sandbox UART support"
 	depends on SANDBOX
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index f0a9aac62a6fad1253467c76ead3fe7580385f1a..d5bcbc3e3cfeddb3155a79bf3f653aced94dcf42 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -404,7 +404,6 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 	plat->base = addr;
 	plat->reg_shift = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
 					 "reg-shift", 1);
-#ifdef CONFIG_NS16550_SERIAL
 	plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
 				     "clock-frequency",
 				     CONFIG_SYS_NS16550_CLK);
@@ -412,7 +411,6 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 		debug("ns16550 clock not defined\n");
 		return -EINVAL;
 	}
-#endif /* CONFIG_NS16550_SERIAL */
 
 	return 0;
 }
@@ -425,7 +423,6 @@ const struct dm_serial_ops ns16550_serial_ops = {
 	.setbrg = ns16550_serial_setbrg,
 };
 
-#ifdef CONFIG_NS16550_SERIAL
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static const struct udevice_id ns16550_serial_ids[] = {
 	{ .compatible = "ns16550" },
@@ -454,5 +451,4 @@ U_BOOT_DRIVER(ns16550_serial) = {
 	.probe = ns16550_serial_probe,
 	.ops	= &ns16550_serial_ops,
 };
-#endif /* CONFIG_NS16550_SERIAL */
 #endif /* CONFIG_DM_SERIAL */
diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h
index 1126cdd1b67e44fdca1ed589da4acfc2aa3177a0..76ce17bebf7bda3abb731146ccea56728386e4aa 100644
--- a/include/configs/am43xx_evm.h
+++ b/include/configs/am43xx_evm.h
@@ -27,8 +27,6 @@
 #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_DM_SERIAL)
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
-#else
-#define CONFIG_NS16550_SERIAL
 #endif
 
 /* I2C Configuration */
diff --git a/include/configs/cm_t43.h b/include/configs/cm_t43.h
index e1019ff65ec3f632cdc2968e2c708045f3718748..f8c39bfa53ecc34a3e32a5e1553f6cb4ce9c1daa 100644
--- a/include/configs/cm_t43.h
+++ b/include/configs/cm_t43.h
@@ -18,7 +18,6 @@
 #include <asm/arch/omap.h>
 
 /* Serial support */
-#define CONFIG_NS16550_SERIAL
 #define CONFIG_DM_SERIAL
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_SERIAL
diff --git a/include/configs/mv-common.h b/include/configs/mv-common.h
index 0e33a890968e3a4d59cb18d4ee63a6649411b713..575e53e9fa7528922cfbc46f3decd642e60f1a83 100644
--- a/include/configs/mv-common.h
+++ b/include/configs/mv-common.h
@@ -39,10 +39,6 @@
 /*
  * NS16550 Configuration
  */
-#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM_SERIAL)
-#define CONFIG_NS16550_SERIAL
-#endif
-
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_CLK		CONFIG_SYS_TCLK
diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
index c15c699ff79377a11600538242ebdc025947d805..803f4b8c4771730d29404142a3b69ee68ffd632e 100644
--- a/include/configs/omap3_pandora.h
+++ b/include/configs/omap3_pandora.h
@@ -49,7 +49,6 @@
 /*
  * NS16550 Configuration
  */
-#undef CONFIG_NS16550_SERIAL
 #undef CONFIG_SYS_NS16550_CLK
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
diff --git a/include/configs/sniper.h b/include/configs/sniper.h
index 34f7f6e51475920033b0907286c810044149382a..559311fb80b669e31be4a4cbbfd2e2ad89298f6d 100644
--- a/include/configs/sniper.h
+++ b/include/configs/sniper.h
@@ -196,9 +196,7 @@
  */
 
 
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_NS16550_SERIAL
-#else
+#ifdef CONFIG_SPL_BUILD
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
 #endif
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index f560219881b8817e6ac5fa01c1064eb9e726442a..7a4853c46395649b1ab77f1472c99b796b8d467b 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -45,9 +45,7 @@
 #define CONFIG_SYS_NS16550_SERIAL
 /* ns16550 reg in the low bits of cpu reg */
 #define CONFIG_SYS_NS16550_CLK		24000000
-#ifdef CONFIG_DM_SERIAL
-# define CONFIG_NS16550_SERIAL
-#else
+#ifndef CONFIG_DM_SERIAL
 # define CONFIG_SYS_NS16550_REG_SIZE	-4
 # define CONFIG_SYS_NS16550_COM1		SUNXI_UART0_BASE
 # define CONFIG_SYS_NS16550_COM2		SUNXI_UART1_BASE
diff --git a/include/configs/tb100.h b/include/configs/tb100.h
index 44287d80484daea7ab9b01f57c50f5c650590903..0b9ad1ca43abd03a944cba5ef370b457a90d312f 100644
--- a/include/configs/tb100.h
+++ b/include/configs/tb100.h
@@ -35,7 +35,6 @@
 /*
  * UART configuration
  */
-#define CONFIG_NS16550_SERIAL
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_CLK		166666666
diff --git a/include/configs/tegra-common.h b/include/configs/tegra-common.h
index bcc35f744b268af7045dcbbd6a716d8532ba6602..64a12e6c9c4d1f85dd833bf7bc087186a8dc996b 100644
--- a/include/configs/tegra-common.h
+++ b/include/configs/tegra-common.h
@@ -39,7 +39,6 @@
 /*
  * NS16550 Configuration
  */
-#define CONFIG_NS16550_SERIAL
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK
 
diff --git a/include/configs/ti_am335x_common.h b/include/configs/ti_am335x_common.h
index 32348ab52071162a3b2d10c5e1477ecaaa6d944f..3beb9db143573e92f0e5672a04f2fd4ec5138b6b 100644
--- a/include/configs/ti_am335x_common.h
+++ b/include/configs/ti_am335x_common.h
@@ -19,10 +19,6 @@
 #define CONFIG_SYS_TIMERBASE		0x48040000	/* Use Timer2 */
 #define CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
 
-#ifndef CONFIG_SPL_BUILD
-# define CONFIG_NS16550_SERIAL
-#endif
-
 #include <asm/arch/omap.h>
 
 /* NS16550 Configuration */
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h
index 2083ea2e9564cc4bc9f9c90d095ec03106f20459..c36353d8864054955a204d3f995c6cd7b7046609 100644
--- a/include/configs/ti_armv7_keystone2.h
+++ b/include/configs/ti_armv7_keystone2.h
@@ -63,8 +63,6 @@
 #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_DM_SERIAL)
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	-4
-#else
-#define CONFIG_NS16550_SERIAL
 #endif
 #define CONFIG_SYS_NS16550_COM1		KS2_UART0_BASE
 #define CONFIG_SYS_NS16550_COM2		KS2_UART1_BASE
diff --git a/include/configs/ti_omap3_common.h b/include/configs/ti_omap3_common.h
index e749d5dfb592c9eee60b86e7049e0b6c8c383fd6..4d53b4cb57011e449513e0786239f5193225067a 100644
--- a/include/configs/ti_omap3_common.h
+++ b/include/configs/ti_omap3_common.h
@@ -18,10 +18,6 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/omap.h>
 
-#ifndef CONFIG_SPL_BUILD
-# define CONFIG_NS16550_SERIAL
-#endif
-
 /* Common ARM Erratas */
 #define CONFIG_ARM_ERRATA_454179
 #define CONFIG_ARM_ERRATA_430973
diff --git a/include/configs/ti_omap4_common.h b/include/configs/ti_omap4_common.h
index 0a03cd5860482e02693b17c1e1541ac0622a5814..4b7b493a626b96b7e3662ba573470894553512fd 100644
--- a/include/configs/ti_omap4_common.h
+++ b/include/configs/ti_omap4_common.h
@@ -63,8 +63,6 @@
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
 #define CONFIG_SYS_NS16550_COM3		UART3_BASE
-#else
-#define CONFIG_NS16550_SERIAL
 #endif
 #define CONFIG_CONS_INDEX		3
 
diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
index be1f4c14b8f9446d3b6e9a0b29b137d0e762bacf..94d6ef0b3c09c083792c6d1eef410f169c9d4c22 100644
--- a/include/configs/ti_omap5_common.h
+++ b/include/configs/ti_omap5_common.h
@@ -55,8 +55,6 @@
 #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_DM_SERIAL)
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
-#else
-#define CONFIG_NS16550_SERIAL
 #endif
 
 /*