海思驱动开发:海思平台IO驱动移植
海思采用设备树描述初始化驱动,本文编写基于IO应用的led驱动移植海思平台所做改动,作为后续移植参考。
一、基于IO应用的led驱动编译
直接编译linux内核旧版本的基于IO引用的led驱动源文件发现编译不过,这是因为海思编译器检测到函数指针与指向函数不匹配造成的,修改相应函数的参数以及返回值后编译就可以通过。
编译通过后运行发现probe没有调用,定位到驱动源码probe的过程,发现在调用硬件bus上的match表时失败,所以这里有两个方案一个是采用硬编码的方式注册硬件设备信息,另一个是配置相应设备树。
二、设备树配置
在Hi3519av100.dtsi中amba下添加如下节点:
在相应的产品型号dts中添加节点需要制定的IO号配置。
驱动源码中需要稍微修改一**册部分内容,具体如下:
修改后就能成功启动probe。
三、调试
运行应用程序调用驱动,能够成功点亮led灯。