海思驱动开发:海思平台IO驱动移植

        海思采用设备树描述初始化驱动,本文编写基于IO应用的led驱动移植海思平台所做改动,作为后续移植参考。

一、基于IO应用的led驱动编译

        直接编译linux内核旧版本的基于IO引用的led驱动源文件发现编译不过,这是因为海思编译器检测到函数指针与指向函数不匹配造成的,修改相应函数的参数以及返回值后编译就可以通过。

        编译通过后运行发现probe没有调用,定位到驱动源码probe的过程,发现在调用硬件bus上的match表时失败,所以这里有两个方案一个是采用硬编码的方式注册硬件设备信息,另一个是配置相应设备树。

二、设备树配置

在Hi3519av100.dtsi中amba下添加如下节点:

在相应的产品型号dts中添加节点需要制定的IO号配置。

驱动源码中需要稍微修改一下注册部分内容,具体如下:

修改后就能成功启动probe。

三、调试

        运行应用程序调用驱动,能够成功点亮led灯。

发布了36 篇原创文章 · 获赞 4 · 访问量 2801

猜你喜欢

转载自blog.csdn.net/qq845699/article/details/104152184