首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

系统中哪里定义平台设备(platform)的名称?解决方法

2012-04-09 
系统中哪里定义平台设备(platform)的名称?//Watchdog平台驱动结构体,平台驱动结构体定义在platform_device

系统中哪里定义平台设备(platform)的名称?
//Watchdog平台驱动结构体,平台驱动结构体定义在platform_device.h中
static struct platform_driver s3c2410wdt_driver = {
  .probe = s3c2410wdt_probe,
  .remove = __devexit_p(s3c2410wdt_remove),
  .shutdown = s3c2410wdt_shutdown,
  .suspend = s3c2410wdt_suspend,
  .resume = s3c2410wdt_resume,
  //注意这里的名称一定要和系统中定义平台设备的地方一致,这样才能把平台设备与该平台设备的驱动关联起来 .driver = {
  .owner = THIS_MODULE,
  .name = "s3c2410-wdt",
  },
}; 

==================
红色的这句话,我不理解,是不是driver中的name和drivce中的name要一样?? 
可是我在驱动源码里只看到了这一个地方定义了name值等于“s3c2410-wdt”。


[解决办法]
平台设备的一般开发步骤

(1)、填充设备资源结构体,主要是资源开始、资源结束、资源标识三项;

(2)、填充平台设备构体;

(3)、填充设备驱动结构体,相应的方法需要自己实现;

(4)、填充平台设备集,任然是平台设备结构体(platform_device),此存在于与机器相关的源代码文件中,一般的结构目录为Linux2.6.32/arch/arm/mach-xxxx/xx-xxxx中。

在第二个步骤填充的平台设备名称

[解决办法]
以三星2440标准开发板为例,在内核目录:
// /arch/arm/mach-s3c2440/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, 
};

S3C6410等,类似。

热点排行