Lines Matching refs:mtd
166 static inline struct spi_nor *mtd_to_spi_nor(struct mtd_info *mtd) in mtd_to_spi_nor() argument
168 return mtd->priv; in mtd_to_spi_nor()
266 dev_dbg(nor->dev, " %lldKiB\n", (long long)(nor->mtd->size >> 10)); in erase_chip()
299 static int spi_nor_erase(struct mtd_info *mtd, struct erase_info *instr) in spi_nor_erase() argument
301 struct spi_nor *nor = mtd_to_spi_nor(mtd); in spi_nor_erase()
309 div_u64_rem(instr->len, mtd->erasesize, &rem); in spi_nor_erase()
321 if (len == mtd->size) { in spi_nor_erase()
348 addr += mtd->erasesize; in spi_nor_erase()
349 len -= mtd->erasesize; in spi_nor_erase()
374 struct mtd_info *mtd = nor->mtd; in stm_lock() local
381 if (offset < mtd->size - (mtd->size / 2)) in stm_lock()
383 else if (offset < mtd->size - (mtd->size / 4)) in stm_lock()
385 else if (offset < mtd->size - (mtd->size / 8)) in stm_lock()
387 else if (offset < mtd->size - (mtd->size / 16)) in stm_lock()
389 else if (offset < mtd->size - (mtd->size / 32)) in stm_lock()
391 else if (offset < mtd->size - (mtd->size / 64)) in stm_lock()
408 struct mtd_info *mtd = nor->mtd; in stm_unlock() local
415 if (offset+len > mtd->size - (mtd->size / 64)) in stm_unlock()
417 else if (offset+len > mtd->size - (mtd->size / 32)) in stm_unlock()
419 else if (offset+len > mtd->size - (mtd->size / 16)) in stm_unlock()
421 else if (offset+len > mtd->size - (mtd->size / 8)) in stm_unlock()
423 else if (offset+len > mtd->size - (mtd->size / 4)) in stm_unlock()
425 else if (offset+len > mtd->size - (mtd->size / 2)) in stm_unlock()
440 static int spi_nor_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) in spi_nor_lock() argument
442 struct spi_nor *nor = mtd_to_spi_nor(mtd); in spi_nor_lock()
455 static int spi_nor_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) in spi_nor_unlock() argument
457 struct spi_nor *nor = mtd_to_spi_nor(mtd); in spi_nor_unlock()
717 static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len, in spi_nor_read() argument
720 struct spi_nor *nor = mtd_to_spi_nor(mtd); in spi_nor_read()
735 static int sst_write(struct mtd_info *mtd, loff_t to, size_t len, in sst_write() argument
738 struct spi_nor *nor = mtd_to_spi_nor(mtd); in sst_write()
806 static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len, in spi_nor_write() argument
809 struct spi_nor *nor = mtd_to_spi_nor(mtd); in spi_nor_write()
997 struct mtd_info *mtd = nor->mtd; in spi_nor_scan() local
1055 if (!mtd->name) in spi_nor_scan()
1056 mtd->name = dev_name(dev); in spi_nor_scan()
1057 mtd->type = MTD_NORFLASH; in spi_nor_scan()
1058 mtd->writesize = 1; in spi_nor_scan()
1059 mtd->flags = MTD_CAP_NORFLASH; in spi_nor_scan()
1060 mtd->size = info->sector_size * info->n_sectors; in spi_nor_scan()
1061 mtd->_erase = spi_nor_erase; in spi_nor_scan()
1062 mtd->_read = spi_nor_read; in spi_nor_scan()
1071 mtd->_lock = spi_nor_lock; in spi_nor_scan()
1072 mtd->_unlock = spi_nor_unlock; in spi_nor_scan()
1077 mtd->_write = sst_write; in spi_nor_scan()
1079 mtd->_write = spi_nor_write; in spi_nor_scan()
1088 mtd->erasesize = 4096; in spi_nor_scan()
1091 mtd->erasesize = 4096; in spi_nor_scan()
1096 mtd->erasesize = info->sector_size; in spi_nor_scan()
1100 mtd->flags |= MTD_NO_ERASE; in spi_nor_scan()
1102 mtd->dev.parent = dev; in spi_nor_scan()
1104 mtd->writebufsize = nor->page_size; in spi_nor_scan()
1156 else if (mtd->size > 0x1000000) { in spi_nor_scan()
1178 mtd->erasesize = info->sector_size; in spi_nor_scan()
1188 (long long)mtd->size >> 10); in spi_nor_scan()
1193 mtd->name, (long long)mtd->size, (long long)(mtd->size >> 20), in spi_nor_scan()
1194 mtd->erasesize, mtd->erasesize / 1024, mtd->numeraseregions); in spi_nor_scan()
1196 if (mtd->numeraseregions) in spi_nor_scan()
1197 for (i = 0; i < mtd->numeraseregions; i++) in spi_nor_scan()
1202 i, (long long)mtd->eraseregions[i].offset, in spi_nor_scan()
1203 mtd->eraseregions[i].erasesize, in spi_nor_scan()
1204 mtd->eraseregions[i].erasesize / 1024, in spi_nor_scan()
1205 mtd->eraseregions[i].numblocks); in spi_nor_scan()