3.X内核下设备树–platform设备驱动

 

1。历史的车轮总是向前,技术更替。在linus 同学发出那句 WFK 后内核进入了设备树时代(站在驱动工程师角度)。

前几天我已经被mach-imx 中的文件折磨的夜不能眠。我终于在一个清晨,喝完一杯咖啡后决定放弃蹩脚的传统device描述方式。

这里我先不讨论内核实现流程的源代码,简单描述下语法,和我的第一个test_platform_device

设备树文件 arch\arm\boot\dts  在修改dst文件后要make  dtbs,

http://www.xuebuyuan.com/2128963.html  这篇文章可以恶补下设备书的基础

如图是一个完整节点

 

 

Documentation\devicetree\bindings  文件夹中有很多的样例可以供开发人员参考

 

2。 我的测试

我在我的设备树中添加如下代码(这里我把一个ds18b20做成platform设备,仅仅为了练习)

我ds18b20使用的是GPIO2_3 管脚。

这里的gpios = <&gpio2 3 0>;  在 imx6qdl.dtsi 文件中定义

 

然后执行 # make dtbs

生成的dtbs文件在dts文件同一目录,烧写 内核 和 DTBS 文件

 

编写ds18b20的driver 端(为了使结构简单明了,我屏蔽了其他代码,留下了骨架)

 

编译,拷贝,加载模块

 

 

/**********************************以下为完全测试***********************************/

 

成功获取到温度,有个小bug就是第一获取时温度有问题

以下是完全代码

 

 

 

superyin