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
匹配后动作
创建设备节点