Lines Matching refs:mtd
19 #include <linux/mtd/map.h>
20 #include <linux/mtd/mtd.h>
21 #include <linux/mtd/partitions.h>
233 static int lpddr2_nvm_do_block_op(struct mtd_info *mtd, loff_t start_add,
236 struct map_info *map = mtd->priv;
251 add += mtd->erasesize;
298 static int lpddr2_nvm_read(struct mtd_info *mtd, loff_t start_add,
301 struct map_info *map = mtd->priv;
316 static int lpddr2_nvm_write(struct mtd_info *mtd, loff_t start_add,
319 struct map_info *map = mtd->priv;
335 if (!(IS_ALIGNED(add, mtd->writesize))) { /* do sw program */
351 (u_long) mtd->writesize);
372 static int lpddr2_nvm_erase(struct mtd_info *mtd, struct erase_info *instr)
374 return lpddr2_nvm_do_block_op(mtd, instr->addr, instr->len,
381 static int lpddr2_nvm_unlock(struct mtd_info *mtd, loff_t start_add,
384 return lpddr2_nvm_do_block_op(mtd, start_add, len, LPDDR2_NVM_UNLOCK);
390 static int lpddr2_nvm_lock(struct mtd_info *mtd, loff_t start_add,
393 return lpddr2_nvm_do_block_op(mtd, start_add, len, LPDDR2_NVM_LOCK);
413 struct mtd_info *mtd;
429 mtd = devm_kzalloc(&pdev->dev, sizeof(*mtd), GFP_KERNEL);
430 if (!mtd)
459 *mtd = lpddr2_nvm_mtd_info;
460 mtd->dev.parent = &pdev->dev;
461 mtd->name = pdev->dev.init_name;
462 mtd->priv = map;
463 mtd->size = resource_size(add_range);
464 mtd->erasesize = ERASE_BLOCKSIZE * pcm_data->bus_width;
465 mtd->writebufsize = WRITE_BUFFSIZE * pcm_data->bus_width;
473 return mtd_device_register(mtd, NULL, 0);