diff options
author | Huang Shijie <b32955@freescale.com> | 2012-09-13 02:57:53 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-09-29 10:54:36 -0400 |
commit | 3e70192c41ac607c63c31ea00be62dd9afb85575 (patch) | |
tree | ff2aa44bf95277598c1add5b0586ecc274ab8811 /include/linux/mtd | |
parent | 7db03eccfc23783a95dd78383b3fad55224aaa7b (diff) |
mtd: add helpers to get the supportted ONFI timing mode
add onfi_get_async_timing_mode() to get the supportted asynchronous
timing mode.
add onfi_get_sync_timing_mode() to get the supportted synchronous
timing mode.
Also add the neccessary macros : the timing modes.
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/linux/mtd')
-rw-r--r-- | include/linux/mtd/nand.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 922f313970d4..2beeb6e4e4e6 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
@@ -231,6 +231,15 @@ typedef enum { | |||
231 | /* Keep gcc happy */ | 231 | /* Keep gcc happy */ |
232 | struct nand_chip; | 232 | struct nand_chip; |
233 | 233 | ||
234 | /* ONFI timing mode, used in both asynchronous and synchronous mode */ | ||
235 | #define ONFI_TIMING_MODE_0 (1 << 0) | ||
236 | #define ONFI_TIMING_MODE_1 (1 << 1) | ||
237 | #define ONFI_TIMING_MODE_2 (1 << 2) | ||
238 | #define ONFI_TIMING_MODE_3 (1 << 3) | ||
239 | #define ONFI_TIMING_MODE_4 (1 << 4) | ||
240 | #define ONFI_TIMING_MODE_5 (1 << 5) | ||
241 | #define ONFI_TIMING_MODE_UNKNOWN (1 << 6) | ||
242 | |||
234 | /* ONFI feature address */ | 243 | /* ONFI feature address */ |
235 | #define ONFI_FEATURE_ADDR_TIMING_MODE 0x1 | 244 | #define ONFI_FEATURE_ADDR_TIMING_MODE 0x1 |
236 | 245 | ||
@@ -684,4 +693,20 @@ struct platform_nand_chip *get_platform_nandchip(struct mtd_info *mtd) | |||
684 | return chip->priv; | 693 | return chip->priv; |
685 | } | 694 | } |
686 | 695 | ||
696 | /* return the supported asynchronous timing mode. */ | ||
697 | static inline int onfi_get_async_timing_mode(struct nand_chip *chip) | ||
698 | { | ||
699 | if (!chip->onfi_version) | ||
700 | return ONFI_TIMING_MODE_UNKNOWN; | ||
701 | return le16_to_cpu(chip->onfi_params.async_timing_mode); | ||
702 | } | ||
703 | |||
704 | /* return the supported synchronous timing mode. */ | ||
705 | static inline int onfi_get_sync_timing_mode(struct nand_chip *chip) | ||
706 | { | ||
707 | if (!chip->onfi_version) | ||
708 | return ONFI_TIMING_MODE_UNKNOWN; | ||
709 | return le16_to_cpu(chip->onfi_params.src_sync_timing_mode); | ||
710 | } | ||
711 | |||
687 | #endif /* __LINUX_MTD_NAND_H */ | 712 | #endif /* __LINUX_MTD_NAND_H */ |