diff options
| author | Huang Shijie <b32955@freescale.com> | 2012-09-13 02:57:52 -0400 |
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-09-29 10:54:19 -0400 |
| commit | 7db03eccfc23783a95dd78383b3fad55224aaa7b (patch) | |
| tree | 5d9c827c7e61ad862c270ced408f0c3b2529bc27 /include | |
| parent | 2caf87a49eb53fac266b1271ebd6c1d1daa0d0d0 (diff) | |
mtd: add helpers to set/get features for ONFI nand
Add the set-features(0xef)/get-features(0xee) helpers for ONFI nand.
Also add the necessary macros.
Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/mtd/nand.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index d245199ccaf3..922f313970d4 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
| @@ -92,6 +92,8 @@ extern int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len); | |||
| 92 | #define NAND_CMD_READID 0x90 | 92 | #define NAND_CMD_READID 0x90 |
| 93 | #define NAND_CMD_ERASE2 0xd0 | 93 | #define NAND_CMD_ERASE2 0xd0 |
| 94 | #define NAND_CMD_PARAM 0xec | 94 | #define NAND_CMD_PARAM 0xec |
| 95 | #define NAND_CMD_GET_FEATURES 0xee | ||
| 96 | #define NAND_CMD_SET_FEATURES 0xef | ||
| 95 | #define NAND_CMD_RESET 0xff | 97 | #define NAND_CMD_RESET 0xff |
| 96 | 98 | ||
| 97 | #define NAND_CMD_LOCK 0x2a | 99 | #define NAND_CMD_LOCK 0x2a |
| @@ -229,6 +231,12 @@ typedef enum { | |||
| 229 | /* Keep gcc happy */ | 231 | /* Keep gcc happy */ |
| 230 | struct nand_chip; | 232 | struct nand_chip; |
| 231 | 233 | ||
| 234 | /* ONFI feature address */ | ||
| 235 | #define ONFI_FEATURE_ADDR_TIMING_MODE 0x1 | ||
| 236 | |||
| 237 | /* ONFI subfeature parameters length */ | ||
| 238 | #define ONFI_SUBFEATURE_PARAM_LEN 4 | ||
| 239 | |||
| 232 | struct nand_onfi_params { | 240 | struct nand_onfi_params { |
| 233 | /* rev info and features block */ | 241 | /* rev info and features block */ |
| 234 | /* 'O' 'N' 'F' 'I' */ | 242 | /* 'O' 'N' 'F' 'I' */ |
| @@ -454,6 +462,8 @@ struct nand_buffers { | |||
| 454 | * non 0 if ONFI supported. | 462 | * non 0 if ONFI supported. |
| 455 | * @onfi_params: [INTERN] holds the ONFI page parameter when ONFI is | 463 | * @onfi_params: [INTERN] holds the ONFI page parameter when ONFI is |
| 456 | * supported, 0 otherwise. | 464 | * supported, 0 otherwise. |
| 465 | * @onfi_set_features [REPLACEABLE] set the features for ONFI nand | ||
| 466 | * @onfi_get_features [REPLACEABLE] get the features for ONFI nand | ||
| 457 | * @ecclayout: [REPLACEABLE] the default ECC placement scheme | 467 | * @ecclayout: [REPLACEABLE] the default ECC placement scheme |
| 458 | * @bbt: [INTERN] bad block table pointer | 468 | * @bbt: [INTERN] bad block table pointer |
| 459 | * @bbt_td: [REPLACEABLE] bad block table descriptor for flash | 469 | * @bbt_td: [REPLACEABLE] bad block table descriptor for flash |
| @@ -496,6 +506,10 @@ struct nand_chip { | |||
| 496 | int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, | 506 | int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, |
| 497 | const uint8_t *buf, int oob_required, int page, | 507 | const uint8_t *buf, int oob_required, int page, |
| 498 | int cached, int raw); | 508 | int cached, int raw); |
| 509 | int (*onfi_set_features)(struct mtd_info *mtd, struct nand_chip *chip, | ||
| 510 | int feature_addr, uint8_t *subfeature_para); | ||
| 511 | int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip, | ||
| 512 | int feature_addr, uint8_t *subfeature_para); | ||
| 499 | 513 | ||
| 500 | int chip_delay; | 514 | int chip_delay; |
| 501 | unsigned int options; | 515 | unsigned int options; |
