Lines Matching full:nand

10 #define pr_fmt(fmt)	"spi-nand: " fmt
53 struct nand_device *nand = spinand_to_nand(spinand); in spinand_get_cfg() local
56 spinand->cur_target >= nand->memorg.ntargets)) in spinand_get_cfg()
65 struct nand_device *nand = spinand_to_nand(spinand); in spinand_set_cfg() local
69 spinand->cur_target >= nand->memorg.ntargets)) in spinand_set_cfg()
109 * spinand_select_target() - Select a specific NAND target/die
119 struct nand_device *nand = spinand_to_nand(spinand); in spinand_select_target() local
122 if (WARN_ON(target >= nand->memorg.ntargets)) in spinand_select_target()
128 if (nand->memorg.ntargets == 1) { in spinand_select_target()
143 struct nand_device *nand = spinand_to_nand(spinand); in spinand_init_cfg_cache() local
149 nand->memorg.ntargets, in spinand_init_cfg_cache()
155 for (target = 0; target < nand->memorg.ntargets; target++) { in spinand_init_cfg_cache()
206 struct nand_device *nand = spinand_to_nand(spinand); in spinand_load_page_op() local
207 unsigned int row = nanddev_pos_to_row(nand, &req->pos); in spinand_load_page_op()
216 struct nand_device *nand = spinand_to_nand(spinand); in spinand_read_from_cache_op() local
217 struct mtd_info *mtd = nanddev_to_mtd(nand); in spinand_read_from_cache_op()
226 nbytes = nanddev_page_size(nand); in spinand_read_from_cache_op()
231 nbytes += nanddev_per_page_oobsize(nand); in spinand_read_from_cache_op()
234 column = nanddev_page_size(nand); in spinand_read_from_cache_op()
274 struct nand_device *nand = spinand_to_nand(spinand); in spinand_write_to_cache_op() local
275 struct mtd_info *mtd = nanddev_to_mtd(nand); in spinand_write_to_cache_op()
288 nbytes = nanddev_page_size(nand) + nanddev_per_page_oobsize(nand); in spinand_write_to_cache_op()
327 struct nand_device *nand = spinand_to_nand(spinand); in spinand_program_op() local
328 unsigned int row = nanddev_pos_to_row(nand, &req->pos); in spinand_program_op()
337 struct nand_device *nand = spinand_to_nand(spinand); in spinand_erase_op() local
338 unsigned int row = nanddev_pos_to_row(nand, pos); in spinand_erase_op()
407 struct nand_device *nand = spinand_to_nand(spinand); in spinand_check_ecc_status() local
422 return nanddev_get_ecc_conf(nand)->strength; in spinand_check_ecc_status()
488 struct nand_device *nand = mtd_to_nanddev(mtd); in spinand_mtd_read() local
500 nanddev_io_for_each_page(nand, NAND_PAGE_READ, from, ops, &iter) { in spinand_mtd_read()
538 struct nand_device *nand = mtd_to_nanddev(mtd); in spinand_mtd_write() local
548 nanddev_io_for_each_page(nand, NAND_PAGE_WRITE, to, ops, &iter) { in spinand_mtd_write()
570 static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos) in spinand_isbad() argument
572 struct spinand_device *spinand = nand_to_spinand(nand); in spinand_isbad()
592 struct nand_device *nand = mtd_to_nanddev(mtd); in spinand_mtd_block_isbad() local
593 struct spinand_device *spinand = nand_to_spinand(nand); in spinand_mtd_block_isbad()
597 nanddev_offs_to_pos(nand, offs, &pos); in spinand_mtd_block_isbad()
599 ret = nanddev_isbad(nand, &pos); in spinand_mtd_block_isbad()
605 static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos) in spinand_markbad() argument
607 struct spinand_device *spinand = nand_to_spinand(nand); in spinand_markbad()
631 struct nand_device *nand = mtd_to_nanddev(mtd); in spinand_mtd_block_markbad() local
632 struct spinand_device *spinand = nand_to_spinand(nand); in spinand_mtd_block_markbad()
636 nanddev_offs_to_pos(nand, offs, &pos); in spinand_mtd_block_markbad()
638 ret = nanddev_markbad(nand, &pos); in spinand_mtd_block_markbad()
644 static int spinand_erase(struct nand_device *nand, const struct nand_pos *pos) in spinand_erase() argument
646 struct spinand_device *spinand = nand_to_spinand(nand); in spinand_erase()
685 struct nand_device *nand = mtd_to_nanddev(mtd); in spinand_mtd_block_isreserved() local
689 nanddev_offs_to_pos(nand, offs, &pos); in spinand_mtd_block_isreserved()
691 ret = nanddev_isreserved(nand, &pos); in spinand_mtd_block_isreserved()
700 struct nand_device *nand = spinand_to_nand(spinand); in spinand_create_dirmap() local
702 .length = nanddev_page_size(nand) + in spinand_create_dirmap()
703 nanddev_per_page_oobsize(nand), in spinand_create_dirmap()
708 info.offset = plane << fls(nand->memorg.pagesize); in spinand_create_dirmap()
731 struct nand_device *nand = spinand_to_nand(spinand); in spinand_create_dirmaps() local
736 nand->memorg.planes_per_lun, in spinand_create_dirmaps()
741 for (i = 0; i < nand->memorg.planes_per_lun; i++) { in spinand_create_dirmaps()
840 struct nand_device *nand = spinand_to_nand(spinand); in spinand_select_op_variant() local
848 nbytes = nanddev_per_page_oobsize(nand) + in spinand_select_op_variant()
849 nanddev_page_size(nand); in spinand_select_op_variant()
873 * @spinand: SPI NAND object
874 * @table: SPI NAND device description table
879 * entry in the SPI NAND description table. If a match is found, the spinand
891 struct nand_device *nand = spinand_to_nand(spinand); in spinand_match_and_init() local
904 nand->memorg = table[i].memorg; in spinand_match_and_init()
905 nanddev_set_ecc_requirements(nand, &table[i].eccreq); in spinand_match_and_init()
938 struct nand_device *nand = spinand_to_nand(spinand); in spinand_detect() local
952 if (nand->memorg.ntargets > 1 && !spinand->select_target) { in spinand_detect()
959 "%s SPI NAND was found.\n", spinand->manufacturer->name); in spinand_detect()
962 nanddev_size(nand) >> 20, nanddev_eraseblock_size(nand) >> 10, in spinand_detect()
963 nanddev_page_size(nand), nanddev_per_page_oobsize(nand)); in spinand_detect()
996 struct nand_device *nand = mtd_to_nanddev(mtd); in spinand_init() local
1016 spinand->databuf = kzalloc(nanddev_page_size(nand) + in spinand_init()
1017 nanddev_per_page_oobsize(nand), in spinand_init()
1024 spinand->oobbuf = spinand->databuf + nanddev_page_size(nand); in spinand_init()
1041 "Failed to initialize the SPI NAND chip (err = %d)\n", in spinand_init()
1055 for (i = 0; i < nand->memorg.ntargets; i++) { in spinand_init()
1065 ret = nanddev_init(nand, &spinand_ops, THIS_MODULE); in spinand_init()
1093 mtd->ecc_strength = nanddev_get_ecc_conf(nand)->strength; in spinand_init()
1094 mtd->ecc_step_size = nanddev_get_ecc_conf(nand)->step_size; in spinand_init()
1099 nanddev_cleanup(nand); in spinand_init()
1112 struct nand_device *nand = spinand_to_nand(spinand); in spinand_cleanup() local
1114 nanddev_cleanup(nand); in spinand_cleanup()
1173 { .name = "spi-nand" },
1179 { .compatible = "spi-nand" },
1188 .name = "spi-nand",
1197 MODULE_DESCRIPTION("SPI NAND framework");