Lines Matching defs:mtd

14 #include <linux/mtd/pfow.h>
15 #include <linux/mtd/qinfo.h>
19 static int lpddr_read(struct mtd_info *mtd, loff_t adr, size_t len,
21 static int lpddr_write_buffers(struct mtd_info *mtd, loff_t to,
23 static int lpddr_writev(struct mtd_info *mtd, const struct kvec *vecs,
25 static int lpddr_erase(struct mtd_info *mtd, struct erase_info *instr);
26 static int lpddr_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
27 static int lpddr_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
28 static int lpddr_point(struct mtd_info *mtd, loff_t adr, size_t len,
30 static int lpddr_unpoint(struct mtd_info *mtd, loff_t adr, size_t len);
40 struct mtd_info *mtd;
44 mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
45 if (!mtd)
47 mtd->priv = map;
48 mtd->type = MTD_NORFLASH;
50 /* Fill in the default mtd operations */
51 mtd->_read = lpddr_read;
52 mtd->type = MTD_NORFLASH;
53 mtd->flags = MTD_CAP_NORFLASH;
54 mtd->flags &= ~MTD_BIT_WRITEABLE;
55 mtd->_erase = lpddr_erase;
56 mtd->_write = lpddr_write_buffers;
57 mtd->_writev = lpddr_writev;
58 mtd->_lock = lpddr_lock;
59 mtd->_unlock = lpddr_unlock;
61 mtd->_point = lpddr_point;
62 mtd->_unpoint = lpddr_unpoint;
64 mtd->size = 1 << lpddr->qinfo->DevSizeShift;
65 mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift;
66 mtd->writesize = 1 << lpddr->qinfo->BufSizeShift;
71 kfree(mtd);
93 return mtd;
484 static int do_erase_oneblock(struct mtd_info *mtd, loff_t adr)
486 struct map_info *map = mtd->priv;
511 static int lpddr_read(struct mtd_info *mtd, loff_t adr, size_t len,
514 struct map_info *map = mtd->priv;
535 static int lpddr_point(struct mtd_info *mtd, loff_t adr, size_t len,
538 struct map_info *map = mtd->priv;
588 static int lpddr_unpoint (struct mtd_info *mtd, loff_t adr, size_t len)
590 struct map_info *map = mtd->priv;
633 static int lpddr_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
641 return lpddr_writev(mtd, &vec, 1, to, retlen);
645 static int lpddr_writev(struct mtd_info *mtd, const struct kvec *vecs,
648 struct map_info *map = mtd->priv;
692 static int lpddr_erase(struct mtd_info *mtd, struct erase_info *instr)
696 struct map_info *map = mtd->priv;
704 ret = do_erase_oneblock(mtd, ofs);
716 static int do_xxlock(struct mtd_info *mtd, loff_t adr, uint32_t len, int thunk)
719 struct map_info *map = mtd->priv;
751 static int lpddr_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
753 return do_xxlock(mtd, ofs, len, DO_XXLOCK_LOCK);
756 static int lpddr_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
758 return do_xxlock(mtd, ofs, len, DO_XXLOCK_UNLOCK);