[U-Boot] [PATCH 00/55] dm: exynos: Driver model improvements leading to spring support

Simon Glass sjg at chromium.org
Fri Jul 3 02:15:37 CEST 2015


This series adds a number of fixes and improvements to driver model as
well as two new uclasses (video bridges and I2c muxes).

The series is aimed at adding support for spring (HP 11 Chromebook). Since
it is very similar to other ARM Chromebooks, some effory is made to use
common code rather than duplicating functionality. In fact spring uses
the same code as several other boards, just with a different device tree
and a few configuration changes.

Audio works correctly on pit, pi, spring and snow with this series. A bug
in the I2C driver broken this recently.

The exynos implementation still has a few rough areas - e.g. some hard-coded
GPIOs and the old-style SPL. Also it does not yet support CPU frequency
scaling and power management.

Spring has some oddities and they are hard to handle with U-Boot's old
way of doing drivers. With driver model these can be implemented cleanly
and this sort of problem was the original motivation for my interest in
driver model.

This series is available at u-boot-dm in branch spring-working. It is
based on the previous set of driver model changes in branch clk-working.


Simon Glass (55):
  dm: core: Support finding a device by phandle
  dm: i2c: Add a message debug function
  dm: i2c: Correct comment nits in dm_i2c_reg_read/write()
  dm: i2c: Move definitions to the top of the header file
  dm: i2c: Add a function to transfer messages
  dm: i2c: Add support for multiplexed I2C buses
  exynos: i2c: Correct bug in pinmux selection
  i2c: Add a mux for GPIO-based I2C bus arbitration
  exynos: i2c: Fix code style with ReadWriteByte()
  exynos: i2c: Tidy up the driver model code
  exynos: dts: Sync up I2C ports with the kernel
  exynos: dts: Add PMIC and regulator definitions
  exynos: dts: Support EC tunnel and main TPS65090 regulator
  dm: cros_ec: Convert the I2C tunnel code to use driver model
  cros_ec: Support the LDO access method used by spring
  exynos: serial: Refactor init code for debug UART
  exynos: Add debug UART support for Samsung S5P serial
  exynos: Enable the debug UART in SPL
  dm: gpio: Add support for setting a GPIO's pull direction
  dm: exynos: gpio: Support pull-up/down in GPIOs
  dm: power: Add a new driver for the TPS65090 PMIC
  dm: power: Add support for TPS65090 FETs
  dm: power: Add support for the S5M8767 PMIC
  dm: power: Add support for S5M8767 regulators
  dm: pmic: max77686: Correct a few nits
  dm: pmic: Correct the pmic_reg_write() implementation
  dm: power: max77686: Correct BUCK register access
  dm: pmic: max77686: Support all BUCK regulators
  dm: power: Don't return an error when regulators are not autoset
  dm: pmic: Display the regulator limits on error
  dm: video: Add support for video bridges
  dm: video: Add support for the Parade PS8622/625 bridge
  dm: video: Add support for the NXP PTN3460 bridge
  exynos: spi: Convert the timeout to debug()
  exynos: Correct return value in exynos_mmc_init()
  exynos: Add support for the DisplayPort hotplug detect
  exynos: video: Correct debug output
  exynos: Tidy up CPU frequency display
  dm: gpio: Check a GPIO is valid before using it
  dts: exynos: snow: Add memory layout description
  dts: exynos: pit: Add a new node for the parade video bridge driver
  dts: exynos: snow: Add a new node for the NXP video bridge driver
  exynos: dts: Drop the old TPS65090 I2C node
  exynos: Add common board code for exynos5 boards that use device tree
  exynos: Enable new features for exynos5 boards
  exynos: Remove unneeded device tree control #ifdefs
  exynos: config: Move common options to the common headers and tidy up
  exynos: Drop old exynos5420-specific board code
  exynos: Drop old exynos5250-specific board code
  power: Remove old TPS65090 drivers
  cros_ec: Remove the old tunnel code
  video: Remove the old parade driver
  dts: Drop unused compatible ID for the NXP video bridge
  exynos: video: Remove non-device-tree code
  exynos: Add support for spring

 arch/arm/cpu/armv7/exynos/Kconfig                |   6 +
 arch/arm/cpu/armv7/exynos/lowlevel_init.c        |   5 +
 arch/arm/cpu/armv7/exynos/pinmux.c               |  10 +
 arch/arm/cpu/armv7/s5p-common/cpu_info.c         |   7 +-
 arch/arm/dts/Makefile                            |   1 +
 arch/arm/dts/exynos5.dtsi                        |  34 +-
 arch/arm/dts/exynos5250-arndale.dts              |  16 +-
 arch/arm/dts/exynos5250-smdk5250.dts             | 171 ++++++-
 arch/arm/dts/exynos5250-snow.dts                 | 371 ++++++++++++--
 arch/arm/dts/exynos5250-spring.dts               | 588 +++++++++++++++++++++++
 arch/arm/dts/exynos5250.dtsi                     |  24 +-
 arch/arm/dts/exynos5420-peach-pit.dts            | 260 ++++++++--
 arch/arm/dts/exynos5420-smdk5420.dts             |   4 +-
 arch/arm/dts/exynos54xx.dtsi                     |  36 +-
 arch/arm/dts/exynos5800-peach-pi.dts             | 131 +++--
 arch/arm/include/asm/arch-exynos/dp_info.h       |   2 -
 arch/arm/include/asm/arch-exynos/periph.h        |   1 +
 board/samsung/common/Makefile                    |   1 +
 board/samsung/common/board.c                     |  17 +-
 board/samsung/common/exynos5-dt.c                | 362 ++++++++++++++
 board/samsung/smdk5250/Kconfig                   |  13 +
 board/samsung/smdk5250/MAINTAINERS               |   6 +
 board/samsung/smdk5250/Makefile                  |   4 -
 board/samsung/smdk5250/exynos5-dt.c              | 306 ------------
 board/samsung/smdk5420/Makefile                  |   4 -
 board/samsung/smdk5420/smdk5420.c                | 143 ------
 common/cmd_regulator.c                           |   3 +-
 configs/arndale_defconfig                        |   2 +
 configs/odroid-xu3_defconfig                     |   5 +
 configs/peach-pi_defconfig                       |  19 +
 configs/peach-pit_defconfig                      |  19 +
 configs/smdk5250_defconfig                       |  10 +
 configs/smdk5420_defconfig                       |   5 +
 configs/snow_defconfig                           |  23 +
 configs/spring_defconfig                         |  38 ++
 doc/device-tree-bindings/i2c/i2c-mux.txt         |  60 +++
 doc/device-tree-bindings/video/bridge/ps8622.txt |  33 ++
 drivers/core/uclass.c                            |  42 ++
 drivers/gpio/gpio-uclass.c                       |  37 +-
 drivers/gpio/s5p_gpio.c                          |  15 +
 drivers/i2c/Kconfig                              |  26 +
 drivers/i2c/Makefile                             |   4 +
 drivers/i2c/cros_ec_ldo.c                        |  77 +++
 drivers/i2c/cros_ec_tunnel.c                     |  41 ++
 drivers/i2c/i2c-uclass.c                         |  27 ++
 drivers/i2c/muxes/Kconfig                        |  17 +
 drivers/i2c/muxes/Makefile                       |   7 +
 drivers/i2c/muxes/i2c-arb-gpio-challenge.c       | 147 ++++++
 drivers/i2c/muxes/i2c-mux-uclass.c               | 198 ++++++++
 drivers/i2c/s3c24x0_i2c.c                        | 155 ++++--
 drivers/misc/cros_ec.c                           | 288 ++---------
 drivers/mmc/s5p_sdhci.c                          |   2 +-
 drivers/power/pmic/Kconfig                       |  18 +
 drivers/power/pmic/Makefile                      |   5 +-
 drivers/power/pmic/max77686.c                    |   6 +-
 drivers/power/pmic/pmic-uclass.c                 |   2 +-
 drivers/power/pmic/pmic_tps65090.c               | 310 ------------
 drivers/power/pmic/pmic_tps65090_ec.c            | 218 ---------
 drivers/power/pmic/s5m8767.c                     |  95 ++++
 drivers/power/pmic/tps65090.c                    |  94 ++++
 drivers/power/regulator/Kconfig                  |  19 +
 drivers/power/regulator/Makefile                 |   2 +
 drivers/power/regulator/max77686.c               |  20 +-
 drivers/power/regulator/regulator-uclass.c       |   4 +-
 drivers/power/regulator/s5m8767.c                | 269 +++++++++++
 drivers/power/regulator/tps65090_regulator.c     | 138 ++++++
 drivers/serial/Kconfig                           |   7 +
 drivers/serial/serial_s5p.c                      |  63 ++-
 drivers/spi/exynos_spi.c                         |   6 +-
 drivers/video/Kconfig                            |   2 +
 drivers/video/Makefile                           |   3 +-
 drivers/video/bridge/Kconfig                     |  27 ++
 drivers/video/bridge/Makefile                    |   9 +
 drivers/video/bridge/ps862x.c                    | 134 ++++++
 drivers/video/bridge/ptn3460.c                   |  38 ++
 drivers/video/bridge/video-bridge-uclass.c       | 111 +++++
 drivers/video/exynos_dp.c                        |  24 +-
 drivers/video/exynos_dp_lowlevel.c               |   2 +-
 drivers/video/parade.c                           | 231 ---------
 include/asm-generic/gpio.h                       |  46 ++
 include/configs/arndale.h                        |  18 +-
 include/configs/exynos5-common.h                 |  13 +-
 include/configs/exynos5-dt-common.h              |  22 +-
 include/configs/exynos5250-common.h              |  16 +-
 include/configs/exynos5420-common.h              |   9 +-
 include/configs/odroid_xu3.h                     |   2 +
 include/configs/peach-pi.h                       |  15 +-
 include/configs/peach-pit.h                      |  25 +-
 include/configs/smdk5250.h                       |  17 +-
 include/configs/smdk5420.h                       |  11 +-
 include/configs/snow.h                           |  16 +-
 include/configs/spring.h                         |  20 +
 include/cros_ec.h                                |  16 +-
 include/dm/uclass-id.h                           |   2 +
 include/dm/uclass.h                              |  17 +
 include/fdtdec.h                                 |   3 -
 include/i2c.h                                    | 143 ++++--
 include/parade.h                                 |  18 -
 include/power/s5m8767.h                          |  85 ++++
 include/power/tps65090.h                         |  56 +++
 include/power/tps65090_pmic.h                    |  73 ---
 include/video_bridge.h                           |  92 ++++
 lib/fdtdec.c                                     |   3 -
 103 files changed, 4411 insertions(+), 2007 deletions(-)
 create mode 100644 arch/arm/dts/exynos5250-spring.dts
 create mode 100644 board/samsung/common/exynos5-dt.c
 delete mode 100644 board/samsung/smdk5250/exynos5-dt.c
 delete mode 100644 board/samsung/smdk5420/smdk5420.c
 create mode 100644 configs/spring_defconfig
 create mode 100644 doc/device-tree-bindings/i2c/i2c-mux.txt
 create mode 100644 doc/device-tree-bindings/video/bridge/ps8622.txt
 create mode 100644 drivers/i2c/cros_ec_ldo.c
 create mode 100644 drivers/i2c/cros_ec_tunnel.c
 create mode 100644 drivers/i2c/muxes/Kconfig
 create mode 100644 drivers/i2c/muxes/Makefile
 create mode 100644 drivers/i2c/muxes/i2c-arb-gpio-challenge.c
 create mode 100644 drivers/i2c/muxes/i2c-mux-uclass.c
 delete mode 100644 drivers/power/pmic/pmic_tps65090.c
 delete mode 100644 drivers/power/pmic/pmic_tps65090_ec.c
 create mode 100644 drivers/power/pmic/s5m8767.c
 create mode 100644 drivers/power/pmic/tps65090.c
 create mode 100644 drivers/power/regulator/s5m8767.c
 create mode 100644 drivers/power/regulator/tps65090_regulator.c
 create mode 100644 drivers/video/bridge/Kconfig
 create mode 100644 drivers/video/bridge/Makefile
 create mode 100644 drivers/video/bridge/ps862x.c
 create mode 100644 drivers/video/bridge/ptn3460.c
 create mode 100644 drivers/video/bridge/video-bridge-uclass.c
 delete mode 100644 drivers/video/parade.c
 create mode 100644 include/configs/spring.h
 delete mode 100644 include/parade.h
 create mode 100644 include/power/s5m8767.h
 create mode 100644 include/power/tps65090.h
 delete mode 100644 include/power/tps65090_pmic.h
 create mode 100644 include/video_bridge.h

-- 
2.4.3.573.g4eafbef



More information about the U-Boot mailing list