User avatar
ericbarch
Posts: 5
Joined: Fri Jul 13, 2012 6:14 am

Disabling repeated start in the i2c-bcm2835 driver

Tue Mar 27, 2018 4:59 pm

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.

Embring
Posts: 3
Joined: Thu May 17, 2018 5:34 pm

Re: Disabling repeated start in the i2c-bcm2835 driver

Sat May 19, 2018 8:12 am

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...

notro
Posts: 695
Joined: Tue Oct 16, 2012 6:21 pm
Location: Drammen, Norway

Re: Disabling repeated start in the i2c-bcm2835 driver

Tue May 22, 2018 12:02 pm

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

Embring
Posts: 3
Joined: Thu May 17, 2018 5:34 pm

Re: Disabling repeated start in the i2c-bcm2835 driver

Wed May 23, 2018 8:40 pm

Thanks Notro,
I will try this!

ZooHe17
Posts: 1
Joined: Thu Jul 05, 2018 5:17 pm

Re: Disabling repeated start in the i2c-bcm2835 driver

Thu Jul 05, 2018 5:21 pm

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,

metalmajor
Posts: 36
Joined: Fri Oct 20, 2017 9:40 pm

Re: Disabling repeated start in the i2c-bcm2835 driver

Mon Nov 05, 2018 5:44 pm

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,

User avatar
ericbarch
Posts: 5
Joined: Fri Jul 13, 2012 6:14 am

Re: Disabling repeated start in the i2c-bcm2835 driver

Mon Nov 05, 2018 10:35 pm

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

metalmajor
Posts: 36
Joined: Fri Oct 20, 2017 9:40 pm

Re: Disabling repeated start in the i2c-bcm2835 driver

Mon Nov 05, 2018 11:02 pm

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.

Return to “Advanced users”