Lines Matching refs:nand
245 struct nand_chip *nand = mtd->priv; in docg4_read_buf() local
250 p[i] = readw(nand->IO_ADDR_R); in docg4_read_buf()
256 struct nand_chip *nand = mtd->priv; in docg4_write_buf16() local
261 writew(p[i], nand->IO_ADDR_W); in docg4_write_buf16()
297 static int docg4_wait(struct mtd_info *mtd, struct nand_chip *nand) in docg4_wait() argument
300 struct docg4_priv *doc = nand->priv; in docg4_wait()
321 struct nand_chip *nand = mtd->priv; in docg4_select_chip() local
322 struct docg4_priv *doc = nand->priv; in docg4_select_chip()
340 struct nand_chip *nand = mtd->priv; in reset() local
341 struct docg4_priv *doc = nand->priv; in reset()
378 struct nand_chip *nand = mtd->priv; in correct_data() local
379 struct docg4_priv *doc = nand->priv; in correct_data()
403 if (nand->oob_poi[15]) { in correct_data()
405 unsigned long written_flag = nand->oob_poi[15]; in correct_data()
453 (unsigned long *)nand->oob_poi); in correct_data()
467 struct nand_chip *nand = mtd->priv; in docg4_read_byte() local
468 struct docg4_priv *doc = nand->priv; in docg4_read_byte()
548 struct nand_chip *nand = mtd->priv; in pageprog() local
549 struct docg4_priv *doc = nand->priv; in pageprog()
585 struct nand_chip *nand = mtd->priv; in sequence_reset() local
586 struct docg4_priv *doc = nand->priv; in sequence_reset()
602 struct nand_chip *nand = mtd->priv; in read_page_prologue() local
603 struct docg4_priv *doc = nand->priv; in read_page_prologue()
629 struct nand_chip *nand = mtd->priv; in write_page_prologue() local
630 struct docg4_priv *doc = nand->priv; in write_page_prologue()
694 struct nand_chip *nand = mtd->priv; in docg4_command() local
695 struct docg4_priv *doc = nand->priv; in docg4_command()
737 memcpy(nand->oob_poi, doc->oob_buf, 16); in docg4_command()
756 static int read_page(struct mtd_info *mtd, struct nand_chip *nand, in read_page() argument
759 struct docg4_priv *doc = nand->priv; in read_page()
792 docg4_read_buf(mtd, nand->oob_poi, 14); in read_page()
795 buf16 = (uint16_t *)(nand->oob_poi + 14); in read_page()
824 static int docg4_read_page_raw(struct mtd_info *mtd, struct nand_chip *nand, in docg4_read_page_raw() argument
827 return read_page(mtd, nand, buf, page, false); in docg4_read_page_raw()
830 static int docg4_read_page(struct mtd_info *mtd, struct nand_chip *nand, in docg4_read_page() argument
833 return read_page(mtd, nand, buf, page, true); in docg4_read_page()
836 static int docg4_read_oob(struct mtd_info *mtd, struct nand_chip *nand, in docg4_read_oob() argument
839 struct docg4_priv *doc = nand->priv; in docg4_read_oob()
845 docg4_command(mtd, NAND_CMD_READ0, nand->ecc.size, page); in docg4_read_oob()
864 docg4_read_buf(mtd, nand->oob_poi, 16); in docg4_read_oob()
877 struct nand_chip *nand = mtd->priv; in docg4_erase_block() local
878 struct docg4_priv *doc = nand->priv; in docg4_erase_block()
920 return nand->waitfunc(mtd, nand); in docg4_erase_block()
923 static int write_page(struct mtd_info *mtd, struct nand_chip *nand, in write_page() argument
926 struct docg4_priv *doc = nand->priv; in write_page()
942 docg4_write_buf16(mtd, nand->oob_poi, 6); in write_page()
945 writew(nand->oob_poi[6], docptr + DOCG4_OOB_6_7); in write_page()
965 writew(nand->oob_poi[7], docptr + DOCG4_OOB_6_7); in write_page()
967 memcpy(ecc_buf, &nand->oob_poi[8], 8); in write_page()
979 static int docg4_write_page_raw(struct mtd_info *mtd, struct nand_chip *nand, in docg4_write_page_raw() argument
982 return write_page(mtd, nand, buf, false); in docg4_write_page_raw()
985 static int docg4_write_page(struct mtd_info *mtd, struct nand_chip *nand, in docg4_write_page() argument
988 return write_page(mtd, nand, buf, true); in docg4_write_page()
991 static int docg4_write_oob(struct mtd_info *mtd, struct nand_chip *nand, in docg4_write_oob() argument
1006 struct docg4_priv *doc = nand->priv; in docg4_write_oob()
1008 memcpy(doc->oob_buf, nand->oob_poi, 16); in docg4_write_oob()
1019 struct nand_chip *nand = mtd->priv; in read_factory_bbt() local
1020 struct docg4_priv *doc = nand->priv; in read_factory_bbt()
1031 docg4_read_page(mtd, nand, buf, 0, DOCG4_FACTORY_BBT_PAGE); in read_factory_bbt()
1040 if (nand->bbt == NULL) /* no memory-based bbt */ in read_factory_bbt()
1049 docg4_read_page(mtd, nand, buf, 0, DOCG4_REDUNDANT_BBT_PAGE); in read_factory_bbt()
1067 nand->bbt[badblock / 4] |= in read_factory_bbt()
1092 struct nand_chip *nand = mtd->priv; in docg4_block_markbad() local
1093 struct docg4_priv *doc = nand->priv; in docg4_block_markbad()
1094 struct nand_bbt_descr *bbtd = nand->badblock_pattern; in docg4_block_markbad()
1095 int page = (int)(ofs >> nand->page_shift); in docg4_block_markbad()
1110 memset(nand->oob_poi, 0xff, mtd->oobsize); in docg4_block_markbad()
1112 nand->oob_poi[bbtd->offs + i] = ~bbtd->pattern[i]; in docg4_block_markbad()
1116 docg4_write_page(mtd, nand, buf, 1, page); in docg4_block_markbad()
1205 struct nand_chip *nand = mtd->priv; in init_mtd_structs() local
1206 struct docg4_priv *doc = nand->priv; in init_mtd_structs()
1213 nand->chipsize = DOCG4_CHIP_SIZE; in init_mtd_structs()
1214 nand->chip_shift = DOCG4_CHIP_SHIFT; in init_mtd_structs()
1215 nand->bbt_erase_shift = nand->phys_erase_shift = DOCG4_ERASE_SHIFT; in init_mtd_structs()
1216 nand->chip_delay = 20; in init_mtd_structs()
1217 nand->page_shift = DOCG4_PAGE_SHIFT; in init_mtd_structs()
1218 nand->pagemask = 0x3ffff; in init_mtd_structs()
1219 nand->badblockpos = NAND_LARGE_BADBLOCK_POS; in init_mtd_structs()
1220 nand->badblockbits = 8; in init_mtd_structs()
1221 nand->ecc.layout = &docg4_oobinfo; in init_mtd_structs()
1222 nand->ecc.mode = NAND_ECC_HW_SYNDROME; in init_mtd_structs()
1223 nand->ecc.size = DOCG4_PAGE_SIZE; in init_mtd_structs()
1224 nand->ecc.prepad = 8; in init_mtd_structs()
1225 nand->ecc.bytes = 8; in init_mtd_structs()
1226 nand->ecc.strength = DOCG4_T; in init_mtd_structs()
1227 nand->options = NAND_BUSWIDTH_16 | NAND_NO_SUBPAGE_WRITE; in init_mtd_structs()
1228 nand->IO_ADDR_R = nand->IO_ADDR_W = doc->virtadr + DOC_IOSPACE_DATA; in init_mtd_structs()
1229 nand->controller = &nand->hwcontrol; in init_mtd_structs()
1230 spin_lock_init(&nand->controller->lock); in init_mtd_structs()
1231 init_waitqueue_head(&nand->controller->wq); in init_mtd_structs()
1234 nand->cmdfunc = docg4_command; in init_mtd_structs()
1235 nand->waitfunc = docg4_wait; in init_mtd_structs()
1236 nand->select_chip = docg4_select_chip; in init_mtd_structs()
1237 nand->read_byte = docg4_read_byte; in init_mtd_structs()
1238 nand->block_markbad = docg4_block_markbad; in init_mtd_structs()
1239 nand->read_buf = docg4_read_buf; in init_mtd_structs()
1240 nand->write_buf = docg4_write_buf16; in init_mtd_structs()
1241 nand->erase = docg4_erase_block; in init_mtd_structs()
1242 nand->ecc.read_page = docg4_read_page; in init_mtd_structs()
1243 nand->ecc.write_page = docg4_write_page; in init_mtd_structs()
1244 nand->ecc.read_page_raw = docg4_read_page_raw; in init_mtd_structs()
1245 nand->ecc.write_page_raw = docg4_write_page_raw; in init_mtd_structs()
1246 nand->ecc.read_oob = docg4_read_oob; in init_mtd_structs()
1247 nand->ecc.write_oob = docg4_write_oob; in init_mtd_structs()
1256 nand->options |= NAND_SKIP_BBTSCAN; in init_mtd_structs()
1257 nand->block_bad = docg4_block_neverbad; in init_mtd_structs()
1264 struct nand_chip *nand = mtd->priv; in read_id_reg() local
1265 struct docg4_priv *doc = nand->priv; in read_id_reg()
1289 struct nand_chip *nand; in probe_docg4() local
1315 nand = (struct nand_chip *) (mtd + 1); in probe_docg4()
1316 doc = (struct docg4_priv *) (nand + 1); in probe_docg4()
1317 mtd->priv = nand; in probe_docg4()
1318 nand->priv = doc; in probe_docg4()
1360 struct nand_chip *nand = mtd->priv; in probe_docg4() local
1361 struct docg4_priv *doc = nand->priv; in probe_docg4()