Thanks Robert for suggestion
I did the editing as you proposed, kernel finds it but still does not use
it as I expected.
Details follow.
I did edit them like this
extrtc: ds3231@68 {
compatible = "micro-crystal,rv3028";
reg = <0x52>;
};
and change the overlay name in fragment0.
Renamed the file to BB-I2C2-RTC-RV3028.dts
Compiled, installed and included the line
dtb_overlay=/lib/firmware/BB-I2C2-RTC-RV3028.dtbo
in /boot/uEnv.txt
After reboot there is no /dev/rtc0 created, neither the /dev/rtc link
Some filtered results from
$ dmesg
[ 0.000798] timer_probe: no matching timers found
[ 1.373919] omap_rtc 44e3e000.rtc: registered as rtc1
[ 1.663955] PM: rtc0 not available
[ 1.665284] PM: rtc0 not available
[ 1.666533] hctosys: unable to open rtc device (rtc0)
[ 1.933272] PM: rtc0 not available
So the overlay is processed since the renumbering of the rtc (built in
becomes rtc1) work.
But the new rtc is not installed in kernel
It is listed in /proc/device-tree/chosen/overlay.
The unit seem to be noticed in /sys/class/i2c-dev/i2c-2/device/2-0052
The file name inside returns the right name
$ cat name
rv3028
But it is not occupied by the kernel since I can still do
$ i2cdetect -y 2 0x52 0x0
22
So any clues how I can get the kernel to use it?
/johan
lördag 6 februari 2021 kl. 05:51:08 UTC+1 skrev RobertCNelson:
> On Fri, Feb 5, 2021 at 4:39 AM Johan Ingvast <[email protected]> wrote:
> >
> > Hi
> >
> > I have a RTC rv3028 on my system. It sits on i2c-2 at address 0x52.
> > I want it to update the system time with a correct time at each start of
> system regardless contact to internet time or not. I have no need of the
> alarm functions.
> >
> > RV3028 is really low power and claim to be accurate.
> >
> > I have checked it working using i2cset and i2cget.
> >
> > Now I want to have the system use it instead of the one not backed up
> battery.
> >
> > I found out that the most important registers of rv3028 are at the same
> place as for the ds3231 that the kernel supports. This made me try
> >
> > $ echo ds3231 0x52 > /sys/class/i2c-dev/i2c-2/device/new_device
> >
> > and what I hoped happened. The /dev/rtc1 was created and responded with
> the set time from
> > $ hwclock -r -f /dev/rtc1
> >
> > But I still have some steps to take to make everything work. The system
> should use the clock as /dev/rtc and use it at startup, correct the time
> and so forth.
> >
> > I thought of using overlays, there is an overlay for ds3031 which codes
> for another i2c address.
> >
> > Is it possible/enough to change bus and address of an existing ds3031
> overlay like
> https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-I2C2-RTC-DS3231.dts
>
> to make it work for the rv3028?
>
> Correct, just update these 3 lines and it should just work..
>
>
> https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-I2C2-RTC-DS3231.dts#L81-L84
>
> The rest is more informal that get's reported to userspace for your
> sanity to see if it loaded..
>
> Regards,
>
> --
> Robert Nelson
> https://rcn-ee.com/
>
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/d2efb186-1c06-40ba-a40c-0386465e6935n%40googlegroups.com.