Edit online

配置 spinand_manufacturer

spinand_manufacturer 数据结构为第一级索引,用来描述厂商的系列器件信息。SPI NAND 的接口和操作命令基本统一,一般无需特殊处理。驱动上为了更好的兼容性,预留了部分接口方便配置使用。
1. spinand_manufacturer 配置描述
参数名称描述
id厂家的ID,即 MID
例如:
  • Winbond 设备 W25N02KV 的 ID 为 SPINAND_MFR_WINBOND
  • GigaDevice 设备 GD5F1GM7UE 的 ID 为 SPINAND_MFR_GIGADEVICE。
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 {
        //没有特殊操作,为空
};