Using macro's for flash power up read-only access code
leads wrong behaviour hence use idcode0 for runtime
detection, hence the flash which require this functionality
gets detected at runtime.
Tested-by: Jagan Teki <jteki@openedev.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jagan Teki <jteki@openedev.com>
 #define SPI_FLASH_CFI_MFR_MACRONIX     0xc2
 #define SPI_FLASH_CFI_MFR_SST          0xbf
 #define SPI_FLASH_CFI_MFR_WINBOND      0xef
+#define SPI_FLASH_CFI_MFR_ATMEL                0x1f
 
 /* Erase commands */
 #define CMD_ERASE_4K                   0x20
 
        }
 
        /* Flash powers up read-only, so clear BP# bits */
-#if defined(CONFIG_SPI_FLASH_ATMEL) || \
-       defined(CONFIG_SPI_FLASH_MACRONIX) || \
-       defined(CONFIG_SPI_FLASH_SST)
+       if (idcode[0] == SPI_FLASH_CFI_MFR_ATMEL ||
+           idcode[0] == SPI_FLASH_CFI_MFR_MACRONIX ||
+           idcode[0] == SPI_FLASH_CFI_MFR_SST)
                write_sr(flash, 0);
-#endif
 
        /* Assign spi data */
        flash->spi = spi;