diff options
| author | Kyungmin Park <kyungmin.park@samsung.com> | 2006-11-15 21:23:48 -0500 |
|---|---|---|
| committer | Kyungmin Park <kyungmin.park@samsung.com> | 2006-11-15 21:23:48 -0500 |
| commit | 2c22120fbd017d78ad2b6825ba573db3ef539bca (patch) | |
| tree | 017c70446ff2a985e138a1352f0bad34f503bddd /include/linux/mtd | |
| parent | ff0dab64b4e9ce3a073365342297e76ddaae9697 (diff) | |
MTD: OneNAND: interrupt based wait support
We can use the two methods to wait.
1. polling: read interrupt status register
2. interrupt: use kernel ineterrupt mechanism
To use interrupt method, you first connect onenand interrupt pin to your
platform and configure interrupt properly
Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
Diffstat (limited to 'include/linux/mtd')
| -rw-r--r-- | include/linux/mtd/onenand.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index 6f045b586e76..df963f1f6f87 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #define __LINUX_MTD_ONENAND_H | 13 | #define __LINUX_MTD_ONENAND_H |
| 14 | 14 | ||
| 15 | #include <linux/spinlock.h> | 15 | #include <linux/spinlock.h> |
| 16 | #include <linux/completion.h> | ||
| 16 | #include <linux/mtd/onenand_regs.h> | 17 | #include <linux/mtd/onenand_regs.h> |
| 17 | #include <linux/mtd/bbm.h> | 18 | #include <linux/mtd/bbm.h> |
| 18 | 19 | ||
| @@ -120,6 +121,9 @@ struct onenand_chip { | |||
| 120 | int (*block_markbad)(struct mtd_info *mtd, loff_t ofs); | 121 | int (*block_markbad)(struct mtd_info *mtd, loff_t ofs); |
| 121 | int (*scan_bbt)(struct mtd_info *mtd); | 122 | int (*scan_bbt)(struct mtd_info *mtd); |
| 122 | 123 | ||
| 124 | struct completion complete; | ||
| 125 | int irq; | ||
| 126 | |||
| 123 | spinlock_t chip_lock; | 127 | spinlock_t chip_lock; |
| 124 | wait_queue_head_t wq; | 128 | wait_queue_head_t wq; |
| 125 | onenand_state_t state; | 129 | onenand_state_t state; |
