Sedimentation 发表于 2011-02-22 14:59

关于平台驱动的开发...

现在驱动 往往要用到 platform_device 和 platform_driver

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

现有的方法 是 每一个platform_device 包含一个主机控制的mem resource 和irqresource然后再 全局三个 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    有没有好点的方法?

yuanlulu3614 发表于 2011-02-23 14:54

个人感觉最好使用三个platform_device,然后定义一个platform_driver。

楼主高见?

EZWORD 发表于 2011-02-23 19:44

自己开发,不调用内核接口,没什么不可以的。哈哈

Trigger_Huang 发表于 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的。
页: [1]
查看完整版本: 关于平台驱动的开发...