i2c on Pi3?

Oleksandr Tymoshenko gonzo at bluezbox.com
Fri Mar 24 19:44:33 UTC 2017


Karl Denninger (karl at denninger.net) wrote:
> On 3/24/2017 13:56, Oleksandr Tymoshenko wrote:
> > Karl Denninger (karl at denninger.net) wrote:
> >> On 3/23/2017 12:53, Oleksandr Tymoshenko wrote:
> >>> Karl Denninger (karl at denninger.net) wrote:
> >>>> On 3/23/2017 12:34, John Howie wrote:
> >>>>
> >>>>> Hi Karl,
> >>>>>
> >>>>> I can only speak to the Raspberry Pi 2 kernel, but I2C is supported. For an example how to use it from userland, check out a project I posted on github eighteen months ago, that was for the PiFace RTC.
> >>>>>
> >>>>> https://github.com/jhowie/FreeBSDPiFaceRTC
> >>>>>
> >>>>> There are useful routines I created for working with devices on the I2C bus, which you are free to use. They are not RPI2-specific, so they should work on other boards. 
> >>> .. skipped ..
> >>>> It works on the Pi2; I am using it in production.
> >>>>
> >>>> The driver appears to be /missing /in the Pi3 kernel.
> >>> Probably it's not enabled in DTB. Try adding this line to config.txt:
> >>>
> >>> dtparam=i2c_arm=on,spi=on
> >>>
> >> Nope, already in the base config.txt file:
> >>
> >> arm_control=0x200
> >> dtparam=audio=on,i2c_arm=on,spi=on
> >> dtoverlay=mmc
> >> dtoverlay=pi3-disable-bt
> >> device_tree_address=0x4000
> >> kernel=u-boot.bin
> > I just built latest HEAD, i2c driver is available in GENERIC kernel:
> > # dmesg | grep iic
> > iichb0: <BCM2708/2835 BSC controller> mem 0x7e804000-0x7e804fff irq 31
> > on simplebus0
> > iicbus0: <OFW I2C bus> on iichb0
> > random: harvesting attach, 8 bytes (4 bits) from iicbus0
> > random: harvesting attach, 8 bytes (4 bits) from iichb0
> >
> > The driver itself is sys/arm/broadcom/bcm2835/bcm2835_bsc.c
> >
> > Could you run this command on your Pi3 and send output? Thanks
> >
> >  sysctl -b hw.fdt.dtb | dtc -I dtb | grep -A 13 'i2c at .*{'
> >
> 
> I have a copy of Generic with a couple of tweaks in it; I DO NOT get the
> iic identifiers.
> 
> Here's what I have in the dtb; I will svn update and rebuild with
> GENERIC (don't see why the tweaks would change anything, but will try
> with GENERIC anyway and see if anything changes.

Looks like DTB in your firmware is different from what I have (my is
relatively old). Try applying this patch to your kernel:

https://people.freebsd.org/~gonzo/arm/patches/rpi3-bcm2835-i2c.diff


-- 
gonzo


More information about the freebsd-arm mailing list