aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mtd/nand.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mtd/nand.h')
-rw-r--r--include/linux/mtd/nand.h21
1 files changed, 10 insertions, 11 deletions
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 272f42952f34..5a9d1d4c2487 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -504,16 +504,16 @@ struct nand_ecc_ctrl {
504 int (*read_page_raw)(struct mtd_info *mtd, struct nand_chip *chip, 504 int (*read_page_raw)(struct mtd_info *mtd, struct nand_chip *chip,
505 uint8_t *buf, int oob_required, int page); 505 uint8_t *buf, int oob_required, int page);
506 int (*write_page_raw)(struct mtd_info *mtd, struct nand_chip *chip, 506 int (*write_page_raw)(struct mtd_info *mtd, struct nand_chip *chip,
507 const uint8_t *buf, int oob_required); 507 const uint8_t *buf, int oob_required, int page);
508 int (*read_page)(struct mtd_info *mtd, struct nand_chip *chip, 508 int (*read_page)(struct mtd_info *mtd, struct nand_chip *chip,
509 uint8_t *buf, int oob_required, int page); 509 uint8_t *buf, int oob_required, int page);
510 int (*read_subpage)(struct mtd_info *mtd, struct nand_chip *chip, 510 int (*read_subpage)(struct mtd_info *mtd, struct nand_chip *chip,
511 uint32_t offs, uint32_t len, uint8_t *buf, int page); 511 uint32_t offs, uint32_t len, uint8_t *buf, int page);
512 int (*write_subpage)(struct mtd_info *mtd, struct nand_chip *chip, 512 int (*write_subpage)(struct mtd_info *mtd, struct nand_chip *chip,
513 uint32_t offset, uint32_t data_len, 513 uint32_t offset, uint32_t data_len,
514 const uint8_t *data_buf, int oob_required); 514 const uint8_t *data_buf, int oob_required, int page);
515 int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, 515 int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip,
516 const uint8_t *buf, int oob_required); 516 const uint8_t *buf, int oob_required, int page);
517 int (*write_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip, 517 int (*write_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip,
518 int page); 518 int page);
519 int (*read_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip, 519 int (*read_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip,
@@ -544,7 +544,7 @@ struct nand_buffers {
544 * flash device 544 * flash device
545 * @IO_ADDR_W: [BOARDSPECIFIC] address to write the 8 I/O lines of the 545 * @IO_ADDR_W: [BOARDSPECIFIC] address to write the 8 I/O lines of the
546 * flash device. 546 * flash device.
547 * @dn: [BOARDSPECIFIC] device node describing this instance 547 * @flash_node: [BOARDSPECIFIC] device node describing this instance
548 * @read_byte: [REPLACEABLE] read one byte from the chip 548 * @read_byte: [REPLACEABLE] read one byte from the chip
549 * @read_word: [REPLACEABLE] read one word from the chip 549 * @read_word: [REPLACEABLE] read one word from the chip
550 * @write_byte: [REPLACEABLE] write a single byte to the chip on the 550 * @write_byte: [REPLACEABLE] write a single byte to the chip on the
@@ -556,10 +556,6 @@ struct nand_buffers {
556 * @block_markbad: [REPLACEABLE] mark a block bad 556 * @block_markbad: [REPLACEABLE] mark a block bad
557 * @cmd_ctrl: [BOARDSPECIFIC] hardwarespecific function for controlling 557 * @cmd_ctrl: [BOARDSPECIFIC] hardwarespecific function for controlling
558 * ALE/CLE/nCE. Also used to write command and address 558 * ALE/CLE/nCE. Also used to write command and address
559 * @init_size: [BOARDSPECIFIC] hardwarespecific function for setting
560 * mtd->oobsize, mtd->writesize and so on.
561 * @id_data contains the 8 bytes values of NAND_CMD_READID.
562 * Return with the bus width.
563 * @dev_ready: [BOARDSPECIFIC] hardwarespecific function for accessing 559 * @dev_ready: [BOARDSPECIFIC] hardwarespecific function for accessing
564 * device ready/busy line. If set to NULL no access to 560 * device ready/busy line. If set to NULL no access to
565 * ready/busy is available and the ready/busy information 561 * ready/busy is available and the ready/busy information
@@ -647,7 +643,7 @@ struct nand_chip {
647 void __iomem *IO_ADDR_R; 643 void __iomem *IO_ADDR_R;
648 void __iomem *IO_ADDR_W; 644 void __iomem *IO_ADDR_W;
649 645
650 struct device_node *dn; 646 struct device_node *flash_node;
651 647
652 uint8_t (*read_byte)(struct mtd_info *mtd); 648 uint8_t (*read_byte)(struct mtd_info *mtd);
653 u16 (*read_word)(struct mtd_info *mtd); 649 u16 (*read_word)(struct mtd_info *mtd);
@@ -658,8 +654,6 @@ struct nand_chip {
658 int (*block_bad)(struct mtd_info *mtd, loff_t ofs, int getchip); 654 int (*block_bad)(struct mtd_info *mtd, loff_t ofs, int getchip);
659 int (*block_markbad)(struct mtd_info *mtd, loff_t ofs); 655 int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
660 void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl); 656 void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl);
661 int (*init_size)(struct mtd_info *mtd, struct nand_chip *this,
662 u8 *id_data);
663 int (*dev_ready)(struct mtd_info *mtd); 657 int (*dev_ready)(struct mtd_info *mtd);
664 void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column, 658 void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column,
665 int page_addr); 659 int page_addr);
@@ -1030,4 +1024,9 @@ struct nand_sdr_timings {
1030 1024
1031/* get timing characteristics from ONFI timing mode. */ 1025/* get timing characteristics from ONFI timing mode. */
1032const struct nand_sdr_timings *onfi_async_timing_mode_to_sdr_timings(int mode); 1026const struct nand_sdr_timings *onfi_async_timing_mode_to_sdr_timings(int mode);
1027
1028int nand_check_erased_ecc_chunk(void *data, int datalen,
1029 void *ecc, int ecclen,
1030 void *extraoob, int extraooblen,
1031 int threshold);
1033#endif /* __LINUX_MTD_NAND_H */ 1032#endif /* __LINUX_MTD_NAND_H */