配置 spinand_manufacturer
spinand_manufacturer
数据结构为第一级索引,用来描述厂商的系列器件信息。SPI NAND
的接口和操作命令基本统一,一般无需特殊处理。驱动上为了更好的兼容性,预留了部分接口方便配置使用。参数名称 | 描述 |
---|---|
id | 厂家的ID,即 MID 例如:
|
name | 厂家名字标识,例如 Winbond 或 GigaDevice。 |
chips | 驱动支持的器件,例如 winbond_spinand_table 或 gigadevice_spinand_table。 |
nchips | 支持的器件个数,例如 ARRAY_SIZE(winbond_spinand_table) 或 ARRAY_SIZE(gigadevice_spinand_table) |
ops | 本公司的器件私有操作接口,例如 &winbond_spinand_manuf_ops 或 &gigadevice_spinand_manuf_ops。 |
winbond_spinand_manufacturer
的配置示例如下:
const struct spinand_manufacturer winbond_spinand_manufacturer = {
.id = SPINAND_MFR_WINBOND, //厂家的ID,即 MID
.name = "Winbond", //厂家名字标识
.chips = winbond_spinand_table, //本驱动支持的器件
.nchips = ARRAY_SIZE(winbond_spinand_table), // 支持的器件的个数
.ops = &winbond_spinand_manuf_ops, // 本公司的器件 私有操作接口
};
struct spinand_manufacturer_ops {
int (*init)(struct spinand_device *spinand); //初始化接口,如果没有特殊操作,可以为空
void (*cleanup)(struct spinand_device *spinand); //清理接口,如果没有特殊操作,可以为空
};
gigadevice_spinand_manufacturer
配置示例如下:
const struct spinand_manufacturer gigadevice_spinand_manufacturer = {
.id = SPINAND_MFR_GIGADEVICE, //厂家的ID,即 MID
.name = "GigaDevice", //厂家名字标识
.chips = gigadevice_spinand_table, //本驱动支持的器件
.nchips = ARRAY_SIZE(gigadevice_spinand_table), // 支持的器件的个数
.ops = &gigadevice_spinand_manuf_ops, // 本公司的器件 私有操作接口
};
struct spinand_manufacturer_ops gigadevice_spinand_manufacturer {
//没有特殊操作,为空
};