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的主要内容,如果未能解决你的问题,请参考以下文章

linux之磁盘管理,查看识别设备,磁盘的挂载卸载分区配额管理,文件系统

Linux命令之磁盘管理

linux驱动之USB驱动程序

IoTNFC 之 RC522 PICC 识别过程

linux学习日记之磁盘的管理

Linux驱动之PCI