Date: Wed, 03 Feb 2016 07:54:03 -0700 From: Ian Lepore <ian@freebsd.org> To: Jukka Ukkonen <jau789@gmail.com>, freebsd-arm <freebsd-arm@FreeBSD.org> Subject: Re: ds3231 suddenly failing Message-ID: <1454511243.1736.3.camel@freebsd.org> In-Reply-To: <56B21158.80401@gmail.com> References: <56B21158.80401@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2016-02-03 at 16:40 +0200, Jukka Ukkonen wrote: > Hello all, > > Previously my RPI2 had no problems with ds3231 RTC. > Now 11.0-CURRENT r295206 shows these during boot... > > ds32310: <Maxim DS3231 RTC> at addr 0x1a0 on iicbus1 > ds32310: cannot read from RTC. > > Trying sysctl dev.ds3231 gives me this... > > dev.ds3231.0.%parent: iicbus1 > dev.ds3231.0.%pnpinfo: name=rtc compat=maxim,ds3231 > dev.ds3231.0.%location: addr=0x1a0 > dev.ds3231.0.%driver: ds3231 > dev.ds3231.0.%desc: Maxim DS3231 RTC > dev.ds3231.%parent: > > Trying "i2c -s" does not show anything on either > /dev/iic0 or /dev/iic1. > > AFAIK I have not changed anything in the build. > > Checking the contents of rpi2.dtb says this about > the clock chip... > > rtc { > compatible = "maxim,ds3231"; > reg = <0xd0>; > }; > > I guess that the alert "cannot read from RTC." is > due to the fact that "addr 0x1a0" does not match > "reg = <0xd0>;" in the DTB. It just does not dawn > to me where the kernel found the alternate value. > Any ideas? > > --jau You didn't say what version you were running previously that had no problems, but there was an update a while back that changed the i2c device addressing in dts files to match the published standard, which requires 7-bit addresses. Freebsd has always used 8-bit addresses in i2c drivers. (0x1a0 is 0xd0 left-shifted by 1). So, just adjust the address in your dts to 0x68 and it should start working again. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1454511243.1736.3.camel>