i2cprobing

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


While my device boots up, I get the following message in the dmesg log:

<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

I'm a newbie in linux device driver and I'm aware of I2C in a very basic level. I would like to know why this message appear and how to fix it? Is this a result of an unmatching name problem?

I'm grateful for your help.


Solution

  • This problem relates to the driver probe order. Because clk inits after probing i2c, so that i2c failed to get clk. This problem can be solved by changing Makefile (in /drivers). Just move clk upto a higher position than i2c. I checked it this way and now the error message disappears :)