首页 头条 财经 产业 跨境 时尚 物流 直播 优品 English
首页 / 电商品测 / 正文

如何在初始化函数中调用函数platform_driver_register

来源:
编辑:电经淘讯
时间:2023-09-01

 platform_driver_register(),platform_device_register()区别:设备与驱动的两种绑定方式:在设备注册时进行绑定及在驱动注册时进行绑定。以一个USB设备为例,有两种情形:


      (1)先插上USB设备并挂到总线中,然后在安装USB驱动程序过程中从总线上遍历各个设备,看驱动程序是否与其相匹配,如果匹配就将两者邦定。这就是platform_driver_register()。
      (2)先安装USB驱动程序,然后当有USB设备插入时,那么就遍历总线上的各个驱动,看两者是否匹配,如果匹配就将其绑定。这就是platform_device_register()函数。
      在驱动初始化函数中调用函数platform_driver_register()注册platform_driver,需要注意的是ohci_device结构中name元素和ohci_hcd_pxa27x_driver结构中driver.name必须是相同的,这样在platform_driver_register()注册时会对所有已注册的所有platform_device中的name和当前注册的platform_driver的driver.name进行比较,只有找到相同的名称的platfomr_device才能注册成功,当注册成功时会调用platform_driver结构元素probe函数指针,这里就是ohci_hcd_pxa27x_drv_probe。
      当进入probe函数后,需要获取设备的资源信息,获取资源的函数有:struct resource * platform_get_resource(struct platform_device *dev, unsigned int type, unsigned int num);根据参数type所指定类型,例如IORESOURCE_MEM,来获取指定的资源。struct int platform_get_irq(struct platform_device *dev, unsigned int num);获取资源中的中断号。struct resource * platform_get_resource_byname(struct platform_device *dev, unsigned int type, char *name);根据参数name所指定的名称,来获取指定的资源。int platform_get_irq_byname(struct platform_device *dev, char *name);根据参数name所指定的名称,来获取资源中的中断号。

头条聚焦更多

AMANDA.CAO:以“华灯初尚”诠释女性

编辑:电商新品
2024-10-28
经济视界更多

OPPO要和苹果、三星掰手腕?刘作虎:国

    OPPO举办Find X8系列及旗舰生态新品发布...[详细]

并购、扭亏为盈,为何带不动“医药界拼

    药师帮发布公告称,公司就收购一块医药10...[详细]

热点财经更多
  • CopyRight @ 2013-2024 Reserved CN电商经济网版权所有所涉内容免责声明查阅