I have spent many hours to work on the RTC part, and I decided to give up for now. I have been able to activate the clock, set the clock, and make it run. But the RTC is not useful. First, it is not battery backed, so when you turn off your device, it will not keep the time. Second, it can store only the seconds, minutes, hours, and day of the month. The problem of not having a documentation is sometimes you get stuck, and don’t know what to try next.
There is one feature that is supposed to be useful if I can make it work: the alarm capability. With alarm, some cron-like applications can set to be notified when a particular time comes (it will ease the CPU burden). As far as I know, the cron daemon doesn’t use this feature, so it is not a great loss.
There is one thing that still puzzles me. The original firmware uses X1205 through an I2C bus. From my understanding, the X1205 have different abilities compared to the STR9100 RTC. So I don’t know whether there is actually another RTC on the board.
Since the RTC is not very useful. I will let go hacking this part until I find other clues.
Here is the output of the original firmware.
X1205: I2C based RTC driver. i2c-core.o: driver X1205 registered. X1205: found X1205 on STR9100 I2C Adapter ccr_write_enable: verify SR failed i2c-core.o: client [X1205] registered to adapter [STR9100 I2C Adapter](pos. 0). X1205: i2c_add_driver RTC driver. X1205: misc_register RTC driver.