Lines Matching refs:nand
126 struct nand_chip nand; member
178 static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand) in to_mtk_nand() argument
180 return container_of(nand, struct mtk_nfc_nand_chip, nand); in to_mtk_nand()
499 static void mtk_nfc_select_target(struct nand_chip *nand, unsigned int cs) in mtk_nfc_select_target() argument
501 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_select_target()
502 struct mtk_nfc_nand_chip *mtk_nand = to_mtk_nand(nand); in mtk_nfc_select_target()
504 mtk_nfc_hw_runtime_config(nand_to_mtd(nand)); in mtk_nfc_select_target()
661 struct mtk_nfc_nand_chip *nand = to_mtk_nand(chip); in mtk_nfc_bad_mark_swap() local
662 u32 bad_pos = nand->bad_mark.pos; in mtk_nfc_bad_mark_swap()
665 bad_pos += nand->bad_mark.sec * mtk_data_len(chip); in mtk_nfc_bad_mark_swap()
667 bad_pos += nand->bad_mark.sec * chip->ecc.size; in mtk_nfc_bad_mark_swap()
1164 struct nand_chip *nand = mtd_to_nand(mtd); in mtk_nfc_set_fdm() local
1165 struct mtk_nfc_nand_chip *chip = to_mtk_nand(nand); in mtk_nfc_set_fdm()
1166 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_set_fdm()
1169 ecc_bytes = DIV_ROUND_UP(nand->ecc.strength * in mtk_nfc_set_fdm()
1183 struct nand_chip *nand = mtd_to_nand(mtd); in mtk_nfc_set_bad_mark_ctl() local
1189 bm_ctl->sec = mtd->writesize / mtk_data_len(nand); in mtk_nfc_set_bad_mark_ctl()
1190 bm_ctl->pos = mtd->writesize % mtk_data_len(nand); in mtk_nfc_set_bad_mark_ctl()
1196 struct nand_chip *nand = mtd_to_nand(mtd); in mtk_nfc_set_spare_per_sector() local
1197 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_set_spare_per_sector()
1201 eccsteps = mtd->writesize / nand->ecc.size; in mtk_nfc_set_spare_per_sector()
1204 if (nand->ecc.size == 1024) in mtk_nfc_set_spare_per_sector()
1220 if (nand->ecc.size == 1024) in mtk_nfc_set_spare_per_sector()
1228 struct nand_chip *nand = mtd_to_nand(mtd); in mtk_nfc_ecc_init() local
1230 nanddev_get_ecc_requirements(&nand->base); in mtk_nfc_ecc_init()
1231 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_ecc_init()
1236 if (nand->ecc.engine_type != NAND_ECC_ENGINE_TYPE_ON_HOST) { in mtk_nfc_ecc_init()
1242 if (!nand->ecc.size || !nand->ecc.strength) { in mtk_nfc_ecc_init()
1244 nand->ecc.strength = requirements->strength; in mtk_nfc_ecc_init()
1245 nand->ecc.size = requirements->step_size; in mtk_nfc_ecc_init()
1251 if (nand->ecc.size < 1024) { in mtk_nfc_ecc_init()
1254 nand->ecc.size = 1024; in mtk_nfc_ecc_init()
1255 nand->ecc.strength <<= 1; in mtk_nfc_ecc_init()
1257 nand->ecc.size = 512; in mtk_nfc_ecc_init()
1260 nand->ecc.size = 1024; in mtk_nfc_ecc_init()
1268 free = (nand->ecc.strength * mtk_ecc_get_parity_bits(nfc->ecc) in mtk_nfc_ecc_init()
1279 nand->ecc.strength = (spare << 3) / in mtk_nfc_ecc_init()
1283 nand->ecc.strength = (spare << 3) / in mtk_nfc_ecc_init()
1288 mtk_ecc_adjust_strength(nfc->ecc, &nand->ecc.strength); in mtk_nfc_ecc_init()
1291 nand->ecc.size, nand->ecc.strength); in mtk_nfc_ecc_init()
1343 struct nand_chip *nand; in mtk_nfc_nand_chip_init() local
1385 nand = &chip->nand; in mtk_nfc_nand_chip_init()
1386 nand->controller = &nfc->controller; in mtk_nfc_nand_chip_init()
1388 nand_set_flash_node(nand, np); in mtk_nfc_nand_chip_init()
1389 nand_set_controller_data(nand, nfc); in mtk_nfc_nand_chip_init()
1391 nand->options |= NAND_USES_DMA | NAND_SUBPAGE_READ; in mtk_nfc_nand_chip_init()
1394 nand->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST; in mtk_nfc_nand_chip_init()
1396 nand->ecc.write_subpage = mtk_nfc_write_subpage_hwecc; in mtk_nfc_nand_chip_init()
1397 nand->ecc.write_page_raw = mtk_nfc_write_page_raw; in mtk_nfc_nand_chip_init()
1398 nand->ecc.write_page = mtk_nfc_write_page_hwecc; in mtk_nfc_nand_chip_init()
1399 nand->ecc.write_oob_raw = mtk_nfc_write_oob_std; in mtk_nfc_nand_chip_init()
1400 nand->ecc.write_oob = mtk_nfc_write_oob_std; in mtk_nfc_nand_chip_init()
1402 nand->ecc.read_subpage = mtk_nfc_read_subpage_hwecc; in mtk_nfc_nand_chip_init()
1403 nand->ecc.read_page_raw = mtk_nfc_read_page_raw; in mtk_nfc_nand_chip_init()
1404 nand->ecc.read_page = mtk_nfc_read_page_hwecc; in mtk_nfc_nand_chip_init()
1405 nand->ecc.read_oob_raw = mtk_nfc_read_oob_std; in mtk_nfc_nand_chip_init()
1406 nand->ecc.read_oob = mtk_nfc_read_oob_std; in mtk_nfc_nand_chip_init()
1408 mtd = nand_to_mtd(nand); in mtk_nfc_nand_chip_init()
1416 ret = nand_scan(nand, nsels); in mtk_nfc_nand_chip_init()
1423 nand_cleanup(nand); in mtk_nfc_nand_chip_init()
1441 chip = &mtk_chip->nand; in mtk_nfc_nand_chips_cleanup()
1609 struct nand_chip *nand; in mtk_nfc_resume() local
1630 nand = &chip->nand; in mtk_nfc_resume()
1632 nand_reset(nand, i); in mtk_nfc_resume()