添加接口move_page,添加mtd_nand成员oob_free,更改成员block_size为pages_per_block

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2288 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
sc943313837@gmail.com 2012-09-15 12:23:04 +00:00
parent 8d4d8a8338
commit a1519350a4
1 changed files with 18 additions and 4 deletions

View File

@ -25,15 +25,22 @@
struct rt_mtd_nand_driver_ops;
#define RT_MTD_NAND_DEVICE(device) ((struct rt_mtd_nand_device*)(device))
#define RT_MTD_EOK 0
#define RT_MTD_EECC 1
#define RT_MTD_EBUSY 2
#define RT_MTD_EIO 3
#define RT_MTD_ENOMEM 4
struct rt_mtd_nand_device
{
struct rt_device parent;
rt_uint32_t page_size; /* The Page size in the flash */
rt_uint32_t block_size; /* The Block size in the flash */
rt_uint16_t oob_size; /* Out of bank size */
rt_uint16_t reserve;
rt_uint16_t oob_free; /* the free area in oob that flash driver not use */
rt_uint32_t pages_per_block; /* The number of page a block */
rt_uint16_t block_total;
rt_uint32_t block_start; /* The start of available block*/
rt_uint32_t block_end; /* The end of available block */
@ -55,6 +62,7 @@ struct rt_mtd_nand_driver_ops
rt_off_t page,
const rt_uint8_t * data, rt_uint32_t data_len,
const rt_uint8_t * spare, rt_uint32_t spare_len);
rt_err_t (*move_page) (struct rt_mtd_nand_device *device, rt_off_t src_page, rt_off_t dst_page);
rt_err_t (*erase_block)(struct rt_mtd_nand_device* device, rt_uint32_t block);
rt_err_t (*check_block)(struct rt_mtd_nand_device* device, rt_uint32_t block);
@ -86,6 +94,12 @@ rt_inline rt_err_t rt_mtd_nand_write(
return device->ops->write_page(device, page, data, data_len, spare, spare_len);
}
rt_inline rt_err_t rt_mtd_nand_move_page(struct rt_mtd_nand_device* device,
rt_off_t src_page, rt_off_t dst_page)
{
return device->ops->move_page(device, src_page, dst_page);
}
rt_inline rt_err_t rt_mtd_nand_erase_block(struct rt_mtd_nand_device* device, rt_uint32_t block)
{
return device->ops->erase_block(device, block);