diff options
Diffstat (limited to 'firmware/drivers/rtc/rtc_s35380a.c')
-rw-r--r-- | firmware/drivers/rtc/rtc_s35380a.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/firmware/drivers/rtc/rtc_s35380a.c b/firmware/drivers/rtc/rtc_s35380a.c index 7a7bf81118..28b843a60a 100644 --- a/firmware/drivers/rtc/rtc_s35380a.c +++ b/firmware/drivers/rtc/rtc_s35380a.c | |||
@@ -40,15 +40,17 @@ | |||
40 | #define CLOCK_CORR_REG 6 | 40 | #define CLOCK_CORR_REG 6 |
41 | #define FREE_REG 7 | 41 | #define FREE_REG 7 |
42 | 42 | ||
43 | /* STATUS_REG1 flags */ | 43 | /* STATUS_REG1 flags |
44 | #define STATUS_REG1_POC 0x80 | 44 | * bits order is reversed |
45 | #define STATUS_REG1_BLD 0x40 | 45 | */ |
46 | #define STATUS_REG1_INT2 0x20 | 46 | #define STATUS_REG1_POC 0x01 |
47 | #define STATUS_REG1_INT1 0x10 | 47 | #define STATUS_REG1_BLD 0x02 |
48 | #define STATUS_REG1_SC1 0x08 | 48 | #define STATUS_REG1_INT2 0x04 |
49 | #define STATUS_REG1_SC0 0x04 | 49 | #define STATUS_REG1_INT1 0x08 |
50 | #define STATUS_REG1_H1224 0x02 | 50 | #define STATUS_REG1_SC1 0x10 |
51 | #define STATUS_REG1_RESET 0x01 | 51 | #define STATUS_REG1_SC0 0x20 |
52 | #define STATUS_REG1_H1224 0x40 | ||
53 | #define STATUS_REG1_RESET 0x80 | ||
52 | 54 | ||
53 | 55 | ||
54 | static void reverse_bits(unsigned char* v, int size) | 56 | static void reverse_bits(unsigned char* v, int size) |
@@ -76,6 +78,10 @@ void rtc_init(void) | |||
76 | status_reg |= STATUS_REG1_RESET; | 78 | status_reg |= STATUS_REG1_RESET; |
77 | i2c_write(I2C_IFACE_1, RTC_ADDR | (STATUS_REG1<<1), &status_reg, 1); | 79 | i2c_write(I2C_IFACE_1, RTC_ADDR | (STATUS_REG1<<1), &status_reg, 1); |
78 | } | 80 | } |
81 | |||
82 | /* setup 24h time format */ | ||
83 | status_reg = STATUS_REG1_H1224; | ||
84 | i2c_write(I2C_IFACE_1, RTC_ADDR | (STATUS_REG1<<1), &status_reg, 1); | ||
79 | } | 85 | } |
80 | 86 | ||
81 | int rtc_read_datetime(struct tm *tm) | 87 | int rtc_read_datetime(struct tm *tm) |