ns16550: unify serial_x86

Unify serial_x86, and use the generic binding.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
master
Thomas Chou 9 years ago committed by Tom Rini
parent 8e62d32e5b
commit 81cd63a991
  1. 2
      arch/x86/dts/serial.dtsi
  2. 2
      configs/efi-x86_defconfig
  3. 11
      drivers/serial/Kconfig
  4. 1
      drivers/serial/Makefile
  5. 44
      drivers/serial/serial_x86.c

@ -1,6 +1,6 @@
/ { / {
serial: serial { serial: serial {
compatible = "x86-uart"; compatible = "ns16550";
reg = <0x3f8 8>; reg = <0x3f8 8>;
reg-shift = <0>; reg-shift = <0>;
clock-frequency = <1843200>; clock-frequency = <1843200>;

@ -3,6 +3,7 @@ CONFIG_VENDOR_EFI=y
CONFIG_DEFAULT_DEVICE_TREE="efi" CONFIG_DEFAULT_DEVICE_TREE="efi"
CONFIG_TARGET_EFI=y CONFIG_TARGET_EFI=y
CONFIG_TSC_CALIBRATION_BYPASS=y CONFIG_TSC_CALIBRATION_BYPASS=y
# CONFIG_NS16550_SERIAL is not set
# CONFIG_CMD_BOOTM is not set # CONFIG_CMD_BOOTM is not set
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_NET is not set # CONFIG_CMD_NET is not set
@ -13,5 +14,4 @@ CONFIG_DEBUG_UART=y
CONFIG_DEBUG_EFI_CONSOLE=y CONFIG_DEBUG_EFI_CONSOLE=y
CONFIG_DEBUG_UART_BASE=0 CONFIG_DEBUG_UART_BASE=0
CONFIG_DEBUG_UART_CLOCK=0 CONFIG_DEBUG_UART_CLOCK=0
# CONFIG_X86_SERIAL is not set
CONFIG_EFI=y CONFIG_EFI=y

@ -198,6 +198,7 @@ config ROCKCHIP_SERIAL
config NS16550_SERIAL config NS16550_SERIAL
bool "NS16550 UART or compatible" bool "NS16550 UART or compatible"
depends on DM_SERIAL depends on DM_SERIAL
default y if X86
help help
Support NS16550 UART or compatible with driver model. This can be Support NS16550 UART or compatible with driver model. This can be
enabled in the device tree with the correct input clock frequency. enabled in the device tree with the correct input clock frequency.
@ -233,14 +234,4 @@ config UNIPHIER_SERIAL
If you have a UniPhier based board and want to use the on-chip If you have a UniPhier based board and want to use the on-chip
serial ports, say Y to this option. If unsure, say N. serial ports, say Y to this option. If unsure, say N.
config X86_SERIAL
bool "Support for 16550 serial port on x86 machines"
depends on X86
default y
help
Most x86 machines have a ns16550 UART or compatible. This can be
enabled in the device tree with the correct input clock frequency
provided (default 1843200). Enable this to obtain serial console
output.
endmenu endmenu

@ -46,7 +46,6 @@ obj-$(CONFIG_ARC_SERIAL) += serial_arc.o
obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o
obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o
obj-$(CONFIG_OMAP_SERIAL) += serial_omap.o obj-$(CONFIG_OMAP_SERIAL) += serial_omap.o
obj-$(CONFIG_X86_SERIAL) += serial_x86.o
obj-$(CONFIG_STM32_SERIAL) += serial_stm32.o obj-$(CONFIG_STM32_SERIAL) += serial_stm32.o
ifndef CONFIG_SPL_BUILD ifndef CONFIG_SPL_BUILD

@ -1,44 +0,0 @@
/*
* Copyright (c) 2014 Google, Inc
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <dm.h>
#include <fdtdec.h>
#include <ns16550.h>
#include <serial.h>
DECLARE_GLOBAL_DATA_PTR;
static const struct udevice_id x86_serial_ids[] = {
{ .compatible = "x86-uart" },
{ }
};
static int x86_serial_ofdata_to_platdata(struct udevice *dev)
{
struct ns16550_platdata *plat = dev_get_platdata(dev);
int ret;
ret = ns16550_serial_ofdata_to_platdata(dev);
if (ret)
return ret;
plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
"clock-frequency", 1843200);
return 0;
}
U_BOOT_DRIVER(serial_ns16550) = {
.name = "serial_x86",
.id = UCLASS_SERIAL,
.of_match = x86_serial_ids,
.ofdata_to_platdata = x86_serial_ofdata_to_platdata,
.platdata_auto_alloc_size = sizeof(struct ns16550_platdata),
.priv_auto_alloc_size = sizeof(struct NS16550),
.probe = ns16550_serial_probe,
.ops = &ns16550_serial_ops,
};
Loading…
Cancel
Save