At present MMC does not use driver model for its operations. It uses its own structure and passes a struct mmc instead of a struct udevice.
This series addresses this by adding driver-model operations for MMC. The conversion process is also started, with patches for rockchip, zynq and qualcomm. While testing the v1 series a problem was found where simple-bus would bind all child devices prior to relocation, even those not marked for pre-relocation use. This caused Zynq boards to run out of memory with DM_USB enabled. This is caused by the 'false' value passed to dm_scan_fdt_node() by simple-bus. To fix this a new dm_scan_fdt_dev() function is created which passes the correct flag value. Existing users of dm_scan_fdt_node() are converted. Changes in v2: - Add missing struct ehci_ctrl to struct zynq_ehci_priv - Add new dm_scan_fdt_dev() function and convert the code - Add new patch to bring in dm_scan_fdt_dev() - Add new patch to make use of dm_scan_fdt_dev() - Add new patch to show early-malloc() usage in bdinfo - Add new patch to support CONFIG_BLK with socfpga - Add new patch to support raw partitions with CONFIG_BLK - Add new patch to use blk_dread/write() instead of direct calls - Add new patch to use dm_scan_fdt_dev() directly where possible - Drop patches previously applied to u-boot-dm/next - Fix sign-off tag Simon Glass (13): dm: core: Add a function to bind child devices dm: Convert users from dm_scan_fdt_node() to dm_scan_fdt_dev() dm: Use dm_scan_fdt_dev() directly where possible arm: Show early-malloc() usage in bdinfo net: phy: marvell: Add a missing errno.h header zynq: Increase the early malloc() size dm: zynq: usb: Convert to CONFIG_DM_USB dm: mmc: zynq: Convert zynq to use driver model for MMC dm: socfpga: mmc: Support CONFIG_BLK dm: usb: Use blk_dread/write() instead of direct calls dm: spl: mmc: Support raw partitions with CONFIG_BLK dm: mmc: Enable DM_MMC_OPS by default with DM_MMC dm: blk: Enable CONFIG_BLK if DM_MMC is enabled arch/arm/Kconfig | 7 ++ arch/arm/cpu/armv8/zynqmp/Kconfig | 4 ++ arch/arm/mach-zynq/Kconfig | 3 + arch/x86/lib/lpc-uclass.c | 15 +---- cmd/bdinfo.c | 5 ++ cmd/usb_mass_storage.c | 4 +- common/spl/spl_mmc.c | 2 +- common/usb_hub.c | 9 +-- drivers/block/Kconfig | 1 + drivers/core/root.c | 9 +++ drivers/core/simple-bus.c | 3 +- drivers/i2c/i2c-uclass.c | 8 +-- drivers/i2c/sandbox_i2c.c | 4 +- drivers/misc/cros_ec.c | 9 +-- drivers/mmc/Kconfig | 1 + drivers/mmc/socfpga_dw_mmc.c | 32 +++++++++- drivers/mmc/zynq_sdhci.c | 39 +++++++++-- drivers/net/phy/marvell.c | 1 + drivers/pch/pch-uclass.c | 15 +---- drivers/pci/pci-uclass.c | 24 +------ drivers/pci/pci_sandbox.c | 11 +--- drivers/pinctrl/pinctrl_pic32.c | 9 +-- drivers/pinctrl/rockchip/pinctrl_rk3036.c | 9 +-- drivers/pinctrl/rockchip/pinctrl_rk3288.c | 9 +-- drivers/power/pmic/pm8916.c | 9 +-- drivers/power/regulator/Kconfig | 2 +- drivers/spi/spi-uclass.c | 9 +-- drivers/spmi/spmi-uclass.c | 8 +-- drivers/usb/emul/usb-emul-uclass.c | 9 +-- drivers/usb/host/ehci-zynq.c | 103 +++++++++++++++--------------- drivers/usb/host/usb-uclass.c | 9 +-- include/dm/device.h | 16 +++++ include/power/regulator.h | 2 +- test/dm/bus.c | 3 +- test/dm/i2c.c | 4 +- test/dm/spi.c | 4 +- 36 files changed, 192 insertions(+), 219 deletions(-) -- 2.8.0.rc3.226.g39d4020 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot