platfrom 设备总结

原创 2012年03月21日 11:27:42
 

注册设备的两种方式:

方法一:

 一:对于平台设备可以直接在板文件中添加代码(arch / arm / mach-s3cxxxx / mach-smdk2440.c)

 代码 1: static struct platfrom_device hello_device = {

                      .name     = "hello ",

                      .id             = -1,

                     .resource  = hello_resource,                      

                       ...................

                       .......................

                       };  添加设备结构体

代码2:继续添加设备资源(arch / arm / mach-s3cxxxx / mach-smdk2440.c)

          

static struct resource  hello_resource[] = {  

      [0] = {  //IO端口资源    

              .start = S3C24XX_PA_WATCHDOG,   

              .end   = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1,   

              .flags = IORESOURCE_MEM,  

       },  

       [1] = {  //中断资源   

              .start = IRQ_WDT,                 .end   = IRQ_WDT,  

             .flags = IORESOURCE_IRQ,  

       }  

};  

3:继续把设备加入到设备数组中去arch / arm / mach-s3cxxxx / mach-smdk2440.c

static struct platform_device *smdk2440_devices[] __initdata = {         &s3c_device_usb,         &s3c_device_lcd,         &s3c_device_wdt,         &s3c_device_i2c0,         &s3c_device_iis,    &hello_device,   };    

之后系统在加载该驱动的时候会自动的调用platform_add_devices把设备注册到系统中去,该函数内部会调用platfrom_device_register().设备注册完闭

 

方法二:

直接定义即可:1。定义设备结构体

static struct platfrom_device hello_device = {

                      .name     = "hello ",

                      .id             = -1,

                     .resource  = hello_resource,                      

                       ...................

                       .......................

                       }; 

2。定义设备资源

static struct resource  hello_resource[] = {  

      [0] = {  //IO端口资源    

              .start = S3C24XX_PA_WATCHDOG,   

              .end   = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1,   

              .flags = IORESOURCE_MEM,  

       },  

 

3。注册设备 platfrom_device_register().

static int __init  hello_init(void)  

{  

       printk(banner);  

       return platform_device_register(&hello_device);  

}  

static void __exit hello_exit(void)  

{  

       platform_device_unregister(&hello_device );  

}  

  

module_init(hello_init);  

module_exit(hello_exit);  


 

 

 

一个led-platfrom设备驱动的例子

什么是platform总线 一个现实的linux设备和驱动通常都需要挂接在一种总线上,比较常见的总线有USB、PCI总线等。但是,在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内...

platfrom RTC驱动分析

嵌入式Linux之我行——S3C2440上RTC时钟驱动开发实例讲解 (2010-01-06 15:22) 分类: 内核、驱动开发篇 嵌入式Linux之我行,主要讲述和总结了本人在...

platfrom-misc-rfid-linux2.6.32.tar.gz

  • 2011年10月25日 12:22
  • 14KB
  • 下载

windows azure platfrom for english

  • 2010年11月03日 13:52
  • 12.54MB
  • 下载

利用AMP(Alibaba Migration Platfrom)神器轻松把Oracle数据库中的数据迁移到MySQL数据库

利用AMP(Alibaba Migration Platfrom)神器轻松把Oracle数据库中的数据迁移到MySQL数据库...
  • guoyJoe
  • guoyJoe
  • 2015年04月07日 22:22
  • 1526

Android学习心得(22) --- PackageManagerService源码解析platfrom.xml

新博客地址blog.marssecure.complatform.xmlAndroid中沿用Linux用户和组的来限制系统资源的访问,查看从Android真机pull出/etc/permissions...

裸设备总结

  • 2013年03月14日 20:30
  • 3.1MB
  • 下载

linux设备驱动归纳总结(六):2.分享中断号

linux设备驱动归纳总结(六):2.分享中断号 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:platfrom 设备总结
举报原因:
原因补充:

(最多只允许输入30个字)