
This series adds support for a serial uclass, enabling serial drivers to be converted to use driver model.
With v4, exynos boards all build and a second attempt has been made to add Tegra support via the ns16550 driver, tested on beaver, Jetson-TK1 and seaboard (i.e. 3 of the 4 SoCs in mainline).
To see the current state of driver model, look at u-boot-dm.git branch 'working'. This branch is at 'serial-working'.
Changes in v5: - Add new patch to add a function to look up a chosen node - Add struct udevice declaration - Use /chosen/stdout-path instead of /aliases/console to specify the console
Changes in v4: - Add a binding for sandbox serial - Add a separate Tegra serial driver to deal with the clock issue - Add new CONFIG_TEGRA_SERIAL option to enable dm driver - Remove 'clock-frequency' property from serial nodes - Remove clock frequency setup for ns16550 driver - Remove pre-reloc fdt property - Use hard-coded UART clock from Tegra configuration
Changes in v3: - Add new change to enhance lists_bind_fdt() - Add new patch for tegra serial port details - Add new patch to collect common baud rate code in ns16550 - Add new patch to enable driver model for serial on tegra - Add new patch to move baud rate calculation to ns16550.c - Add new patch to support driver model in ns16550 - Add new patch to use V_NS16550_CLK only in SPL builds - Automatically bind the console even if not marked for pre-relocation - Avoid reordering functions - Change pre-reloc fdt property to 'u-boot,dm-pre-reloc' - Fix typo in commit message
Changes in v2: - Rename struct device to struct udevice
Simon Glass (14): serial: Set up the 'priv' pointer when creating a serial device dm: fdt: Add a function to look up a chosen node dm: Adjust lists_bind_fdt() to return the bound device dm: Add a uclass for serial devices sandbox: Convert serial driver to use driver model sandbox: serial: Support a coloured console sandbox: dts: Add a serial console node dm: exynos: Mark exynos5 console as pre-reloc dm: exynos: Move serial to driver model dm: serial: Move baud rate calculation to ns16550.c dm: serial: Collect common baud rate code in ns16550 dm: serial: Add driver model support for ns16550 tegra: dts: Add serial port details dm: tegra: Enable driver model for serial
arch/arm/dts/exynos5.dtsi | 1 + arch/arm/dts/tegra114-dalmore.dts | 4 + arch/arm/dts/tegra114.dtsi | 53 ++++ arch/arm/dts/tegra124-jetson-tk1.dts | 4 + arch/arm/dts/tegra124-venice2.dts | 4 + arch/arm/dts/tegra124.dtsi | 66 ++++ arch/arm/dts/tegra20-colibri_t20_iris.dts | 4 + arch/arm/dts/tegra20-harmony.dts | 4 + arch/arm/dts/tegra20-medcom-wide.dts | 4 + arch/arm/dts/tegra20-paz00.dts | 4 + arch/arm/dts/tegra20-plutux.dts | 4 + arch/arm/dts/tegra20-seaboard.dts | 4 + arch/arm/dts/tegra20-tec.dts | 4 + arch/arm/dts/tegra20-trimslice.dts | 4 + arch/arm/dts/tegra20-ventana.dts | 4 + arch/arm/dts/tegra20-whistler.dts | 4 + arch/arm/dts/tegra20.dtsi | 51 ++- arch/arm/dts/tegra30-beaver.dts | 4 + arch/arm/dts/tegra30-cardhu.dts | 4 + arch/arm/dts/tegra30-tamonten.dtsi | 4 + arch/arm/dts/tegra30.dtsi | 66 ++++ arch/sandbox/dts/sandbox.dts | 10 + doc/device-tree-bindings/serial/ns16550.txt | 10 + doc/device-tree-bindings/serial/sandbox-serial.txt | 13 + drivers/core/lists.c | 10 +- drivers/core/root.c | 2 +- drivers/serial/Makefile | 7 +- drivers/serial/ns16550.c | 203 ++++++++++-- drivers/serial/sandbox.c | 140 +++++++-- drivers/serial/serial-uclass.c | 214 +++++++++++++ drivers/serial/serial.c | 1 + drivers/serial/serial_ns16550.c | 14 +- drivers/serial/serial_s5p.c | 255 +++++---------- drivers/serial/serial_tegra.c | 38 +++ include/configs/exynos-common.h | 1 + include/configs/sandbox.h | 3 + include/configs/tegra-common.h | 9 +- include/dm/lists.h | 6 +- include/dm/uclass-id.h | 1 + include/dt-bindings/clock/tegra114-car.h | 342 +++++++++++++++++++++ include/dt-bindings/clock/tegra124-car.h | 342 +++++++++++++++++++++ include/dt-bindings/clock/tegra20-car.h | 158 ++++++++++ include/dt-bindings/clock/tegra30-car.h | 273 ++++++++++++++++ include/fdtdec.h | 12 + include/ns16550.h | 66 ++++ include/serial.h | 92 ++++++ lib/fdtdec.c | 15 + 47 files changed, 2281 insertions(+), 257 deletions(-) create mode 100644 doc/device-tree-bindings/serial/ns16550.txt create mode 100644 doc/device-tree-bindings/serial/sandbox-serial.txt create mode 100644 drivers/serial/serial-uclass.c create mode 100644 drivers/serial/serial_tegra.c create mode 100644 include/dt-bindings/clock/tegra114-car.h create mode 100644 include/dt-bindings/clock/tegra124-car.h create mode 100644 include/dt-bindings/clock/tegra20-car.h create mode 100644 include/dt-bindings/clock/tegra30-car.h