主题 : linux2.6 中platform 设备和字符设备,块设备区别? 复制链接 | 浏览器收藏 | 打印
qq2440
级别: 新手上路
UID: 51089
精华: 0
发帖: 10
金钱: 55 两
威望: 11 点
综合积分: 20 分
注册时间: 2011-06-29
最后登录: 2014-04-23
楼主  发表于: 2012-05-15 15:32

 linux2.6 中platform 设备和字符设备,块设备区别?

在看linux2.6 代码时发现有个问题理解不通.

在设备注册成platform 设备并且驱动也注册到系统中platform总线上了,但是到后来怎么和字符设备或者块设备联系上的? 块设备/字符设备是通过自己的挂接到自己对应的kobj_map上去的,好象与platform 没有关系了.

不是很明白,请教高手!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-05-15 17:19
通常情况下,platform device是用来匹配相应的platform driver并触发driver的probe接口,而字符设备或块设备就是在那里注册的。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
qq2440
级别: 新手上路
UID: 51089
精华: 0
发帖: 10
金钱: 55 两
威望: 11 点
综合积分: 20 分
注册时间: 2011-06-29
最后登录: 2014-04-23
2楼  发表于: 2012-05-16 10:01

 Re:linux2.6 中platform 总线 和字符设备,块设备区别?

在s3c2410_nand_init(void)中将 s3c2410_nand_driver/s3c2440_driver 注册到platform 总线上(drivers/mtd/nand/s3c2410.c)

platform_device (s3c_device_usb/s3c_device_lcd/s3c_device_nand...) 通过 platform_device_register(struct platform_device *pdev) 注册到platform总线 (cpu.c/platform.c).

问题是:这些platform_device 在注册后,是不是为这些设备注册成字符设备或块设备提供条件?但是也没有看出之间的联系啊? 通过kobj联系的?

高手请明示! 为感!
qq2440
级别: 新手上路
UID: 51089
精华: 0
发帖: 10
金钱: 55 两
威望: 11 点
综合积分: 20 分
注册时间: 2011-06-29
最后登录: 2014-04-23
3楼  发表于: 2012-05-17 15:01
明白了,谢谢各位!
级别: 新手上路
UID: 64748
精华: 0
发帖: 27
金钱: 135 两
威望: 27 点
综合积分: 54 分
注册时间: 2012-03-09
最后登录: 2012-10-09
4楼  发表于: 2012-06-02 19:17

 回 3楼(arthurchen) 的帖子

怎么回事?明白了,给我们不懂的说说啊。
qq2440
级别: 新手上路
UID: 51089
精华: 0
发帖: 10
金钱: 55 两
威望: 11 点
综合积分: 20 分
注册时间: 2011-06-29
最后登录: 2014-04-23
5楼  发表于: 2012-06-08 16:44
platform device 仅仅是为了char/block设备注册做前提条件.至少nand flash 是这样的.