platform_device_register 和platform_driver_register;有些驱动里没有platform_device_register
platform_device_register和platform_driver_register是Linux内核中用于注册平台设备和平台驱动程序的函数。
为什么很多驱动里没有platform_device_register
在Linux内核中,不是所有的驱动程序都需要显式调用platform_device_register函数来注册平台设备。这是因为设备驱动程序可以通过其他方式来与平台设备进行匹配和加载,而无需显式地注册设备。
以下是一些常见的情况:
使用设备树自动匹配:在设备树中正确配置设备节点的compatible属性,内核会根据设备树信息自动匹配平台设备和平台驱动程序,并在适当的时候自动加载驱动程序。这种情况下,驱动程序不需要显式调用platform_device_register函数。
静态声明设备:有些平台驱动程序可以通过静态声明设备来与平台设备进行匹配。通过在代码中定义一个静态的platform_device结构体,并使用module_platform_driver宏将平台驱动程序与该设备绑定,内核会自动在驱动程序加载时匹配该设备并进行初始化。这种情况下,驱动程序也不需要显式调用platform_device_register函数。
其他匹配方式:有些驱动程序可能使用其他的匹配方式来与平台设备进行匹配,例如通过总线或其他系统提供的机制进行匹配。在这种情况下,驱动程序也不需要调用platform_device_register函数。
需要注意的是,以上只是一些常见的情况,并不是绝对的规则。根据具体的驱动程序和硬件平台,可能会有不同的加载和匹配机制。因此,在编写驱动程序时,需要仔细查阅相关文档和参考代码,了解驱动程序与设备的匹配和加载方式,以便正确地使用相应的方法。
原文链接:https://blog.csdn.net/RyanLee90/article/details/130706161