Lines Matching refs:nand

229 	struct snand_mtd_dev *nand = mtd_to_snanddev(mtd);  in sfc_erase_mtd()  local
243 ret = snanddev_bbt_get_block_status(nand, addr >> mtd->erasesize_shift); in sfc_erase_mtd()
348 struct snand_mtd_dev *nand = kzalloc(sizeof(*nand), GFP_KERNEL); in sfc_nand_mtd_init() local
350 if (!nand) { in sfc_nand_mtd_init()
355 nand->snand = p_dev; in sfc_nand_mtd_init()
357 nand->mtd.name = "spi-nand0"; in sfc_nand_mtd_init()
358 nand->mtd.type = MTD_NANDFLASH; in sfc_nand_mtd_init()
359 nand->mtd.writesize = p_dev->page_size * SFC_NAND_SECTOR_SIZE; in sfc_nand_mtd_init()
360 nand->mtd.flags = MTD_CAP_NANDFLASH; in sfc_nand_mtd_init()
361 nand->mtd.size = capacity; in sfc_nand_mtd_init()
362 nand->mtd._erase = sfc_erase_mtd; in sfc_nand_mtd_init()
363 nand->mtd._read = sfc_read_mtd; in sfc_nand_mtd_init()
364 nand->mtd._write = sfc_write_mtd; in sfc_nand_mtd_init()
365 nand->mtd._block_isbad = sfc_isbad_mtd; in sfc_nand_mtd_init()
366 nand->mtd._block_markbad = sfc_markbad_mtd; in sfc_nand_mtd_init()
367 nand->mtd.oobsize = 16 * p_dev->page_size; in sfc_nand_mtd_init()
368 nand->mtd.bitflip_threshold = 2; in sfc_nand_mtd_init()
369 nand->mtd.erasesize = p_dev->block_size * SFC_NAND_SECTOR_SIZE; in sfc_nand_mtd_init()
370 nand->mtd.writebufsize = p_dev->page_size * SFC_NAND_SECTOR_SIZE; in sfc_nand_mtd_init()
371 nand->mtd.erasesize_shift = ffs(nand->mtd.erasesize) - 1; in sfc_nand_mtd_init()
372 nand->mtd.erasesize_mask = (1 << nand->mtd.erasesize_shift) - 1; in sfc_nand_mtd_init()
373 nand->mtd.writesize_shift = ffs(nand->mtd.writesize) - 1; in sfc_nand_mtd_init()
374 nand->mtd.writesize_mask = (1 << nand->mtd.writesize_shift) - 1; in sfc_nand_mtd_init()
375 nand->mtd.bitflip_threshold = 1; in sfc_nand_mtd_init()
376 nand->mtd.priv = nand; in sfc_nand_mtd_init()
377 nand->lock = lock; in sfc_nand_mtd_init()
378 nand->dma_buf = kmalloc(SFC_NAND_PAGE_MAX_SIZE, GFP_KERNEL | GFP_DMA); in sfc_nand_mtd_init()
379 if (!nand->dma_buf) { in sfc_nand_mtd_init()
385 nand->bbt.option |= NANDDEV_BBT_USE_FLASH; in sfc_nand_mtd_init()
386 ret = snanddev_bbt_init(nand); in sfc_nand_mtd_init()
407 ret = mtd_device_register(&nand->mtd, nand_parts, part_num); in sfc_nand_mtd_init()
416 kfree(nand->dma_buf); in sfc_nand_mtd_init()
418 kfree(nand); in sfc_nand_mtd_init()