Advertisement

(三)从解析DTS到创建设备节点,并入设备驱动模型(结合源码)

阅读量:

从device_node到并入设备驱动模型

这篇博客对其他文章进行了较多的引用

复制代码
    深入,并且广泛
    					 -沉默犀牛

上一篇文章系统地阐述了两大核心议题:其一是为了找到最佳匹配描述(machine_desc),其二是构建一个以node形式组织起来的DTB架构

那么为什么要做这两件事情呢?

我们当前的主要任务是将DTS中描述的所有status = okay的节点注册到内核中。由于我们的内核无法直接识别DTS的信息,
因此必须按照以下步骤操作:首先将DTS中的每一个节点转换为device_node结构体,
这样我们可以认为每个原本由DTS描述的内容都被成功解析成了一个device_node(该结构体包含parent、child、sibling等成员,
通过这些成员将所有的device_node连接成树状结构)。接下来我们有了能够被内核识别并使用的完整的device_node集合。
现在就要开始逐个创建这些device_node实例(具体来说是在不同的场景下分别注册到平台总线或I2C总线上),而创建这些实例的过程将依赖于我们在上述步骤1中定义好的machine_desc回调函数。
在定义machine_desc结构体时,
我们会特别关注并实现xxxx_init函数(大部分情况下)负责完成对所有 device_node 的注册工作。

全部评论 (0)

还没有任何评论哟~