This patch add support to use spi_flash_scan in dm-spi-flash probe, so-that it can access the spi_flash functionalities same as non-dm sf probe.
Signed-off-by: Jagan Teki <jt...@openedev.com> --- Changes for v4, v3, v2: - none drivers/mtd/spi/sf_probe.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index cfc696f..6ce82a7 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -137,14 +137,36 @@ int spi_flash_std_erase(struct udevice *dev, u32 offset, size_t len) int spi_flash_std_probe(struct udevice *dev) { - struct spi_slave *slave = dev_get_parentdata(dev); struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev); + struct spi_slave *slave = dev_get_parentdata(dev); struct spi_flash *flash; + int ret; + + debug("%s: slave=%p, cs=%d\n", __func__, slave, plat->cs); flash = dev_get_uclass_priv(dev); flash->dev = dev; - debug("%s: slave=%p, cs=%d\n", __func__, slave, plat->cs); - return spi_flash_probe_slave(slave, flash); + + /* Claim spi bus */ + ret = spi_claim_bus(slave); + if (ret) { + debug("SF: Failed to claim SPI bus: %d\n", ret); + return ret; + } + + ret = spi_flash_scan(slave, flash); + if (ret) { + ret = -EINVAL; + goto err_read_id; + } + +#ifdef CONFIG_SPI_FLASH_MTD + ret = spi_flash_mtd_register(flash); +#endif + +err_read_id: + spi_release_bus(slave); + return ret; } static const struct dm_spi_flash_ops spi_flash_std_ops = { -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot