Edit online

SPI NAND 库相关接口介绍

Read time: 5 minute(s)
1. spinand_flash_init

函数原型

int spinand_flash_init(struct aic_spinand *flash);

功能说明

初始化 spinand 芯片

参数定义

struct aic_spinand *flash
spinand 设备对象

返回值

0: 成功
其它: 失败

注意事项

-

2. spinand_read_id_op

函数原型

int spinand_read_id_op(struct aic_spinand *flash, u8 *id);

功能说明

读取 spinand 芯片的 id

参数定义

struct aic_spinand *flash
spinand 设备对象
u8 *id
读取 spinand id 缓存地址

返回值

0: 成功
其它: 失败

注意事项

-

3. spinand_read

函数原型

int spinand_read(struct aic_spinand *flash, u8 *addr, u32 offset, u32 size);

功能说明

从 spinand 读取数据

参数定义

struct aic_spinand *flash
spinand 设备对象
u8 *addr
读取 spinand 数据缓存地址
u32 offset
从 spinand 读取数据的偏移地址
u32 size
从 spinand 读取数据的长度

返回值

0: 成功
其它: 失败

注意事项

offset 需要与 page 大小对齐

4. spinand_write

函数原型

int spinand_write(struct aic_spinand *flash, u8 *addr, u32 offset, u32 size);

功能说明

写入数据到 spinand

参数定义

struct aic_spinand *flash
spinand 设备对象
u8 *addr
写入 spinand 数据缓存地址
u32 offset
写入 spinand 数据的偏移地址
u32 size
写入 spinand 数据的长度

返回值

0: 成功
其它: 失败

注意事项

offset 需要与 page 大小对齐

5. spinand_erase

函数原型

int spinand_erase(struct aic_spinand *flash, u32 offset, u32 size);

功能说明

擦除 spinand 数据

参数定义

struct aic_spinand *flash
spinand 设备对象
u32 offset
擦除 spinand 数据的偏移地址
u32 size
擦除 spinand 数据的长度

返回值

0: 成功
其它: 失败

注意事项

offset 和 size 需要与 block 大小对齐

6. spinand_block_erase

函数原型

int spinand_block_erase(struct aic_spinand *flash, u16 blk);

功能说明

擦除 spinand 指定块地址的块数据

参数定义

struct aic_spinand *flash
spinand 设备对象
u16 blk
spinand 块地址

返回值

0: 成功
其它: 失败

注意事项

-

7. spinand_block_isbad

函数原型

int spinand_block_isbad(struct aic_spinand *flash, u16 blk);

功能说明

判断 spinand 指定块地址的块是否是坏块

参数定义

struct aic_spinand *flash
spinand 设备对象
u16 blk
spinand 块地址

返回值

0: 成功
其它: 失败

注意事项

-

8. spinand_block_markbad

函数原型

int spinand_block_markbad(struct aic_spinand *flash, u16 blk);

功能说明

标记 spinand 指定块地址的块为坏块

参数定义

struct aic_spinand *flash
spinand 设备对象
u16 blk
spinand 块地址

返回值

0: 成功
其它: 失败

注意事项

-

9. spinand_read_page

函数原型

int spinand_read_page(struct aic_spinand *flash, u32 page, u8 *data,
u32 data_len, u8 *spare, u32 spare_len);

功能说明

读取 spinand 指定 page 上的数据

参数定义

struct aic_spinand *flash
spinand 设备对象
u32 page
spinand 页地址
u8 *data
读 page 主区域数据的缓存地址
u32 data_len
读 page 主区域数据的长度
u8 *spare
读 page spare 区域数据的缓存地址
u32 spare_len
读 page spare 区域数据的长度

返回值

0: 成功
其它: 失败

注意事项

-

10. spinand_write_page

函数原型

int spinand_write_page(struct aic_spinand *flash, u32 page, const u8 *data,
u32 data_len, const u8 *spare, u32 spare_len);

功能说明

写入数据到 spinand 指定 page 上

参数定义

struct aic_spinand *flash
spinand 设备对象
u32 page
spinand 页地址
u8 *data
写 page 主区域数据的缓存地址
u32 data_len
写 page 主区域数据的长度
u8 *spare
写 page spare 区域数据的缓存地址
u32 spare_len
写 page spare 区域数据的长度

返回值

0: 成功
其它: 失败

注意事项

-

11. spinand_continuous_read

函数原型

int spinand_continuous_read(struct aic_spinand *flash, u32 page, u8 *data, u32 size);

功能说明

使用连续读取模式读取 spinand 上指定长度的数据

参数定义

struct aic_spinand *flash
spinand 设备对象
u32 page
spinand 页地址
u8 *data
读 spinand 数据的缓存地址
u32 size
读 spinand 数据的长度

返回值

0: 成功
其它: 失败

注意事项

size 需要大于等于 2 个 page 大小

12. spinand_config_set

函数原型

int spinand_config_set(struct aic_spinand *flash, u8 mask, u8 val);

功能说明

设置 spinand 配置寄存器的值

参数定义

struct aic_spinand *flash
spinand 设备对象
u8 mask
配置寄存器的掩码
u8 val
配置寄存器的值

返回值

0: 成功
其它: 失败

注意事项

-