X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=Documentation%2FDocBook%2Fmtdnand.tmpl;h=8e145857fc9dad52ff39f90dcac17015b4851fd0;hb=cac23d6505546f4cfa42d949ec46d431a44bd39c;hp=a8c8cce506332a2037833d8cc8f7dc54c0791748;hpb=c0bc8721b8d0380ec69fa97578c91201201b05a9;p=linux-2.6-omap-h63xx.git diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl index a8c8cce5063..8e145857fc9 100644 --- a/Documentation/DocBook/mtdnand.tmpl +++ b/Documentation/DocBook/mtdnand.tmpl @@ -80,7 +80,7 @@ struct member has a short description which is marked with an [XXX] identifier. The following chapters explain the meaning of those identifiers. - + Function identifiers [XXX] The functions are marked with [XXX] identifiers in the short @@ -115,7 +115,7 @@ - + Struct member identifiers [XXX] The struct members are marked with [XXX] identifiers in the @@ -159,7 +159,7 @@ basic functions and fill out some really board dependent members in the nand chip description structure. - + Basic defines At least you have to provide a mtd structure and @@ -185,7 +185,7 @@ static struct nand_chip board_chip; static unsigned long baseaddr; - + Partition defines If you want to divide your device into partitions, then @@ -204,7 +204,7 @@ static struct mtd_partition partition_info[] = { }; - + Hardware control function The hardware control function provides access to the @@ -246,7 +246,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd) } - + Device ready function If the hardware interface has the ready busy pin of the NAND chip connected to a @@ -257,7 +257,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd) the function must not be defined and the function pointer this->dev_ready is set to NULL. - + Init function The init function allocates memory and sets up all the board @@ -275,17 +275,14 @@ int __init board_init (void) int err = 0; /* Allocate memory for MTD device structure and private data */ - board_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip), GFP_KERNEL); + board_mtd = kzalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL); if (!board_mtd) { printk ("Unable to allocate NAND MTD device structure.\n"); err = -ENOMEM; goto out; } - /* Initialize structures */ - memset ((char *) board_mtd, 0, sizeof(struct mtd_info) + sizeof(struct nand_chip)); - - /* map physical adress */ + /* map physical address */ baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024); if(!baseaddr){ printk("Ioremap to access NAND chip failed\n"); @@ -309,7 +306,7 @@ int __init board_init (void) this->dev_ready = board_dev_ready; this->eccmode = NAND_ECC_SOFT; - /* Scan to find existance of the device */ + /* Scan to find existence of the device */ if (nand_scan (board_mtd, 1)) { err = -ENXIO; goto out_ior; @@ -328,7 +325,7 @@ out: module_init(board_init); - + Exit function The exit function is only neccecary if the driver is @@ -343,7 +340,7 @@ static void __exit board_cleanup (void) /* Release resources, unregister device */ nand_release (board_mtd); - /* unmap physical adress */ + /* unmap physical address */ iounmap((void *)baseaddr); /* Free the MTD device structure */ @@ -362,7 +359,7 @@ module_exit(board_cleanup); driver. For a list of functions which can be overridden by the board driver see the documentation of the nand_chip structure. - + Multiple chip control The nand driver can control chip arrays. Therefor the @@ -422,9 +419,9 @@ static void board_select_chip (struct mtd_info *mtd, int chip) } - + Hardware ECC support - + Functions and constants The nand driver supports three different types of @@ -478,7 +475,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip) - + Hardware ECC with syndrome calculation Many hardware ECC implementations provide Reed-Solomon @@ -503,7 +500,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip) - + Bad block table support Most NAND chips mark the bad blocks at a defined @@ -555,7 +552,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip) allows faster access than always checking the bad block information on the flash chip itself. - + Flash based tables It may be desired or neccecary to keep a bad block table in FLASH. @@ -590,7 +587,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip) - + User defined tables User defined tables are created by filling out a @@ -679,7 +676,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip) - + Spare area (auto)placement The nand driver implements different possibilities for @@ -733,7 +730,7 @@ struct nand_oobinfo { - + Placement defined by fs driver The calling function provides a pointer to a nand_oobinfo @@ -763,7 +760,7 @@ struct nand_oobinfo { done according to the given scheme in the nand_oobinfo structure. - + Automatic placement Automatic placement uses the built in defaults to place the @@ -777,7 +774,7 @@ struct nand_oobinfo { done according to the default builtin scheme. - + User space placement selection All non ecc functions like mtd->read and mtd->write use an internal @@ -792,9 +789,9 @@ struct nand_oobinfo { - + Spare area autoplacement default schemes - + 256 byte pagesize @@ -846,7 +843,7 @@ pages this byte is reserved - + 512 byte pagesize @@ -909,7 +906,7 @@ in this page - + 2048 byte pagesize @@ -1129,9 +1126,9 @@ in this page This chapter describes the constants which might be relevant for a driver developer. - + Chip option constants - + Constants for chip id table These constants are defined in nand.h. They are ored together to describe @@ -1156,7 +1153,7 @@ in this page - + Constants for runtime options These constants are defined in nand.h. They are ored together to describe @@ -1174,7 +1171,7 @@ in this page - + ECC selection constants Use these constants to select the ECC algorithm. @@ -1195,7 +1192,7 @@ in this page - + Hardware control related constants These constants describe the requested hardware access function when @@ -1221,7 +1218,7 @@ in this page - + Bad block table related constants These constants describe the options used for bad block