免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2087 | 回复: 3
打印 上一主题 下一主题

关于平台驱动的开发... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-22 14:59 |只看该作者 |倒序浏览
现在驱动 往往要用到 platform_device 和 platform_driver

假如一个平台 有个三个USB主机控制器,这三个USB主机控制器的驱动一模一样 只是其物理地址和中断不一样

现有的方法 是 每一个platform_device 包含一个主机控制的  mem resource 和irq  resource  然后再 全局三个 platform_driver 成员函数 一样,只是对应各自的platform_device


想想 可不可以 将这三个 mem resource 和 irq resource 组织在一个 platform_device 面,然后由 一个platform_driver  完成这三个 USB主机控制器驱动的实现,代码实现简单点,

不过 看了 platform_driver的probe的函数 里面  platform_get_resource 只是按type 匹配  第一个 符合的 resource 就返回了 ,实际在platform_device 里面 还有剩余的 两个mem resource和 irq resource    有没有好点的方法?

论坛徽章:
0
2 [报告]
发表于 2011-02-23 14:54 |只看该作者
个人感觉最好使用三个platform_device,然后定义一个platform_driver。

楼主高见?

论坛徽章:
0
3 [报告]
发表于 2011-02-23 19:44 |只看该作者
自己开发,不调用内核接口,没什么不可以的。哈哈

论坛徽章:
0
4 [报告]
发表于 2011-02-28 20:54 |只看该作者
可以尝试定义三个 platform_device并一一注册,然后定义一个 platform_device_id的数组id_table, 该数组每个成员的“name” 成员一一赋值为你的那三个platform_device的name, 并将它赋值给platform_driver的id_talbe成员就OK了.
     因为在platform_device_register以及platform_driver_register时候,优先是通过id_table进行match的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP