• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/mtd/devices/

Lines Matching refs:docptr

52 static void DoC_Delay(void __iomem * docptr, int cycles)
57 WriteDOC(0, docptr, Mplus_NOP);
63 static int _DoC_WaitReady(void __iomem * docptr)
71 while (((ReadDOC(docptr, Mplus_FlashControl) & CDSN_CTRL_FR_B_MASK) != CDSN_CTRL_FR_B_MASK) && --c)
80 static inline int DoC_WaitReady(void __iomem * docptr)
87 DoC_Delay(docptr, 4);
89 if ((ReadDOC(docptr, Mplus_FlashControl) & CDSN_CTRL_FR_B_MASK) != CDSN_CTRL_FR_B_MASK)
91 ret = _DoC_WaitReady(docptr);
101 static inline void DoC_CheckASIC(void __iomem * docptr)
104 if ((ReadDOC(docptr, Mplus_DOCControl) & DOC_MODE_NORMAL) == 0) {
105 WriteDOC((DOC_MODE_NORMAL | DOC_MODE_MDWREN), docptr, Mplus_DOCControl);
106 WriteDOC(~(DOC_MODE_NORMAL | DOC_MODE_MDWREN), docptr, Mplus_CtrlConfirm);
113 static void DoC_Command(void __iomem * docptr, unsigned char command,
116 WriteDOC(command, docptr, Mplus_FlashCmd);
117 WriteDOC(command, docptr, Mplus_WritePipeTerm);
118 WriteDOC(command, docptr, Mplus_WritePipeTerm);
128 void __iomem * docptr = doc->virtadr;
136 WriteDOC(ofs & 0xff, docptr, Mplus_FlashAddress);
140 WriteDOC((ofs >> 9) & 0xff, docptr, Mplus_FlashAddress);
141 WriteDOC((ofs >> 17) & 0xff, docptr, Mplus_FlashAddress);
145 WriteDOC(ofs & 0xff, docptr, Mplus_FlashAddress);
146 WriteDOC((ofs >> 9) & 0xff, docptr, Mplus_FlashAddress);
147 WriteDOC((ofs >> 17) & 0xff, docptr, Mplus_FlashAddress);
153 WriteDOC(0x00, docptr, Mplus_WritePipeTerm);
154 WriteDOC(0x00, docptr, Mplus_WritePipeTerm);
158 static int DoC_SelectChip(void __iomem * docptr, int chip)
165 static int DoC_SelectFloor(void __iomem * docptr, int floor)
167 WriteDOC((floor & 0x3), docptr, Mplus_DeviceSelect);
246 static inline void MemReadDOC(void __iomem * docptr, unsigned char *buf, int len)
251 buf[i] = ReadDOC(docptr, Mil_CDSN_IO + i);
253 memcpy_fromio(buf, docptr + DoC_Mil_CDSN_IO, len);
257 static inline void MemWriteDOC(void __iomem * docptr, unsigned char *buf, int len)
262 WriteDOC(buf[i], docptr, Mil_CDSN_IO + i);
264 memcpy_toio(docptr + DoC_Mil_CDSN_IO, buf, len);
273 void __iomem * docptr = doc->virtadr;
276 DoC_SelectFloor(docptr, floor);
277 DoC_SelectChip(docptr, chip);
280 WriteDOC((DOC_FLASH_CE | DOC_FLASH_WP), docptr, Mplus_FlashSelect);
283 DoC_Command(docptr, NAND_CMD_RESET, 0);
284 DoC_WaitReady(docptr);
287 DoC_Command(docptr, NAND_CMD_READID, 0);
292 WriteDOC(0, docptr, Mplus_FlashControl);
293 DoC_WaitReady(docptr);
297 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
298 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
300 mfr = ReadDOC(docptr, Mil_CDSN_IO);
302 dummy = ReadDOC(docptr, Mil_CDSN_IO); /* 2 way interleave */
304 id = ReadDOC(docptr, Mil_CDSN_IO);
306 dummy = ReadDOC(docptr, Mil_CDSN_IO); /* 2 way interleave */
308 dummy = ReadDOC(docptr, Mplus_LastDataRead);
309 dummy = ReadDOC(docptr, Mplus_LastDataRead);
312 WriteDOC(0, docptr, Mplus_FlashSelect);
518 void __iomem * docptr = this->virtadr;
529 DoC_CheckASIC(docptr);
533 DoC_SelectFloor(docptr, mychip->floor);
534 DoC_SelectChip(docptr, mychip->chip);
536 DoC_SelectChip(docptr, mychip->chip);
542 WriteDOC((DOC_FLASH_CE | DOC_FLASH_WP), docptr, Mplus_FlashSelect);
545 DoC_Command(docptr, NAND_CMD_RESET, 0);
546 DoC_WaitReady(docptr);
549 DoC_Command(docptr, DoC_GetDataOffset(mtd, &fofs), 0);
551 WriteDOC(0, docptr, Mplus_FlashControl);
552 DoC_WaitReady(docptr);
555 WriteDOC(DOC_ECC_RESET, docptr, Mplus_ECCConf);
556 WriteDOC(DOC_ECC_EN, docptr, Mplus_ECCConf);
562 ReadDOC(docptr, Mplus_ReadPipeInit);
563 ReadDOC(docptr, Mplus_ReadPipeInit);
567 MemReadDOC(docptr, buf, len);
570 MemReadDOC(docptr, eccbuf, 4);
571 eccbuf[4] = ReadDOC(docptr, Mplus_LastDataRead);
572 eccbuf[5] = ReadDOC(docptr, Mplus_LastDataRead);
575 dummy = ReadDOC(docptr, Mplus_ECCConf);
576 dummy = ReadDOC(docptr, Mplus_ECCConf);
579 if (ReadDOC(docptr, Mplus_ECCConf) & 0x80) {
588 syndrome[i] = ReadDOC(docptr, Mplus_ECCSyndrome0 + i);
621 WriteDOC(DOC_ECC_DIS, docptr , Mplus_ECCConf);
624 WriteDOC(0, docptr, Mplus_FlashSelect);
637 void __iomem * docptr = this->virtadr;
651 DoC_CheckASIC(docptr);
655 DoC_SelectFloor(docptr, mychip->floor);
656 DoC_SelectChip(docptr, mychip->chip);
658 DoC_SelectChip(docptr, mychip->chip);
664 WriteDOC(DOC_FLASH_CE, docptr, Mplus_FlashSelect);
667 DoC_Command(docptr, NAND_CMD_RESET, 0);
668 DoC_WaitReady(docptr);
672 WriteDOC(DoC_GetDataOffset(mtd, &fto), docptr, Mplus_FlashCmd);
679 DoC_Command(docptr, NAND_CMD_SEQIN, 0x00);
683 WriteDOC(DOC_ECC_RESET, docptr, Mplus_ECCConf);
687 WriteDOC(0x55, docptr, Mil_CDSN_IO);
688 WriteDOC(0x55, docptr, Mil_CDSN_IO);
692 WriteDOC(DOC_ECC_EN | DOC_ECC_RW, docptr, Mplus_ECCConf);
694 MemWriteDOC(docptr, (unsigned char *) buf, len);
698 DoC_Delay(docptr, 3);
702 eccbuf[i] = ReadDOC(docptr, Mplus_ECCSyndrome0 + i);
705 WriteDOC(DOC_ECC_DIS, docptr, Mplus_ECCConf);
708 MemWriteDOC(docptr, eccbuf, 6);
712 WriteDOC(0x55, docptr, Mil_CDSN_IO+6);
713 WriteDOC(0x55, docptr, Mil_CDSN_IO+7);
722 WriteDOC(0x00, docptr, Mplus_WritePipeTerm);
723 WriteDOC(0x00, docptr, Mplus_WritePipeTerm);
727 DoC_Command(docptr, NAND_CMD_PAGEPROG, 0x00);
728 DoC_WaitReady(docptr);
732 DoC_Command(docptr, NAND_CMD_STATUS, 0);
733 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
734 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
735 DoC_Delay(docptr, 2);
736 if ((dummy = ReadDOC(docptr, Mplus_LastDataRead)) & 1) {
741 dummy = ReadDOC(docptr, Mplus_LastDataRead);
744 WriteDOC(0, docptr, Mplus_FlashSelect);
757 void __iomem * docptr = this->virtadr;
767 DoC_CheckASIC(docptr);
771 DoC_SelectFloor(docptr, mychip->floor);
772 DoC_SelectChip(docptr, mychip->chip);
774 DoC_SelectChip(docptr, mychip->chip);
780 WriteDOC((DOC_FLASH_CE | DOC_FLASH_WP), docptr, Mplus_FlashSelect);
783 WriteDOC(DOC_ECC_RESET, docptr, Mplus_ECCConf);
784 DoC_WaitReady(docptr);
797 DoC_Command(docptr, NAND_CMD_READOOB, 0);
800 DoC_Command(docptr, DoC_GetECCOffset(mtd, &fofs), 0);
803 DoC_Command(docptr, DoC_GetFlagsOffset(mtd, &fofs), 0);
806 DoC_Command(docptr, DoC_GetHdrOffset(mtd, &fofs), 0);
814 WriteDOC(0, docptr, Mplus_FlashControl);
815 DoC_WaitReady(docptr);
817 ReadDOC(docptr, Mplus_ReadPipeInit);
818 ReadDOC(docptr, Mplus_ReadPipeInit);
819 MemReadDOC(docptr, &buf[got], size - 2);
820 buf[got + size - 2] = ReadDOC(docptr, Mplus_LastDataRead);
821 buf[got + size - 1] = ReadDOC(docptr, Mplus_LastDataRead);
829 WriteDOC(0, docptr, Mplus_FlashSelect);
841 void __iomem * docptr = this->virtadr;
852 DoC_CheckASIC(docptr);
856 DoC_SelectFloor(docptr, mychip->floor);
857 DoC_SelectChip(docptr, mychip->chip);
859 DoC_SelectChip(docptr, mychip->chip);
865 WriteDOC(DOC_FLASH_CE, docptr, Mplus_FlashSelect);
876 DoC_Command(docptr, NAND_CMD_RESET, 0);
877 DoC_WaitReady(docptr);
883 WriteDOC(NAND_CMD_READOOB, docptr, Mplus_FlashCmd);
886 WriteDOC(DoC_GetECCOffset(mtd, &fofs), docptr, Mplus_FlashCmd);
889 WriteDOC(DoC_GetFlagsOffset(mtd, &fofs), docptr, Mplus_FlashCmd);
892 WriteDOC(DoC_GetHdrOffset(mtd, &fofs), docptr, Mplus_FlashCmd);
899 DoC_Command(docptr, NAND_CMD_SEQIN, 0x00);
903 WriteDOC(DOC_ECC_RESET, docptr, Mplus_ECCConf);
907 MemWriteDOC(docptr, (unsigned char *) &buf[got], size);
908 WriteDOC(0x00, docptr, Mplus_WritePipeTerm);
909 WriteDOC(0x00, docptr, Mplus_WritePipeTerm);
913 DoC_Command(docptr, NAND_CMD_PAGEPROG, 0x00);
914 DoC_WaitReady(docptr);
918 DoC_Command(docptr, NAND_CMD_STATUS, 0x00);
919 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
920 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
921 DoC_Delay(docptr, 2);
922 if ((dummy = ReadDOC(docptr, Mplus_LastDataRead)) & 1) {
928 dummy = ReadDOC(docptr, Mplus_LastDataRead);
936 WriteDOC(0, docptr, Mplus_FlashSelect);
948 void __iomem * docptr = this->virtadr;
951 DoC_CheckASIC(docptr);
959 DoC_SelectFloor(docptr, mychip->floor);
960 DoC_SelectChip(docptr, mychip->chip);
962 DoC_SelectChip(docptr, mychip->chip);
970 WriteDOC(DOC_FLASH_CE, docptr, Mplus_FlashSelect);
972 DoC_Command(docptr, NAND_CMD_RESET, 0x00);
973 DoC_WaitReady(docptr);
975 DoC_Command(docptr, NAND_CMD_ERASE1, 0);
977 DoC_Command(docptr, NAND_CMD_ERASE2, 0);
978 DoC_WaitReady(docptr);
983 DoC_Command(docptr, NAND_CMD_STATUS, 0);
984 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
985 dummy = ReadDOC(docptr, Mplus_ReadPipeInit);
986 if ((dummy = ReadDOC(docptr, Mplus_LastDataRead)) & 1) {
992 dummy = ReadDOC(docptr, Mplus_LastDataRead);
995 WriteDOC(0, docptr, Mplus_FlashSelect);