关闭

基于 platform 总线的设备驱动编写模式:

589人阅读 评论(0) 收藏 举报
分类:




基于 platform 总线的设备驱动编写模式:

platform总线是内核注册好的用于管理设备及驱动的一种模式。
其总线对应的类型即使,struct bus_type.
总线实现好了匹配规则,内核对于往platform总线上注册的设备
及驱动对应的类型做了抽象。

platform总线上要注册的设备类:

struct platform_device {
 const char * name; //设备的名字, /sys/bus/platform/device/
 int  id;     //相同几个设备中,具体某个设备的序号
 struct device dev;    //用于关联总线的设备模型抽象的设备对象
 u32  num_resources;  // 硬件资源对应的数组元素个数
 struct resource * resource;     //硬件资源的数组起始地址

 const struct platform_device_id *id_entry;

 /* MFD cell pointer */
 struct mfd_cell *mfd_cell;

 /* arch specific additions */
 struct pdev_archdata archdata;
};

注册及移除设备:
int platform_device_register(struct platform_device *pdev);
void platform_device_unregister(struct platform_device *pdev);
//module_driver();

platform 总线上要注册的驱动类:

struct platform_driver {
 int (*probe)(struct platform_device *); //匹配设备成功后执行此函数,对设备资源操作,实现后续驱动的相应功能。
 int (*remove)(struct platform_device *); //移除驱动对象时执行此函数,一般做释放资源的工作。
 void (*shutdown)(struct platform_device *);
 int (*suspend)(struct platform_device *, pm_message_t state);
 int (*resume)(struct platform_device *);
 struct device_driver driver;
 const struct platform_device_id *id_table; //用于匹配的成员
};

注册及移除驱动:

int platform_driver_register(struct platform_driver *drv);
void platform_driver_unregister(struct platform_driver *drv);



1
0
查看评论

Linux驱动中的platform总线分析

最近在复习platform总线相关的知识,碰到一篇感觉不错的文章。转载自:http://blog.csdn.net/pillarbuaa/article/details/7680372概述从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_...
  • fml1997
  • fml1997
  • 2017-08-27 20:48
  • 273

platform设备驱动框架搭建分析

之前接触到的字符设备驱动是非常单纯的Linux字符设备驱动,他不具备工程中Linux驱动中的设备与驱动分离思想和设备驱动的分层思想,不具备“总线-设备-驱动”模型的概念。接下来通过分析platform设备驱动模型的搭建过程来看看Linux的设备驱动模型究竟是怎样的? platform驱动模型搭建: ...
  • u011549260
  • u011549260
  • 2015-04-20 17:45
  • 1765

framebuffer设备,字符设备,platform总线间的联系

欢迎各位转载!!! 最近在看Linux设备的驱动程序编程,里面的类型的设备驱动类型把我搞糊涂了。首先书上说linux中有字符设备,块设备,网络设备三大类驱动。但是接着又扯出一大堆的的什么platfrom平台设备驱动,帧缓冲区设备驱动等各种设备驱动,于是我就蒙b了......... !网上搜各种资...
  • d_a_r_k
  • d_a_r_k
  • 2015-12-24 16:36
  • 729

基于platform驱动模型的LED驱动

上一篇博文《platform设备驱动框架搭建分析》主要是根据内核源码来分析platform驱动模型工作的原理,在实际的驱动开发中如何使用Linux的这么一种模型来管理这种类型的设备呢?把tq2440开发板上的LED1当做是平台设备注册到Linux系统中,让系统可以用这种platform驱动来管理他。...
  • u011549260
  • u011549260
  • 2015-04-20 19:35
  • 688

linux设备驱动归纳总结(九):1.platform总线的设备和驱动

linux设备驱动归纳总结(九):1.platform总线的设备和驱动 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这一节可以理解是第八章的延伸,...
  • jsn_ze
  • jsn_ze
  • 2016-02-26 14:46
  • 544

platform总线设备驱动开发流程

从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。      Linux 中大部分的设备驱动,都可以使用这套机制 , 设备用 Platform_device 表...
  • flx_wchy
  • flx_wchy
  • 2012-10-11 10:17
  • 249

总线,设备,和驱动

总线、设备和驱动的主要结构定义:struct bus_type:    1、devices    2、driversstruct device:    1、struct bus_type *bus:设备所连接的...
  • vipwangzs
  • vipwangzs
  • 2009-04-29 01:55
  • 1971

Linux驱动-platform总线设备驱动

一、简介:      platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_dev...
  • czg13548930186
  • czg13548930186
  • 2017-09-25 11:18
  • 499

pwm设备驱动--platform总线

文章来源:http://blog.csdn.net/zqixiao_09/article/details/50888795 采用设备模型的概念,总线,设备,驱动。先将设备(驱动)挂载到总线上,等待另一个同名的驱动(设备),用match函数进行匹配。如果找到了就调用driver的probe函数将设备和...
  • you_shou
  • you_shou
  • 2016-09-18 08:13
  • 289

Linux Platform总线+SPI总线分析

本文以MPC8308(powerpc架构),HX软件包为依据,详细内容可参考源码 CPU: e300c3MPC8308 400MHz BOARD: Freescale MPC8308ERDB DRAM: 256M NAND: 1024M
  • fzs333
  • fzs333
  • 2015-07-09 10:45
  • 1316
    个人资料
    • 访问:120908次
    • 积分:2149
    • 等级:
    • 排名:千里之外
    • 原创:94篇
    • 转载:53篇
    • 译文:0篇
    • 评论:10条
    最新评论