]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/spi/sf_probe.c
Merge branch 'master' of git://git.denx.de/u-boot-nios
[u-boot] / drivers / mtd / spi / sf_probe.c
index f591ab140b154aec0296112c00fb10482cdcd4a7..bc05d3022119cca4f480f26e631414f9d4be9b78 100644 (file)
@@ -182,6 +182,19 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
        flash->read = spi_flash_cmd_read_ops;
 #endif
 
+       /* lock hooks are flash specific - assign them based on idcode0 */
+       switch (idcode[0]) {
+#ifdef CONFIG_SPI_FLASH_STMICRO
+       case SPI_FLASH_CFI_MFR_STMICRO:
+               flash->flash_lock = stm_lock;
+               flash->flash_unlock = stm_unlock;
+               flash->flash_is_locked = stm_is_locked;
+#endif
+               break;
+       default:
+               debug("SF: Lock ops not supported for %02x flash\n", idcode[0]);
+       }
+
        /* Compute the flash size */
        flash->shift = (flash->dual_flash & SF_DUAL_PARALLEL_FLASH) ? 1 : 0;
        /*
@@ -484,7 +497,7 @@ 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 spi_slave *slave = dev_get_parent_priv(dev);
        struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev);
        struct spi_flash *flash;