如何在探测驱动程序 i2c-msm-v2 期间修复 "error on clk_get(core_clk)"

How to fix "error on clk_get(core_clk)" during probing driver i2c-msm-v2

当我的设备启动时,我在 dmesg 日志中收到以下消息:

<6>[    0.087051]  [0:      swapper/0:    1] i2c-msm-v2 78ba000.i2c: probing driver i2c-msm-v2
<3>[    0.087121]  [0:      swapper/0:    1] i2c-msm-v2 78ba000.i2c: error on clk_get(core_clk):-517
<3>[    0.087146]  [0:      swapper/0:    1] i2c-msm-v2 78ba000.i2c: error probe() failed with err:-517
<6>[    0.087180]  [0:      swapper/0:    1] platform 78ba000.i2c: Driver i2c-msm-v2 requests probe deferral

我是 linux 设备驱动程序的新手,我对 I2C 的了解非常基础。 我想知道为什么会出现此消息以及如何解决? 这是名称不匹配问题的结果吗?

感谢您的帮助。

此问题与驱动程序探测顺序有关。因为clk是在probing i2c之后才初始化的,所以i2c无法获取到clk。 这个问题可以通过更改 Makefile(在 /drivers 中)来解决。只需将 clk 移到比 i2c 更高的位置。 我是这样检查的,现在错误信息消失了:)