Lines Matching defs:nand
19 #include <linux/mtd/nand-ecc-mtk.h>
89 #define MTK_NAME "mtk-nand"
126 struct nand_chip nand;
178 static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand)
180 return container_of(nand, struct mtk_nfc_nand_chip, nand);
499 static void mtk_nfc_select_target(struct nand_chip *nand, unsigned int cs)
501 struct mtk_nfc *nfc = nand_get_controller_data(nand);
502 struct mtk_nfc_nand_chip *mtk_nand = to_mtk_nand(nand);
504 mtk_nfc_hw_runtime_config(nand_to_mtd(nand));
661 struct mtk_nfc_nand_chip *nand = to_mtk_nand(chip);
662 u32 bad_pos = nand->bad_mark.pos;
665 bad_pos += nand->bad_mark.sec * mtk_data_len(chip);
667 bad_pos += nand->bad_mark.sec * chip->ecc.size;
1090 * CNRNB: nand ready/busy register
1164 struct nand_chip *nand = mtd_to_nand(mtd);
1165 struct mtk_nfc_nand_chip *chip = to_mtk_nand(nand);
1166 struct mtk_nfc *nfc = nand_get_controller_data(nand);
1169 ecc_bytes = DIV_ROUND_UP(nand->ecc.strength *
1183 struct nand_chip *nand = mtd_to_nand(mtd);
1189 bm_ctl->sec = mtd->writesize / mtk_data_len(nand);
1190 bm_ctl->pos = mtd->writesize % mtk_data_len(nand);
1196 struct nand_chip *nand = mtd_to_nand(mtd);
1197 struct mtk_nfc *nfc = nand_get_controller_data(nand);
1201 eccsteps = mtd->writesize / nand->ecc.size;
1204 if (nand->ecc.size == 1024)
1220 if (nand->ecc.size == 1024)
1228 struct nand_chip *nand = mtd_to_nand(mtd);
1230 nanddev_get_ecc_requirements(&nand->base);
1231 struct mtk_nfc *nfc = nand_get_controller_data(nand);
1236 if (nand->ecc.engine_type != NAND_ECC_ENGINE_TYPE_ON_HOST) {
1242 if (!nand->ecc.size || !nand->ecc.strength) {
1244 nand->ecc.strength = requirements->strength;
1245 nand->ecc.size = requirements->step_size;
1251 if (nand->ecc.size < 1024) {
1254 nand->ecc.size = 1024;
1255 nand->ecc.strength <<= 1;
1257 nand->ecc.size = 512;
1260 nand->ecc.size = 1024;
1268 free = (nand->ecc.strength * mtk_ecc_get_parity_bits(nfc->ecc)
1279 nand->ecc.strength = (spare << 3) /
1283 nand->ecc.strength = (spare << 3) /
1288 mtk_ecc_adjust_strength(nfc->ecc, &nand->ecc.strength);
1291 nand->ecc.size, nand->ecc.strength);
1343 struct nand_chip *nand;
1385 nand = &chip->nand;
1386 nand->controller = &nfc->controller;
1388 nand_set_flash_node(nand, np);
1389 nand_set_controller_data(nand, nfc);
1391 nand->options |= NAND_USES_DMA | NAND_SUBPAGE_READ;
1394 nand->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
1396 nand->ecc.write_subpage = mtk_nfc_write_subpage_hwecc;
1397 nand->ecc.write_page_raw = mtk_nfc_write_page_raw;
1398 nand->ecc.write_page = mtk_nfc_write_page_hwecc;
1399 nand->ecc.write_oob_raw = mtk_nfc_write_oob_std;
1400 nand->ecc.write_oob = mtk_nfc_write_oob_std;
1402 nand->ecc.read_subpage = mtk_nfc_read_subpage_hwecc;
1403 nand->ecc.read_page_raw = mtk_nfc_read_page_raw;
1404 nand->ecc.read_page = mtk_nfc_read_page_hwecc;
1405 nand->ecc.read_oob_raw = mtk_nfc_read_oob_std;
1406 nand->ecc.read_oob = mtk_nfc_read_oob_std;
1408 mtd = nand_to_mtd(nand);
1416 ret = nand_scan(nand, nsels);
1423 nand_cleanup(nand);
1542 ret = devm_request_irq(dev, irq, mtk_nfc_irq, 0x0, "mtk-nand", nfc);
1558 dev_err(dev, "failed to init nand chips\n");
1580 chip = &mtk_chip->nand;
1605 struct nand_chip *nand;
1626 nand = &chip->nand;
1628 nand_reset(nand, i);