ds3231 suddenly failing
Ian Lepore
ian at freebsd.org
Wed Feb 3 14:54:12 UTC 2016
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
More information about the freebsd-arm
mailing list