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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot