I was able to get the ds1307 i2c part working on the Pi. The tod.c driver shell was calling setRealTimeToRTEMS() but it was failing in rtems_clock_set because my driver was not returning the correct rtems_tod format.
Now when I boot the Pi, the rtems time is synced to the battery backed RTC.

Thanks,
Alan

On 8/28/2014 1:26 PM, Joel Sherrill wrote:
On 8/28/2014 12:16 PM, Alan Cudmore wrote:
I am testing out the Raspberry Pi I2C interface by implementing a
DS1307 RTC driver.

I started with the libchip/rtc/ds1375.c driver, since it is very close
to the 1307.

In the Raspberry Pi BSP, I added code to i2c_init.c to create a raw
device node for the RTC device, then I added the tod/todcfg.h similar
to the powerpc/mvme3100 BSP.

Using the test functions I can read and write the device, but is there
anything else I need to do in order to tie it to the RTEMS time functions?

For example:
In the shell ( main_date.c ) , the time() function just returns the
1998 epoch. Also, the shell rtc command ( main_rtc.c ) calls
rtems_clock_get_tod, but returns a error. If I use the RTC command and
set the time, it does try to write to my device and subsequent calls
to rtems_clock_tod do not return an error.

Am I missing any setup here?

Finally, is RTC the same as TOD for RTEMS?

It is a source to set the TOD from. There are some ugly APIs provided
by the RTC driver shell code. They really need new names but I haven't
had any good ideas. :(

See libbsp/shared/tod.c.

setRealTimeFromRTEMS() is probably the missing call you are looking
for.
Thanks,
Alan

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to