作家
登录

Linux平台总线驱动设备模型

作者: 来源: 2017-11-16 16:05:49 阅读 我要评论

  •    
  •     struct driver_private *p;   
  • };   
  • platform_driver构造体有device_driver成员,该成员的各自字段如上所示,device_driver也有probe、remove、shutdown等函数,在平台驱动注册的时刻被初始化。

    前面说过,当体系中存在有平台设备和平台驱动经由过程总线的match函数匹配后则会调用platform_driver的probe函数,参数为platform_device,有时刻也经由过程id_table来断定是否匹配。

    1. int platform_device_add(struct platform_device *pdev)   
    2. {   
    3.     int i, ret = 0;   
    4.    
    5.     if (!pdev)  /* 如不雅pdev为空则返回EINVAL */   
    6.         return -EINVAL;   
    7.    
    8.     /* 如不雅pdev->dev.parent为空则将pdev->dev.parent设置为platform_bus */   
    9.     if (!pdev->dev.parent)   
    10.         pdev->dev.parent = &platform_bus;   
    11.    
    12.     pdev->dev.bus = &platform_bus_type;  /* 设置总线类型 */   
    13.    
    14.     if (pdev->id != -1)      /* 如不雅id = -1则表示主动分派name */   
    15.         dev_set_name(&pdev->dev, "%s.%d", pdev->name,  pdev->id);   
    16.     else   
    17.         dev_set_name(&pdev->dev, pdev->name);   
    18.    
    19.     for (i = 0; i < pdev->num_resources; i++) {   
    20.         struct resource *p, *r = &pdev->resource[i]; /* 获取资本 */   
    21.    
    22.         if (r->name == NULL)   
    23.             r->name = dev_name(&pdev->dev);   
    24.    
    25.         p = r->parent;   
    26.         if (!p) {   
    27.             if (resource_type(r) == IORESOURCE_MEM) /* 设置资本类型 */   
    28.                 p = &iomem_resource;   
    29.             else if (resource_type(r) == IORESOURCE_IO)   
    30.                 p = &ioport_resource;   
    31.         }   
    32.    
    33.         if (p && insert_resource(p, r)) {   

        推荐阅读

        Linux Lite第一个支持Linux 4.14及如何安装

      Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 Linux Lite保护者Jerry Bezencon再次初次在Twitter上宣布他的基于Ubuntu的发行版的软件库中最新的Linux内>>>详细阅读


      本文标题:Linux平台总线驱动设备模型

      地址:http://www.17bianji.com/lsqh/38937.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)