1、在OpenWrt系统上移植SPI驱动前,首先要确保SPI相关引脚未被复用为其他功能,比如GPIO;以下操作已假定该条件成立,否则请修改相关dts和c文件中复用配置;
2、打开dts配置文件进行修改,这里我是用的硬件为WRTNODE2R,所以文件路径为:/target/linux/ramips/dts/WRTNODE2R.dts。在SPI控制器节点下添加与我们要添加的SPI设备及驱动匹配的信息,如下所示:
要注意该段代码要添加到SPI控制器节点下,为防止添加错误后面会给出这部分整段的SPI配置。
Note1 配置中“reg”属性有2个CELL,第一个用于指定片选;
Note2 配置中“compatible”参数需要与SPI设备驱动中字段相匹配,如下为我使用的第三方SPI设备驱动中相关配置:
#define CH43X_NAME_SPI "ch43x_spi"
static const struct of_device_id __maybe_unused ch43x_dt_ids[] = {
{ .compatible = "wch,ch43x", .data = &ch43x_devtype, },
{},
};
MODULE_DEVICE_TABLE(of, ch43x_dt_id