platform_driver_probe 函数使用解释

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。

后面有时间再进一步补充。

猜你喜欢

转载自blog.csdn.net/ggqhit/article/details/76794578
今日推荐