I2c-rtc dtoverlays?

Short version: where are the device trees overlays to activate the RTC, eg dtoverlay=i2c-rtc,ds1307 ?

Lots of details

  • Added the appropriate overlays to uEnv.txt to activate i2c:

overlays=meson-g12a-uart-ao-a-on-gpioao-0-gpioao-1 meson-g12a-i2c-ee-m3-gpioa-14-gpioa-15 meson-g12a-uart-ao-b-on-gpioao-8-gpioao-9

  • i2c-tools is installed and detects the bus and RTC:
root@zero:~# i2cdetect -l
i2c-3	i2c       	Meson I2C adapter               	I2C adapter
i2c-5	i2c       	DesignWare HDMI                 	I2C adapter
root@zero:~# i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
  • I’ve informed the kernel about this new device:
root@zero:~# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-3/new_device
root@zero:~# dmesg | tail -2
[51258.026228] i2c i2c-3: new_device: Instantiated device ds1307 at 0x68
[51258.054499] rtc-ds1307 3-0068: registered as rtc1
root@zero:~# i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

  • The clock can be accessed with the hwclock tool:
root@zero:~# hwclock --rtc /dev/rtc1 --systohc
root@zero:~# hwclock --rtc /dev/rtc1 --show
2022-03-04 11:44:43.254984-08:00
  • On a raspberry pi, there are i2c-rtc overlays:
root@pi4:~ # find /boot/overlays/ -iname \*rtc\*
/boot/overlays/i2c-rtc-gpio.dtbo
/boot/overlays/i2c-rtc.dtbo
/boot/overlays/spi-rtc.dtbo
  • Unfortunately I see no such overlays on my zero
root@zero:~# find /boot -iname \*rtc\* | wc -l
0

If an overlay is missing you can write one yourself. Take this guide as a starting point and use meson-g12a-i2c-ee-m3-gpioa-14-gpioa-15.dtbo as your source file. You can then add the ds1307 part from here to the decomplied dts file. Finally compile the edited dts into dtbo and you can use this overlay for RTC device.

1 Like