summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-08-06 08:13:06 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-08-06 08:13:06 +0000
commit50f1ea16c5267ed866f0ed27a15a15f86af86c44 (patch)
tree869fa5b7c88565b9cc1145e1a4956d1c4c604184 /firmware
parenta25d7ce1263b94c2f897032c74ffc0ae1ab8e5f9 (diff)
downloadrockbox-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.c18
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 @@
28void rtc_init(void) 28void 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
36int rtc_write(unsigned char address, unsigned char value) 48int rtc_write(unsigned char address, unsigned char value)