aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mtd
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2012-09-13 02:57:53 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-09-29 10:54:36 -0400
commit3e70192c41ac607c63c31ea00be62dd9afb85575 (patch)
treeff2aa44bf95277598c1add5b0586ecc274ab8811 /include/linux/mtd
parent7db03eccfc23783a95dd78383b3fad55224aaa7b (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.h25
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 */
232struct nand_chip; 232struct 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. */
697static 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. */
705static 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 */