Lines Matching full:lpddr
3 * LPDDR flash memory device operations. This module provides read, write,
4 * erase, lock/unlock support for LPDDR flash memories
37 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_cmdset() local
64 mtd->size = 1 << lpddr->qinfo->DevSizeShift; in lpddr_cmdset()
65 mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift; in lpddr_cmdset()
66 mtd->writesize = 1 << lpddr->qinfo->BufSizeShift; in lpddr_cmdset()
68 shared = kmalloc_array(lpddr->numchips, sizeof(struct flchip_shared), in lpddr_cmdset()
75 chip = &lpddr->chips[0]; in lpddr_cmdset()
76 numchips = lpddr->numchips / lpddr->qinfo->HWPartsNum; in lpddr_cmdset()
80 for (j = 0; j < lpddr->qinfo->HWPartsNum; j++) { in lpddr_cmdset()
81 *chip = lpddr->chips[i]; in lpddr_cmdset()
82 chip->start += j << lpddr->chipshift; in lpddr_cmdset()
296 struct lpddr_private *lpddr = map->fldrv_priv; in chip_ready() local
310 if (!lpddr->qinfo->SuspEraseSupp || in chip_ready()
407 struct lpddr_private *lpddr = map->fldrv_priv; in do_write_buffer() local
414 wbufsize = 1 << lpddr->qinfo->BufSizeShift; in do_write_buffer()
472 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->ProgBufferTime)); in do_write_buffer()
487 struct lpddr_private *lpddr = map->fldrv_priv; in do_erase_oneblock() local
488 int chipnum = adr >> lpddr->chipshift; in do_erase_oneblock()
489 struct flchip *chip = &lpddr->chips[chipnum]; in do_erase_oneblock()
500 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->BlockEraseTime)*1000); in do_erase_oneblock()
515 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_read() local
516 int chipnum = adr >> lpddr->chipshift; in lpddr_read()
517 struct flchip *chip = &lpddr->chips[chipnum]; in lpddr_read()
539 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_point() local
540 int chipnum = adr >> lpddr->chipshift; in lpddr_point()
542 struct flchip *chip = &lpddr->chips[chipnum]; in lpddr_point()
549 ofs = adr - (chipnum << lpddr->chipshift); in lpddr_point()
555 if (chipnum >= lpddr->numchips) in lpddr_point()
564 if ((len + ofs - 1) >> lpddr->chipshift) in lpddr_point()
565 thislen = (1<<lpddr->chipshift) - ofs; in lpddr_point()
581 last_end += 1 << lpddr->chipshift; in lpddr_point()
583 chip = &lpddr->chips[chipnum]; in lpddr_point()
591 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_unpoint() local
592 int chipnum = adr >> lpddr->chipshift, err = 0; in lpddr_unpoint()
596 ofs = adr - (chipnum << lpddr->chipshift); in lpddr_unpoint()
602 chip = &lpddr->chips[chipnum]; in lpddr_unpoint()
603 if (chipnum >= lpddr->numchips) in lpddr_unpoint()
606 if ((len + ofs - 1) >> lpddr->chipshift) in lpddr_unpoint()
607 thislen = (1<<lpddr->chipshift) - ofs; in lpddr_unpoint()
649 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_writev() local
653 int wbufsize = 1 << lpddr->qinfo->BufSizeShift; in lpddr_writev()
662 chipnum = to >> lpddr->chipshift; in lpddr_writev()
674 ret = do_write_buffer(map, &lpddr->chips[chipnum], in lpddr_writev()
697 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_erase() local
698 int size = 1 << lpddr->qinfo->UniformBlockSizeShift; in lpddr_erase()
720 struct lpddr_private *lpddr = map->fldrv_priv; in do_xxlock() local
721 int chipnum = adr >> lpddr->chipshift; in do_xxlock()
722 struct flchip *chip = &lpddr->chips[chipnum]; in do_xxlock()
763 MODULE_DESCRIPTION("MTD driver for LPDDR flash chips");