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 | |
| parent | a25d7ce1263b94c2f897032c74ffc0ae1ab8e5f9 (diff) | |
| download | rockbox-50f1ea16c5267ed866f0ed27a15a15f86af86c44.zip rockbox-50f1ea16c5267ed866f0ed27a15a15f86af86c44.tar.gz rockbox-50f1ea16c5267ed866f0ed27a15a15f86af86c44.tar.bz2 rockbox-50f1ea16c5267ed866f0ed27a15a15f86af86c44.tar.xz | |
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
| -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 2882c97..c8e19aa 100644 --- a/firmware/drivers/rtc.c +++ b/firmware/drivers/rtc.c @@ -28,9 +28,21 @@ void rtc_init(void) { unsigned char data; - data = (unsigned int)rtc_read(0x0c); - data &= 0xbf; - rtc_write(0x0c,data); + rtc_write(0x13, 0x10); /* 32 kHz square wave */ + + /* Clear the Stop bit if it is set */ + data = rtc_read(0x01); + if(data & 0x80) + rtc_write(0x01, 0x00); + + /* Clear the HT bit if it is set */ + data = rtc_read(0x0c); + + if(data & 0x40) + { + data &= ~0x40; + rtc_write(0x0c,data); + } } int rtc_write(unsigned char address, unsigned char value) |