platform总线分析

推荐阅读
http://www.linuxidc.com/Linux/2011-10/44627.htm 讲的很好
http://blog.csdn.net/qb_2008/article/category/896982


☆ platform总线简介
==>总线的产生的意义是让设备(硬件被抽象成一个结构体来代表一个设备)和驱动分离
==>linux内核中常见的的总线有I2C总线,PCI总线,串口总线,SPI总线,PCI总线,CAN总线,单总线等,所以有些设备和驱动就可以挂在这些总线上,然后通过总线上的match进行设备和驱动的匹配。但是有的设备并不属于这些常见总线,所以我们引入了一种虚拟总线,也就是platform总线的概念,对应的设备叫做platform设备,对应的驱动叫做platform驱动


☆ platform总线分析
==>先从使用方法入手分析,我们的驱动代码如果想用platform总线,主要分两个步骤:
① 抽象硬件为一个设备结构体,struct platform_device ,填充后调用 platform_device_register 将设备注册到总线上去
② 驱动部分定义一个结构体 struct platform_driver,填充后调用 platform_driver_register  将驱动注册到总线上去
注 : 比较常用的几个元素是:
      platform_device 结构体的 name 用于去适配驱动
 platform_device 结构体的 dev.platform_data 包含设备所使用的资源(io口 中断号等)
 platform_driver 结构体的 driver.name   和 platform_device_id 用于去适配设备
 platform_driver 结构体的 probe函数  是设备和驱动适配成功后去执行的函数
==>x210的调用逻辑分析举例
① 在mach-x210.c 文件中定义了platform_device *smdkc110_devices[]结构体数组,
   包含了板级移植着给封装的各类设备(以后我们添加新设备的时候也推荐在这里添加)
   这个数组被 smdkc110_machine_init(前面博客已分析如何被start_kernel调用)中的
   platform_add_devices函数调用,将数组中的设备依次调用platform_de
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值