platform_driver_probe — register driver for non-hotpluggable device
Synopsis
int __init_or_module platform_driver_probe( |
struct platform_driver * | drv , |
int (* | probe ( struct platform_device *) ) ; |
Arguments
-
drv
-
platform driver structure
-
probe
-
the driver probe routine, probably from an __init section
Description
Use this instead of platform_driver_register
when you know the device is not hotpluggable and has already been registered, and you want to remove its run-once probe
infrastructure from memory after the driver has bound to the device.
One typical use for this would be with drivers for controllers integrated into system-on-chip processors, where the controller devices have been configured as part of board setup.
Returns zero if the driver registered and bound to a device, else returns a negative error code and with the driver not registered.
最近移植一个USB gadget驱动,由于两个内核版本不同,出现了 platform_driver_probe和 platform_driver_register函数使用问题,以上摘自Linux内核,从以上英文解释中可以看出 platform_driver_probe和
platform_driver_register的一点区别就是,如果设备是热插拔的,那么就使用
platform_driver_register函数,如果设备不是热插拔的,例如dm368芯片中的USB接口,这种情况下usb控制器是在片内集成的,任何情况下都不会出现插拔情况,这种情况下可以使用函数
platform_driver_probe。
后面有时间再进一步补充。