i2c_add_driver
时间: 2023-07-14 22:58:20 浏览: 37
i2c_add_driver() 是 Linux 内核提供的一个函数,用于向 i2c 核心注册一个 i2c 驱动程序。在注册成功后,i2c 核心将会自动调用该驱动程序的 probe() 函数,该函数将会被用于探测并初始化与 i2c 总线连接的设备。如果 probe() 函数返回 0,则表示设备被成功探测并初始化。如果 probe() 函数返回一个错误码,则表示设备探测失败。
相关问题
i2c_add_driver 位置
i2c_add_driver() 函数的定义位于 Linux 内核源码树的文件 drivers/i2c/i2c-core.c 中。在该文件中,i2c_add_driver() 函数被定义为一个公共函数,可以被其他模块调用。在 Linux 内核中,i2c_add_driver() 函数是由 i2c 核心模块提供的,因此在使用该函数之前需要确保已经加载了 i2c 核心模块。
i2c_add_driver函数无效
可能多种原因导致i2c_add_driver函数无效,以下是一些可能的解决方法:
1. 确保你的i2c驱动程序已经正确地编写并且已经被编译成内核模块或者静态链接到内核中。
2. 确保你的i2c驱动程序与i2c子系统的版本兼容。
3. 检查是否有其他i2c设备或驱动程序已经占用了你的i2c总线,如果有,需要先卸载或禁用这些设备或驱动程序。
4. 检查i2c总线是否已经正确地初始化并且已经被注册到内核中。
5. 检查i2c驱动程序的probe()函数是否被正确地实现,是否能够正确地识别和初始化你的i2c设备。
6. 如果你使用的是设备树,需要确认你的i2c设备在设备树中已经正确地描述并且已经被正确地绑定到i2c总线上。
希望以上解决方法能够帮助你解决问题。