diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-08-06 08:13:06 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-08-06 08:13:06 +0000 |
commit | 50f1ea16c5267ed866f0ed27a15a15f86af86c44 (patch) | |
tree | 869fa5b7c88565b9cc1145e1a4956d1c4c604184 /firmware | |
parent | a25d7ce1263b94c2f897032c74ffc0ae1ab8e5f9 (diff) | |
download | rockbox-50f1ea16c5267ed866f0ed27a15a15f86af86c44.tar.gz rockbox-50f1ea16c5267ed866f0ed27a15a15f86af86c44.zip |
rtc_init() takes care of both the ST and HT bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1541 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/rtc.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/firmware/drivers/rtc.c b/firmware/drivers/rtc.c index 2882c975b7..c8e19aab53 100644 --- a/firmware/drivers/rtc.c +++ b/firmware/drivers/rtc.c | |||
@@ -28,9 +28,21 @@ | |||
28 | void rtc_init(void) | 28 | void rtc_init(void) |
29 | { | 29 | { |
30 | unsigned char data; | 30 | unsigned char data; |
31 | data = (unsigned int)rtc_read(0x0c); | 31 | rtc_write(0x13, 0x10); /* 32 kHz square wave */ |
32 | data &= 0xbf; | 32 | |
33 | rtc_write(0x0c,data); | 33 | /* Clear the Stop bit if it is set */ |
34 | data = rtc_read(0x01); | ||
35 | if(data & 0x80) | ||
36 | rtc_write(0x01, 0x00); | ||
37 | |||
38 | /* Clear the HT bit if it is set */ | ||
39 | data = rtc_read(0x0c); | ||
40 | |||
41 | if(data & 0x40) | ||
42 | { | ||
43 | data &= ~0x40; | ||
44 | rtc_write(0x0c,data); | ||
45 | } | ||
34 | } | 46 | } |
35 | 47 | ||
36 | int rtc_write(unsigned char address, unsigned char value) | 48 | int rtc_write(unsigned char address, unsigned char value) |