summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-08-06 06:21:53 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-08-06 06:21:53 +0000
commit047174872ad61562fb3a9dea8e14aafc024aaf8b (patch)
tree60742a9ea324175be6320ce8ed133fc5ac712c38
parent93c1b40b8db15b50654b45544178dc1ea8d509e8 (diff)
downloadrockbox-047174872ad61562fb3a9dea8e14aafc024aaf8b.zip
rockbox-047174872ad61562fb3a9dea8e14aafc024aaf8b.tar.gz
rockbox-047174872ad61562fb3a9dea8e14aafc024aaf8b.tar.bz2
rockbox-047174872ad61562fb3a9dea8e14aafc024aaf8b.tar.xz
rtc_read() now sends a stop condition. This hopefully fixes the stopping clock updates.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1539 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/rtc.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/drivers/rtc.c b/firmware/drivers/rtc.c
index 66b37fc..2882c97 100644
--- a/firmware/drivers/rtc.c
+++ b/firmware/drivers/rtc.c
@@ -25,6 +25,14 @@
#define RTC_DEV_WRITE (RTC_ADR | 0x00)
#define RTC_DEV_READ (RTC_ADR | 0x01)
+void rtc_init(void)
+{
+ unsigned char data;
+ data = (unsigned int)rtc_read(0x0c);
+ data &= 0xbf;
+ rtc_write(0x0c,data);
+}
+
int rtc_write(unsigned char address, unsigned char value)
{
int ret = 0;
@@ -55,7 +63,7 @@ int rtc_read(unsigned char address)
buf[0] = address;
- /* send run command */
+ /* send read command */
if (i2c_write(RTC_DEV_READ,buf,1) >= 0)
{
i2c_start();
@@ -66,6 +74,8 @@ int rtc_read(unsigned char address)
}
}
+ i2c_stop();
+
i2c_end();
return value;
}