码迷,mamicode.com
首页 > 系统相关 > 详细

13 Linux驱动之平台设备

时间:2016-12-11 15:46:12      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:系统   ice   注册   记录   reg   ble   add   addition   table   

一 platform子系统

1.对平台设备描述

struct platform_device {
const char * name; //设备名字
int id; // -1
struct device dev; //通用设备描述
u32 num_resources; //资源的个数
struct resource * resource;//资源

//如果是在driver的id_table中匹配成功,id_entry就会记录id_table匹配的项
const struct platform_device_id *id_entry;

/* arch specific additions */
struct pdev_archdata archdata;//平台设备的私有数据
};

2.对平台驱动的描述

struct platform_driver {
int (*probe)(struct platform_device *); //驱动与设备匹配的时候调用
int (*remove)(struct platform_device *);//驱动与设备分离的时候调用
struct device_driver driver;//通用driver描述
const struct platform_device_id *id_table;//支持设备
};

struct device_driver
{
const char *name; //驱动名字
struct module *owner;//THIS_MODULE
...
}

3.注册平台驱动

int platform_driver_register(struct platform_driver *drv);

4.注册平台设

int platform_device_register(struct platform_device *pdev);


5.平台设备与平台驱动匹配过程
[1]通过设备的名字与驱动的id_table + 驱动的名字
[2]匹配成功
[1]在设备记录匹配的驱动
[2]调用驱动提供的probe函数

13 Linux驱动之平台设备

标签:系统   ice   注册   记录   reg   ble   add   addition   table   

原文地址:http://www.cnblogs.com/gaoningbo/p/6159562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!