设备树 驱动通过of_device_id匹配成功后 是如何调用probe函数的?以及操作的是哪个_driver结构体?

迷茫的蜉蝣 2018-08-09 02:08:56
刚看了nandflash驱动,发现里面有两个platform_driver结构体的初始化,当然也有两个of_device_id匹配,和两个probe函数,如下:
***********
static struct platform_driver atmel_nand_nfc_driver = {
.driver = {
.name = "atmel_nand_nfc",
.of_match_table = of_match_ptr(atmel_nand_nfc_match),
.pm = &atmel_nand_nfc_pm_ops,
},
.probe = atmel_nand_nfc_probe,
.remove = atmel_nand_nfc_remove,
};
******************

static struct platform_driver atmel_nand_driver = {
.probe = atmel_nand_probe,
.remove = atmel_nand_remove,
.driver = {
.name = "atmel_nand",
.of_match_table = of_match_ptr(atmel_nand_dt_ids),
.pm = &atmel_nand_pm_ops,
},
};
---------------------------
static const struct of_device_id atmel_nand_nfc_match[] = {
{ .compatible = "atmel,sama5d3-nfc" },
{ /* sentinel */ }
};
---------------------------
static const struct of_device_id atmel_nand_dt_ids[] = {
{ .compatible = "atmel,at91rm9200-nand", .data = &at91rm9200_caps},
};
那么问题也来了,都知道匹配成功后调用probe函数,可是当两个of_device_id匹配成功后,他们都分别改调用哪个probe函数呢?以及用哪个platform_driver初始化的结构体呢?
...全文
4498 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
JT同学 2019-03-21
  • 打赏
  • 举报
回复
https://blog.csdn.net/weixin_42462202/article/details/86505992
tonyen 2018-09-18
  • 打赏
  • 举报
回复
这个要看dtsi文件里,引入了哪个of_device_id, 两个of_device_id名字是不一样的,你可以在dtsi里面grep下atmel,sama5d3-nfc和atmel,at91rm9200-nand

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧