[U-Boot] [PATCH v5 0/14] Introduce driver model serial uclass

Simon Glass sjg at chromium.org
Fri Sep 5 00:27:22 CEST 2014


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

-- 
2.1.0.rc2.206.gedb03e5



More information about the U-Boot mailing list