diff options
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) |