平台设备相关开发小结

平台设备虚拟总线,kernel-2.6之后产生,将设备本身资源注册进内核,有内核统一管理,便于移植:
平台定义:platform_device
平台驱动: platform_driver

平台设备开发流程
1. 定义platform_device
2. 注册platform_device
3. 定义platform_driver
4. 注册platform_driver

1.
struct platform_device
{
 const char *name; /*设备名*/
 int id;      /*设备编号*/
 struct device dev;
 u32 num_resources;
 struct resource *resource; /*设备资源*/
}

分配
struct platform_device *platform_device_alloc(const char* name,int id) /* id 一般-1 */
2.注册
int platform_device_add(struct platform_device *pdev)
平台设备资源
struct resource
{
 resource_size_t start;//资源起始物理地址
 resource_size_t end; //资源结束物理地址
 const char *name;   //资源名称
 unsigned long flags; //资源类型:MEM,IO,IRQ等
 struct resource *parent,*sibling,*child; //资源链表指针
}

4.
platform_driver_register();
/*获取设备资源*/
platform_get_resource();

 

你可能感兴趣的:(struct,IO,平台)