Lines Matching +full:has +full:- +full:chip +full:- +full:id
10 The generic NAND driver supports almost all NAND and AG-AND based chips
26 struct member has a short description which is marked with an [XXX]
31 --------------------------
37 - [MTD Interface]
43 - [NAND Interface]
48 - [GENERIC]
53 - [DEFAULT]
58 via pointers in the NAND chip description structure. The board driver
62 function which is suitable for the detected chip type.
65 -------------------------------
71 - [INTERN]
74 modified. Most of these values are calculated from the chip geometry
77 - [REPLACEABLE]
84 suitable for the detected chip type.
86 - [BOARDSPECIFIC]
92 - [OPTIONAL]
102 chip description structure.
105 -------------
108 the ioremap'ed chip address. You can allocate the nand_chip structure
109 using kmalloc or you can allocate it statically. The NAND chip structure
131 -----------------
150 -------------------------
153 NAND chip(s). The access can be done by GPIO pins or by address lines.
175 by a chip select decoder.
183 case NAND_CTL_SETCLE: this->legacy.IO_ADDR_W |= CLE_ADRR_BIT; break;
184 case NAND_CTL_CLRCLE: this->legacy.IO_ADDR_W &= ~CLE_ADRR_BIT; break;
185 case NAND_CTL_SETALE: this->legacy.IO_ADDR_W |= ALE_ADRR_BIT; break;
186 case NAND_CTL_CLRALE: this->legacy.IO_ADDR_W &= ~ALE_ADRR_BIT; break;
192 ---------------------
194 If the hardware interface has the ready busy pin of the NAND chip
196 to read back the state of the pin. The function has no arguments and
200 and the function pointer this->legacy.dev_ready is set to NULL.
203 -------------
207 is called. This function tries to detect and identify then chip. If a
208 chip is found all the internal data fields are initialized accordingly.
223 err = -ENOMEM;
232 printk("Ioremap to access NAND chip failed\n");
233 err = -EIO;
238 this->legacy.IO_ADDR_R = baseaddr;
239 this->legacy.IO_ADDR_W = baseaddr;
241 this->hwcontrol = board_hwcontrol;
243 this->legacy.chip_delay = CHIP_DEPENDEND_COMMAND_DELAY;
245 this->legacy.dev_ready = board_dev_ready;
246 this->eccmode = NAND_ECC_SOFT;
250 err = -ENXIO;
268 -------------
271 module. It releases all resources which are held by the chip driver and
301 Multiple chip control
302 ---------------------
304 The nand driver can control chip arrays. Therefore the board driver must
306 requested chip. The function pointer in the nand_chip structure must be
311 The nand driver concatenates the chips to one virtual chip and provides
312 this virtual chip to the MTD layer.
314 *Note: The driver can only handle linear chip arrays of equally sized
322 static void board_select_chip (struct mtd_info *mtd, int chip)
326 if (chip >= 0)
327 GPIO(BOARD_NAND_NCE) &= ~ (1 << chip);
336 static void board_select_chip (struct mtd_info *mtd, int chip)
341 this->legacy.IO_ADDR_R &= ~BOARD_NAND_ADDR_MASK;
342 this->legacy.IO_ADDR_W &= ~BOARD_NAND_ADDR_MASK;
343 switch (chip) {
345 this->legacy.IO_ADDR_R |= BOARD_NAND_ADDR_CHIP0;
346 this->legacy.IO_ADDR_W |= BOARD_NAND_ADDR_CHIP0;
350 this->legacy.IO_ADDR_R |= BOARD_NAND_ADDR_CHIPn;
351 this->legacy.IO_ADDR_W |= BOARD_NAND_ADDR_CHIPn;
358 --------------------
365 - NAND_ECC_HW3_256
369 - NAND_ECC_HW3_512
373 - NAND_ECC_HW6_512
377 - NAND_ECC_HW8_512
381 If your hardware generator has a different functionality add it at the
386 - enable_hwecc
388 This function is called before reading / writing to the chip. Reset
393 - calculate_ecc
395 This function is called after read / write from / to the chip.
400 - correct_data
404 corrected. If the error is not correctable return -1. If your
412 Many hardware ECC implementations provide Reed-Solomon codes and
414 standard Reed-Solomon syndrome before calling the error correction code
415 in the generic Reed-Solomon library.
422 code. Provide a matching oob-layout in this case. See rts_from4.c and
429 -----------------------
440 - Per device
445 - Per chip
447 A bad block table is used per chip and contains the bad block
448 information for this particular chip.
450 - Fixed offset
452 The bad block table is located at a fixed offset in the chip
455 - Automatic placed
458 the end or at the beginning of a chip (device)
460 - Mirrored tables
462 The bad block table is mirrored on the chip (device) to allow updates
467 descriptors depending on the chip information which was retrieved by
472 checking the bad block information on the flash chip itself.
478 AG-AND chips this is mandatory, as they have no factory marked bad
481 before writing the pattern back to the chip this block would be lost and
482 added to the bad blocks. Therefore we scan the chip(s) when we detect
493 nand chip structure before calling nand_scan(). For AG-AND chips is
498 - Store bad block table per chip
500 - Use 2 bits per block
502 - Automatic placement at the end of the chip
504 - Use mirrored tables with version numbers
506 - Reserve 4 blocks at the end of the chip
523 - Number of bits per block
527 - Table per chip
530 table is managed for each chip in a chip array. If this option is not
533 - Table location is absolute
537 you have selected bad block tables per chip and you have a multi chip
538 array then the start page must be given for each chip in the chip
542 - Table location is automatically detected
545 of the chip (device). Set NAND_BBT_LASTBLOCK to place the bad block
546 table at the end of the chip (device). The bad block tables are
550 the pattern has to be stored in len and the offset in the spare area
554 - Table creation
558 a new chip is found.
560 - Table write support
563 This allows the update of the bad block table(s) in case a block has
571 - Table version control
582 - Save block contents on write
591 - Number of reserved blocks
601 --------------------------
606 - Placement defined by fs driver
608 - Automatic placement
611 has built in default placement schemes for the various chiptypes. If due
630 - useecc
633 file include/mtd/mtd-abi.h contains constants to select ecc and
639 - eccbytes
643 - eccpos
648 - oobfree
691 ----------------------------------------
736 0x08 - 0x0F Autoplace 0 - 7
750 0x02-0x27 Autoplace 0 - 37
810 it again, are restricted to 1-3 writes, depending on the manufacturers
826 - flasherase, flasheraseall: Erase and format FLASH partitions
828 - nandwrite: write filesystem images to NAND FLASH
830 - nanddump: dump the contents of a NAND FLASH partitions
842 Chip option constants
843 ---------------------
845 Constants for chip id table
848 These constants are defined in rawnand.h. They are OR-ed together to
849 describe the chip functionality::
855 /* Chip has cache program function */
857 /* Chip has copy back function */
859 /* AND Chip which has 4 banks and a confusing page / block
862 /* Chip has a array of 4 pages which can be read without
870 These constants are defined in rawnand.h. They are OR-ed together to
875 * data bytes. Applies for DOC and AG-AND Renesas HW Reed Solomon generators */
880 -----------------------
899 ----------------------------------
904 /* Select the chip by setting nCE to low */
906 /* Deselect the chip by setting nCE to high */
923 ---------------------------------
940 /* bbt is stored per chip on multichip devices */
942 /* bbt has a version counter at offset veroffs */
957 developer. Each struct member has a short description which is marked
961 .. kernel-doc:: include/linux/mtd/rawnand.h
968 API functions which are exported. Each function has a short description
972 .. kernel-doc:: drivers/mtd/nand/raw/nand_base.c
979 internal functions. Each function has a short description which is
984 .. kernel-doc:: drivers/mtd/nand/raw/nand_base.c
987 .. kernel-doc:: drivers/mtd/nand/raw/nand_bbt.c