Page 1 of 1

Disabling repeated start in the i2c-bcm2835 driver

Posted: Tue Mar 27, 2018 4:59 pm
by ericbarch
Previously, the i2c-bcm2708 driver was used by default before moving to the newer i2c-bcm2835 driver. From what I can tell, this change was made in the 4.8/4.9 kernel line.

Prior to this change, repeated start could be turned on and off by setting the value of the /sys/module/i2c_bcm2708/parameters/combined file. In the i2c-bcm2835 driver, this functionality is enabled by default and there is not a "combined" file to be found when using this new driver.

I very much understand the need for repeated start to be implemented. And it is great that this is now supported out of the box. BUT, the I2C modules I am using (Atlas Scientific specifically), do not support repeated start. After upgrading to Raspbian releases with the newer kernel, I'm no longer able to talk to any of these devices. Loading the old driver brings them right back to life. I've also confirmed the behavior via a logic analyzer.

Does anyone know if it is possible to turn off this repeated start functionality in the new i2c-bcm2835 driver? For my application, I am currently loading in the old driver. But I'm a bit concerned this will be deprecated in the future. Would love to move to the newer driver if possible.

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Sat May 19, 2018 8:12 am
by Embring
Any progress? It really a problem, for me as well. My Lidar Lite V3 only responds with 0x00 due to these forced repeated start and using the old driver for the old chip on a brand new 3B+ is sad and doesn't seem to work...

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Tue May 22, 2018 12:02 pm
by notro
As far as I understand it's a problem with the Lidar firmware: Lidar-Lite v3 return always zero with raspberry pi 3
I did the repeated start fix and here's the rationale: i2c: bcm2835: Add support for Repeated Start Condition
Docs: Documentation/i2c/i2c-protocol

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Wed May 23, 2018 8:40 pm
by Embring
Thanks Notro,
I will try this!

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Thu Jul 05, 2018 5:21 pm
by ZooHe17
I am running into the same problem. My Lidar Lite v3's address does not show up when running i2cdetect on my RPi 3B+. I think its an issue with the repeated start.

Any luck on the problem?

Thanks,

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Mon Nov 05, 2018 5:44 pm
by metalmajor
Is there any progress on this? I'm also using the Lidar lite V3 and have this same issue.

Can we work around it by reverting the patch mentioned in the post here?

Best regards,
Tom,

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Mon Nov 05, 2018 10:35 pm
by ericbarch
Indeed, it's still quite possible to load the old driver. Just add this line to /boot/config.txt and restart:

Code: Select all

dtoverlay=i2c-bcm2708

Re: Disabling repeated start in the i2c-bcm2835 driver

Posted: Mon Nov 05, 2018 11:02 pm
by metalmajor
Thanks! This works for me now...

Only thing: the lidar lite v3 I am using does not show up in i2cdetect, but talking to it works like it used to, so not a real problem for usage.