/**
  * spi_flash_scan - scan the SPI FLASH
  * @spi:       the spi slave structure
- * @idcode:    idcode of spi flash
  * @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, u8 *idcode, struct spi_flash *flash);
+int spi_flash_scan(struct spi_slave *spi, struct spi_flash *flash);
 
 #endif /* _SF_INTERNAL_H_ */
 
 }
 #endif /* CONFIG_IS_ENABLED(OF_CONTROL) */
 
-int spi_flash_scan(struct spi_slave *spi, u8 *idcode, struct spi_flash *flash)
+int spi_flash_scan(struct spi_slave *spi, struct spi_flash *flash)
 {
        const struct spi_flash_params *params;
+       u16 jedec, ext_jedec;
+       u8 idcode[5];
        u8 cmd;
-       u16 jedec = idcode[1] << 8 | idcode[2];
-       u16 ext_jedec = idcode[3] << 8 | idcode[4];
        int ret;
 
+       /* Read the ID codes */
+       ret = spi_flash_cmd(spi, CMD_READ_ID, idcode, sizeof(idcode));
+       if (ret) {
+               printf("SF: Failed to get idcodes\n");
+               return -EINVAL;
+       }
+
+#ifdef DEBUG
+       printf("SF: Got idcodes\n");
+       print_buffer(0, idcode, 1, sizeof(idcode), 0);
+#endif
+
+       jedec = idcode[1] << 8 | idcode[2];
+       ext_jedec = idcode[3] << 8 | idcode[4];
+
        /* Validate params from spi_flash_params table */
        params = spi_flash_params_table;
        for (; params->name != NULL; params++) {
 
  */
 int spi_flash_probe_slave(struct spi_slave *spi, struct spi_flash *flash)
 {
-       u8 idcode[5];
        int ret;
 
        /* Setup spi_slave */
                return ret;
        }
 
-       /* Read the ID codes */
-       ret = spi_flash_cmd(spi, CMD_READ_ID, idcode, sizeof(idcode));
-       if (ret) {
-               printf("SF: Failed to get idcodes\n");
-               goto err_read_id;
-       }
-
-#ifdef DEBUG
-       printf("SF: Got idcodes\n");
-       print_buffer(0, idcode, 1, sizeof(idcode), 0);
-#endif
-
-       ret = spi_flash_scan(spi, idcode, flash);
+       ret = spi_flash_scan(spi, flash);
        if (ret) {
                ret = -EINVAL;
                goto err_read_id;