1、dts 被转换为 dtb
2、dtb被传递个内核,被内核解析得到device_node(每一个节点对应一个)
3、device_node解决被转换为platform_device结构体(资源)
设备树使用方式,调用总线的match函数来匹配,driver中不仅有name,还有一个of_match_table指针
指向的结构体有成员compatible,与从dts中得到的platform_device里面的compatible属性比较,一样的话就匹配成功,调用driver的probe函数
如果platform_device结构体来自于设备树,该结构体里面的device结构体含有of_node,其含有一些属性,比如compatible、regs、pin等,
一个写得好的驱动程序, 它会尽量确定所用资源,
只把不能确定的资源留给设备树, 让设备树来指定。
根据原理图确定"驱动程序无法确定的硬件资源", 再在设备树文件中填写对应内容
那么, 所填写内容的格式是什么?
a. 看文档: 内核 Documentation/devicetree/bindings/
b. 参考同类型单板的设备树文件
c. 网上搜索
d. 实在没办法时, 只能去研究驱动源码