platform_device 和 platform_driver 的匹配

一个驱动可以支持多个设备;一个设备只能绑定一个驱动

 

platform总线上有设备链表和驱动链表,注册设备会遍历总线上的驱动链表找寻与之匹配的驱动,注册驱动会遍历总线上的设备链表找寻与之匹配的设备

 

匹配调用过程

注册设备:

device_add
...
bus_probe_device
device_initial_probe
   __device_attach
   bus_for_each_drv
    __device_attach_driver
     platform_match

注册驱动:

platform_driver_register
__platform_driver_register
driver_register
  bus_add_driver
   driver_attach
   bus_for_each_dev
    __driver_attach
     driver_match_device
     platform_match


匹配后动作

创建设备节点

 

posted @ 2023-03-11 23:31  流水灯  阅读(64)  评论(0编辑  收藏  举报