diff options
author | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-23 05:38:59 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-23 05:38:59 -0400 |
commit | 41796c2ea9b74cdf3bc2c368193d15b8ae8950ca (patch) | |
tree | d7a21961f93103536656b255f717d54989f9b144 /include/linux/mtd | |
parent | a36ed2995c56d4f858ecb524a78837473e7115ae (diff) |
[MTD] Add platform support for NAND
Add the data structures necessary to provide platform device support
for NAND
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/mtd')
-rw-r--r-- | include/linux/mtd/nand.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index b8792be3c4e0..05c6ecc07036 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
@@ -510,4 +510,51 @@ extern int nand_do_read_ecc (struct mtd_info *mtd, loff_t from, size_t len, | |||
510 | #define NAND_SMALL_BADBLOCK_POS 5 | 510 | #define NAND_SMALL_BADBLOCK_POS 5 |
511 | #define NAND_LARGE_BADBLOCK_POS 0 | 511 | #define NAND_LARGE_BADBLOCK_POS 0 |
512 | 512 | ||
513 | /** | ||
514 | * struct platform_nand_chip - chip level device structure | ||
515 | * | ||
516 | * @nr_chips: max. number of chips to scan for | ||
517 | * @chip_offs: chip number offset | ||
518 | * @nr_partitions: number of partitions pointed to be partitoons (or zero) | ||
519 | * @partitions: mtd partition list | ||
520 | * @chip_delay: R/B delay value in us | ||
521 | * @options: Option flags, e.g. 16bit buswidth | ||
522 | * @priv: hardware controller specific settings | ||
523 | */ | ||
524 | struct platform_nand_chip { | ||
525 | int nr_chips; | ||
526 | int chip_offset; | ||
527 | int nr_partitions; | ||
528 | struct mtd_partition *partitions; | ||
529 | int chip_delay; | ||
530 | unsigned int options; | ||
531 | void *priv; | ||
532 | }; | ||
533 | |||
534 | /** | ||
535 | * struct platform_nand_ctrl - controller level device structure | ||
536 | * | ||
537 | * @hwcontrol: platform specific hardware control structure | ||
538 | * @dev_ready: platform specific function to read ready/busy pin | ||
539 | * @select_chip: platform specific chip select function | ||
540 | * @priv_data: private data to transport driver specific settings | ||
541 | * | ||
542 | * All fields are optional and depend on the hardware driver requirements | ||
543 | */ | ||
544 | struct platform_nand_ctrl { | ||
545 | void (*hwcontrol)(struct mtd_info *mtd, int cmd); | ||
546 | int (*dev_ready)(struct mtd_info *mtd); | ||
547 | void (*select_chip)(struct mtd_info *mtd, int chip); | ||
548 | void *priv; | ||
549 | }; | ||
550 | |||
551 | /* Some helpers to access the data structures */ | ||
552 | static inline | ||
553 | struct platform_nand_chip *get_platform_nandchip(struct mtd_info *mtd) | ||
554 | { | ||
555 | struct nand_chip *chip = mtd->priv; | ||
556 | |||
557 | return chip->priv; | ||
558 | } | ||
559 | |||
513 | #endif /* __LINUX_MTD_NAND_H */ | 560 | #endif /* __LINUX_MTD_NAND_H */ |