SPI NAND 库相关接口介绍
函数原型 | int spinand_flash_init(struct aic_spinand *flash); |
---|---|
功能说明 | 初始化 spinand 芯片 |
参数定义 | struct aic_spinand *flashspinand 设备对象 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | int spinand_read_id_op(struct aic_spinand *flash, u8 *id); |
功能说明 | 读取 spinand 芯片的 id |
参数定义 | struct aic_spinand *flashspinand 设备对象 u8 *id 读取 spinand id 缓存地址 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | int spinand_read(struct aic_spinand *flash, u8 *addr, u32 offset, u32 size); |
功能说明 | 从 spinand 读取数据 |
参数定义 | struct aic_spinand *flashspinand 设备对象 u8 *addr 读取 spinand 数据缓存地址 offset 从 spinand 读取数据的偏移地址 size 从 spinand 读取数据的长度 |
返回值 | 0: 成功其他: 失败 |
注意事项 | offset 需要与 page 大小对齐 |
函数原型 | int spinand_write(struct aic_spinand *flash, u8 *addr, u32 offset, u32 size); |
功能说明 | 写入数据到 spinand |
参数定义 | struct aic_spinand *flashspinand 设备对象 u8 *addr 写入 spinand 数据缓存地址 offset 写入 spinand 数据的偏移地址 size 写入 spinand 数据的长度 |
返回值 | 0: 成功其他: 失败 |
注意事项 | offset 需要与 page 大小对齐 |
函数原型 | int spinand_erase(struct aic_spinand *flash, u32 offset, u32 size); |
功能说明 | 擦除 spinand 数据 |
参数定义 | struct aic_spinand *flashspinand 设备对象 offset 擦除 spinand 数据的偏移地址 size 擦除 spinand 数据的长度 |
返回值 | 0: 成功其他: 失败 |
注意事项 | offset 和 size 需要与 block 大小对齐 |
函数原型 | int spinand_block_erase(struct aic_spinand *flash, u16 blk); |
功能说明 | 擦除 spinand 指定块地址的块数据 |
参数定义 | struct aic_spinand *flashspinand 设备对象 blkspinand 块地址 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | int spinand_block_isbad(struct aic_spinand *flash, u16 blk); |
功能说明 | 判断 spinand 指定块地址的块是否是坏块 |
参数定义 | struct aic_spinand *flashspinand 设备对象 blkspinand 块地址 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | int spinand_block_markbad(struct aic_spinand *flash, u16 blk); |
功能说明 | 标记 spinand 指定块地址的块为坏块 |
参数定义 | struct aic_spinand *flashspinand 设备对象 blkspinand 块地址 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | 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 *flashspinand 设备对象 pagespinand 页地址 u8 *data 读 page 主区域数据的缓存地址 len 读 page 主区域数据的长度 u8 *spare 读 page spare 区域数据的缓存地址 len 读 page spare 区域数据的长度 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | 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 *flashspinand 设备对象 pagespinand 页地址 u8 *data 写 page 主区域数据的缓存地址 len 写 page 主区域数据的长度 u8 *spare 写 page spare 区域数据的缓存地址 len 写 page spare 区域数据的长度 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |
函数原型 | int spinand_continuous_read(struct aic_spinand *flash, u32 page, u8 *data, u32 size); |
功能说明 | 使用连续读取模式读取 spinand 上指定长度的数据 |
参数定义 | struct aic_spinand *flashspinand 设备对象 pagespinand 页地址 u8 *data 读 spinand 数据的缓存地址 size 读 spinand 数据的长度 |
返回值 | 0: 成功其他: 失败 |
注意事项 | size 需要大于等于 2 个 page 大小 |
函数原型 | int spinand_config_set(struct aic_spinand *flash, u8 mask, u8 val); |
---|---|
功能说明 | 设置 spinand 配置寄存器的值 |
参数定义 | struct aic_spinand *flashspinand 设备对象 mask 配置寄存器的掩码 u8 val 配置寄存器的值 |
返回值 | 0: 成功其他: 失败 |
注意事项 | - |