
Note: This series is rebased to u-boot-mmc/master with a fix-up patch for a broken patch there.
This series completes the conversion of SATA to driver model.
Previous work converted SCSI including the SCSI-based SATA driver. This series converts the AHCI uclass itself, adding operations and adjusting the 'sata' command to work correctly.
An existing board (Compulab Utilite) is used for this work. It uses SATA without the SCSI layer. Unfortunately this board does not currently use driver model for MMC or USB, nor does it include a device tree. Therefore additional patches are included in this series to convert this over. Note that USB is rendered inoperative since the relevant device-tree nodes are disabled. Further work is needed here (e.g. by the board maintainer) but it is well beyond the objective of this series.
A long-standing niggle with MMC has been the CONFIG_DM_MMC_OPS option. This was introduced to allow driver model to handle MMC operations rather than having them in struct mmc. This was needed since the original uclass did not have support for operations.
At present i.MX is the only SoC that defines CONFIG_DM_MMC without CONFIG_DM_MMC_OPS. With this driver converted, the option is no longer necessary so this series takes the opportunity to drop that option.
Changes in v2: - Add new patch to avoid calling dm_scan_fdt_dev() with of-platdata - Rebase to u-boot-mmc/master
Simon Glass (40): dm: core: Avoid calling dm_scan_fdt_dev() with of-platdata dm: blk: Add a function to find an interface-type name dm: blk: Add a generic function for block device commands dm: sata: Adjust the 'sata' command to use blk_common_cmd() dm: scsi: Adjust the 'scsi' command to use blk_common_cmd() dm: ide: Adjust the 'ide' command to use blk_common_cmd() dm: usb: Adjust the 'usb' command to use blk_common_cmd() dm: blk: Update return value in blk_create_devicef() dm: core: Add a comment about the device_remove() flags dm: sata: dwc_ahsata: Make functions static dm: sata: dw_sata: Drop dwc_ahsata_rw_ncq_cmd() dm: sata: dw_sata: Move exported functions to the end dm: sata: dw_sata: Rename 'probe_ent' to uc_priv dm: sata: dw_sata: Drop unnecessary casts dm: sata: dw_sata: Pass uc_priv to internal functions dm: sata: dw_sata: Drop unnecessary brackets dm: sata: dw_sata: Sort #include directives dm: sata: dw_sata: Rename the dwc_ahsata private header dm: sata: dw_sata: Drop is_ready dm: sata: dw_sata: More ahci_init_one() futher down dm: sata: dw_sata: Set up common versions of operations dm: sata: Support driver model with the 'sata' command dm: sata: imx: Allow driver model to be used for sata dm: sata: Update the AHCI uclass to support operations dm: sata: dwc_ahsata: Add support for driver model dm: mmc: fsl_esdhc: Pass private data to internal functions dm: mmc: fsl_esdhc: Set up common versions of operations dm: mmc: fsl_esdhc: Detect reset failure dm: mmc: fsl_esdhc: Detect init failure dm: mmc: fsl_esdhc: Set up platform data dm: mmc: fsl_esdhc: Drop mmc_init() call from fsl_esdhc_init() dm: mmc: fsl_esdhc: Update to support livetree dm: mmc: fsl_esdhc: Update to support MMC operations dm: imx: cm_fx6: Support driver model for SATA dm: imx: cm_fx6: Add device tree for cm_fx6 dm: imx: cm_fx6: Add MMC support for CONFIG_BLK dm: imx: cm_fx6: Enable more driver model support dm: imx: Move i.MX devices to use CONFIG_DM_MMC_OPS dm: mmc: Correct Kconfig condition for SPL_DM_MMC_OPS dm: mmc: Drop CONFIG_DM_MMC_OPS
arch/arm/Kconfig | 2 - arch/arm/dts/Makefile | 1 + arch/arm/dts/imx6q-cm-fx6.dts | 115 ++++ arch/arm/mach-imx/cpu.c | 2 +- board/compulab/cm_fx6/cm_fx6.c | 80 +++ cmd/Makefile | 1 + cmd/blk_common.c | 104 ++++ cmd/ide.c | 107 +--- cmd/sata.c | 178 +++--- cmd/scsi.c | 79 +-- cmd/usb.c | 111 +--- common/splash_source.c | 2 +- configs/Linksprite_pcDuino3_defconfig | 3 - configs/cm_fx6_defconfig | 8 +- configs/imx6q_logic_defconfig | 1 - configs/imx6qdl_icore_mmc_defconfig | 1 - configs/imx6qdl_icore_rqs_defconfig | 1 - configs/imx6ul_geam_mmc_defconfig | 1 - configs/imx6ul_geam_nand_defconfig | 1 - configs/imx6ul_isiot_emmc_defconfig | 1 - configs/imx6ul_isiot_mmc_defconfig | 1 - configs/imx6ul_isiot_nand_defconfig | 1 - configs/ls1012aqds_qspi_defconfig | 1 - configs/ls1012ardb_qspi_defconfig | 1 - configs/mx6slevk_defconfig | 1 - configs/mx6slevk_spinor_defconfig | 1 - configs/mx6sllevk_defconfig | 1 - configs/mx6sllevk_plugin_defconfig | 1 - configs/mx6sxsabreauto_defconfig | 1 - configs/mx6ull_14x14_evk_defconfig | 1 - configs/mx6ull_14x14_evk_plugin_defconfig | 1 - configs/mx7dsabresd_defconfig | 1 - configs/mx7dsabresd_secure_defconfig | 1 - configs/mx7ulp_evk_defconfig | 1 - configs/mx7ulp_evk_plugin_defconfig | 1 - configs/opos6uldev_defconfig | 1 - drivers/ata/dwc_ahsata.c | 797 +++++++++++++----------- drivers/ata/{dwc_ahsata.h => dwc_ahsata_priv.h} | 6 +- drivers/ata/sata.c | 37 ++ drivers/block/blk-uclass.c | 7 +- drivers/block/blk_legacy.c | 7 + drivers/core/syscon-uclass.c | 2 + drivers/mmc/Kconfig | 39 +- drivers/mmc/dw_mmc.c | 8 +- drivers/mmc/fsl_esdhc.c | 261 +++++--- drivers/mmc/mmc-uclass.c | 4 - drivers/mmc/mmc.c | 12 +- drivers/mmc/mmc_legacy.c | 2 +- drivers/mmc/sdhci.c | 8 +- include/ahci.h | 54 ++ include/blk.h | 20 + include/configs/am335x_evm.h | 1 - include/configs/am335x_shc.h | 1 - include/configs/chiliboard.h | 1 - include/configs/omap3_logic.h | 1 - include/dm/device-internal.h | 2 +- include/dwc_ahsata.h | 16 + include/dwmmc.h | 2 +- include/mmc.h | 6 +- include/sata.h | 5 +- include/sdhci.h | 2 +- 61 files changed, 1195 insertions(+), 921 deletions(-) create mode 100644 arch/arm/dts/imx6q-cm-fx6.dts create mode 100644 cmd/blk_common.c rename drivers/ata/{dwc_ahsata.h => dwc_ahsata_priv.h} (99%) create mode 100644 include/dwc_ahsata.h