在内核源码中搜索 platform_device_register 可以得到很多驱动,选择
一个作为例子:
① 确定它的名字
② 根据它的名字找到对应的 platform_driver
③ 进入 platform_device_register/platform_driver_register 内部,分析 dev 和 drv 的匹配过程
(1)搜索 platform_device_register,随便找一个文件,找有全局变量的
(2)点进去,在这个文件中可以看到注册
(3)再在这个文件中找platform device
有一个platform device,里面有resource,resource指向一个数组,里面定义了设备的资源,平台设备指定资源。
(4)继续搜索它的platform_driver,按名称搜索(orion_nand)
平台platform driver有probe函数,;platform device和platform driver通过name建立联系。
这里的resource需要遵守一定的规则
(5)怎么匹配呢
从(2)开始看
platform_device_register(&db88f5281_boot_flash);
接下来就和 韦东山嵌入式linux系列-驱动进化之路:总线设备驱动模型-CSDN博客 后面的分析一样了。
(6)找到对应的platform_driver_register函数
半天没找到......