/**
  * spi_flash_scan - scan the SPI FLASH
- * @spi:       the spi slave structure
  * @flash:     the spi flash structure
  *
  * The drivers can use this fuction to scan the SPI FLASH.
  *
  * Return: 0 for success, others for failure.
  */
-int spi_flash_scan(struct spi_slave *spi, struct spi_flash *flash);
+int spi_flash_scan(struct spi_flash *flash);
 
 #endif /* _SF_INTERNAL_H_ */
 
 }
 #endif /* CONFIG_IS_ENABLED(OF_CONTROL) */
 
-int spi_flash_scan(struct spi_slave *spi, struct spi_flash *flash)
+int spi_flash_scan(struct spi_flash *flash)
 {
+       struct spi_slave *spi = flash->spi;
        const struct spi_flash_params *params;
        u16 jedec, ext_jedec;
        u8 idcode[5];
                write_sr(flash, 0);
 
        /* Assign spi data */
-       flash->spi = spi;
        flash->name = params->name;
        flash->memory_map = spi->memory_map;
        flash->dual_flash = flash->spi->option;
 
 /**
  * spi_flash_probe_slave() - Probe for a SPI flash device on a bus
  *
- * @spi: Bus to probe
  * @flashp: Pointer to place to put flash info, which may be NULL if the
  * space should be allocated
  */
-int spi_flash_probe_slave(struct spi_slave *spi, struct spi_flash *flash)
+int spi_flash_probe_slave(struct spi_flash *flash)
 {
+       struct spi_slave *spi = flash->spi;
        int ret;
 
        /* Setup spi_slave */
                return ret;
        }
 
-       ret = spi_flash_scan(spi, flash);
+       ret = spi_flash_scan(flash);
        if (ret) {
                ret = -EINVAL;
                goto err_read_id;
                return NULL;
        }
 
-       if (spi_flash_probe_slave(bus, flash)) {
+       flash->spi = bus;
+       if (spi_flash_probe_slave(flash)) {
                spi_free_slave(bus);
                free(flash);
                return NULL;
 
        flash = dev_get_uclass_priv(dev);
        flash->dev = dev;
+       flash->spi = slave;
        debug("%s: slave=%p, cs=%d\n", __func__, slave, plat->cs);
-       return spi_flash_probe_slave(slave, flash);
+       return spi_flash_probe_slave(flash);
 }
 
 static const struct dm_spi_flash_ops spi_flash_std_ops = {