Linux驱动学习--platform总线

Linux驱动学习–platform总线

首先需要知道的是linux采用驱动的分离和分层思想,将所有的驱动分为总线,驱动和设备,驱动和设备通过总线进行匹配。因此platform也遵循这个规定,将驱动分为platform总线,platform驱动和platform设备。他们之间的关系如下所示。
20241204135742

当有新的驱动加入时,platform总线通过match方法匹配与之对应的设备,当然这个match方法platform总线已经实现了,驱动和设备匹配的方法有好几种。

  • 第一种通过比较驱动的of_match_table元素中的compatible属性和设备树节点中的compatible属性
  • 第二种通过比较ACPI,这种方法暂时不太了解
  • 第三种通过比较id_table,这种方法适合于没有采用设备树的设备
  • 最后一种直接比较驱动和设备的名称,也是最简单的一种

如果匹配成功则执行驱动的probe方法,来完成设备注册等工作。