Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Mar 2017 12:44:31 -0700
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        Karl Denninger <karl@denninger.net>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: i2c on Pi3?
Message-ID:  <20170324194431.GA66320@bluezbox.com>
In-Reply-To: <e2a42066-c2f8-107d-b436-185c8a197ede@denninger.net>
References:  <0b83d41a-1a9e-28cc-6ecd-03e6a63a06a2@denninger.net> <DAC58CC9-9D1C-483F-B748-3BD20A8245CE@thehowies.com> <f1c3c4bb-976c-05ba-24ec-212bc9412a33@denninger.net> <20170323175342.GA55627@bluezbox.com> <843bbe39-0b74-0d27-598d-ae16aea52a37@denninger.net> <20170324185652.GA65910@bluezbox.com> <e2a42066-c2f8-107d-b436-185c8a197ede@denninger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Karl Denninger (karl@denninger.net) wrote:
> On 3/24/2017 13:56, Oleksandr Tymoshenko wrote:
> > Karl Denninger (karl@denninger.net) wrote:
> >> On 3/23/2017 12:53, Oleksandr Tymoshenko wrote:
> >>> Karl Denninger (karl@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@.*{'
> >
> 
> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170324194431.GA66320>