<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
<channel>
 <title><![CDATA[platform和IIC驱动问题]]></title>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967]]></link>
 <description><![CDATA[Latest 20 replies of platform和IIC驱动问题]]></description>
 <copyright><![CDATA[Copyright(C) ]]></copyright>
 <generator><![CDATA[PHPWind Forums by PHPWind Studio]]></generator>
 <lastBuildDate><![CDATA[Mon, 27 Jul 2026 14:25:42 +0000]]></lastBuildDate>
  <image>
 <url><![CDATA[images/rss.gif]]></url>
 <title><![CDATA[PHPWind Board]]></title>
 <link><![CDATA[http://121.40.142.80]]></link>
 <description><![CDATA[]]></description>
  </image>
<item>
 <title><![CDATA[回 10楼(caoxin00123) 的帖子]]></title>
 <description><![CDATA[版主不在了么？]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#156385]]></link>
 <author><![CDATA[caoxin00123]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Thu, 08 Mar 2012 03:28:49 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]

platform driver对应的是platform bus上的platform device；i2c driver对应的是i2c bus上的i2c device。
[/quote]

static int HW_probe(struct platform_device *pdev)
{
&#160;&#160;&#160;&#160;return i2c_add_driver(&amp;CAMERA_HW_i2c_driver);
}
这个hw_probe就是platform_driver里的probe成员，我看他注 ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#156067]]></link>
 <author><![CDATA[caoxin00123]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Wed, 07 Mar 2012 02:20:04 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]如您所说的这种驱动具有双重角色，platform driver和I2C_driver都同时对应于platform bus上的platform_device吗？如果是这样的话，那由platfrom driver解发i2c driver注册时只使用了add_i2c_driver这个函数。内核也可以将I2C driverplatform device绑定的吗？这样好像讲不通吧？[/quote]
platform driver对应的是p ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155976]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Tue, 06 Mar 2012 14:00:22 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]引用第7楼kasim于2012-03-06 12:36发表的&#160;&#160;:

这样的驱动有双重角色，它既是platform bus上的platform driver，又是i2c bus上的i2c driver。platform driver是用来&quot;触发&quot;真正的i2c driver的注册的。
[/quote]

如您所说的这种驱动具有双重角色，platform driver和I2C_driver都同时对应于platf ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155959]]></link>
 <author><![CDATA[caoxin00123]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Tue, 06 Mar 2012 13:21:55 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]这段的意思是否可以理解为：使用platform_device和platform_driver对于相类似的板子来说，它们可以集中使用platform_device对板载设备进行注册，并且所有的外围设备也都可以使用platform_driver进行驱动的注册，让设备和驱动都挂载在platform bus上进行匹配，这样可以增加通用性，不知道是不是可以这样理解。[/quo ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155776]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Tue, 06 Mar 2012 04:36:26 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[回 5楼(kasim) 的帖子]]></title>
 <description><![CDATA[---------platform device/driver模型的一个重要作用是对于非即插即用设备(比如I2C设备)的枚举。这对于嵌入式设备的内核开发是很有用的。比如，对于一个同时支持多个S3C6410开发板的内核来说，我们可以使用同一个包含各个开发板上I2C设备驱动的内核配置，加上不同board文件里的platform device列表，就可以实现用同一个内 ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155740]]></link>
 <author><![CDATA[caoxin00123]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Tue, 06 Mar 2012 02:55:15 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]我的意思是我看到有些总线设备（如IIC设备）用的platform_device来注册device以后调用platform_driver结构体的probe函数，而这个probe里
又调用了对应的总线driver的注册（如I2C_driver_register）来注册设备的驱动。这样不是给人的感觉像是绕了一个大圈么？为什么不能直接用
i2c_driver_register来注册驱动呢？[/ ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155651]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Mon, 05 Mar 2012 15:35:36 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[/****************************************************************************
 * driver functions
 ***************************************************************************/
static int __init leds_probe(struct platform_device *pdev)
{
&nbsp;&nbsp;&nbsp;&nbsp;int i;
&nbsp;&nbsp;&nbsp;&nbsp;int re ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155590]]></link>
 <author><![CDATA[caoxin00123]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Mon, 05 Mar 2012 12:31:07 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[[quote]
谢谢版主的解答，可是我有一点不明白的就是，为什么我看的代码设备注册无论是什么设备它会全部都用platform_device这个来申明和注册呢？[/quote]
这个我上面已经说过了
[quote]
而且还有就是有一些设备的注册时也没有看到关于设备号的注册代码呢。但是我看书上讲的每个设备都会有设备号的呀。
[/quote]
举个例子？]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155475]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Mon, 05 Mar 2012 05:45:54 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[谢谢版主的解答，可是我有一点不明白的就是，为什么我看的代码设备注册无论是什么设备它会全部都用platform_device这个来申明和注册呢？
而且还有就是有一些设备的注册时也没有看到关于设备号的注册代码呢。但是我看书上讲的每个设备都会有设备号的呀。]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#155449]]></link>
 <author><![CDATA[caoxin00123]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Mon, 05 Mar 2012 04:13:19 +0000]]></pubdate>
</item>
<item>
 <title><![CDATA[]]></title>
 <description><![CDATA[1. 你所看到的platform_device是Linux设备驱动模型的一部分，是用来触发platform_bus上的platform_driver的。真正的硬件初始化和设备注册是在platform_driver的probe回调函数里实现的。这在“Linux Device Driver”第三版的第14章里有详细的描述。
2. i2c-dev.c里实现的是一个实现用户空间应用程序访问挂载到i2c总线上的设 ..]]></description>
 <link><![CDATA[http://121.40.142.80/read.php?tid=17967#154955]]></link>
 <author><![CDATA[kasim]]></author>
 <category><![CDATA[Linux技术交流区]]></category>
 <pubdate><![CDATA[Sat, 03 Mar 2012 07:04:18 +0000]]></pubdate>
</item>
</channel></rss>