Linux设备识别过程之 device_register
Posted todo9351
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux设备识别过程之 device_register相关的知识,希望对你有一定的参考价值。
这把我们大致追踪一次设备识别的过程,设备识别后,最后会调用 device_register 来完成对应驱动查找识别。
过程有点像侦探办案呀。
整个过程中,关注点是设备如何找到对应的驱动,其余的细节,省略不介绍了。
内核版本为 4.4.19
代码位于 drivers/base/core.c
相关的调用过程
device_register
device_initialize
device_add
bus_probe_device(dev);
device_initial_probe(dev); 可能是这个,不太确定,看着像
__device_attach 遍历全部的bus上的驱动,匹配到就退出了
__device_attach_driver
driver_match_device 先匹配一下驱动
driver_probe_device 正式的进入硬件层面的探测阶段
really_probe
pinctrl_bind_pins 相关的引脚配置
dev->bus->probe(dev); 或者drv->probe(dev); 采用总线探测或具体驱动上的探测
整个的识别过程中,还在 sysfs下建立了相关的目录节点。
以上是关于Linux设备识别过程之 device_register的主要内容,如果未能解决你的问题,请参考以下文章