i2c总线与控制器

发布于 2022-10-15 04:34:55 字数 195 浏览 19 评论 0

各位大虾:请教一个小问题
linux中一共有几条i2c总线?一个i2c控制器对应一条i2c总线吗?
如果是一一对应的话,为什么使用使用int i2c_register_driver(struct module *owner, struct i2c_driver *driver)注册i2c驱动,
发现所有的驱动都注册在i2c_bus_type这条总线上。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

荒芜了季节 2022-10-22 04:34:55

“为什么使用使用int i2c_register_driver(struct module *owner, struct i2c_driver *driver)注册i2c驱动”这是由于LINUX驱动模型决定的,它的模型为驱动-总线-设备,所以需要注册驱动,也需要注册设备。

“所有的驱动都注册在i2c_bus_type这条总线上”,因为驱动是I2C的,所以就要注册到I2C这种类型的总线上,使用相应的I2C方法进行管理。

如果想说的是怎么驱动哪个I2C控制器,它是通过一个ID号来管理的,例如0号I2C接口,1号I2C接口,而I2C设备驱动也是通过指定ID号来挂到相应的I2C接口上。

谷夏 2022-10-22 04:34:55

几个i2c设备挂在同一个i2c控制器上,是靠什么来区分的?
你说的这个ID号,是i2c设备驱动结构体里的id_table吗?
如果不是,你说的这个ID号定义在哪?

执妄 2022-10-22 04:34:55

几个不同的设备以地址进行区分,我向0x50/0x51和0x80/0x81进行操作,则向不同的设备进行操作。

我说的ID是指I2C控制器的ID,也就是说假设你的CPU有多个I2C控制器,它通过ID来区分的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文