123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /** @file
- *
- * Copyright (c) 2011, ARM Limited. All rights reserved.
- * Copyright (c) 2015, Hisilicon Limited. All rights reserved.
- * Copyright (c) 2015, Linaro Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-2-Clause-Patent
- *
- * Based on the files under ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
- **/
- #ifndef __DS3231_REAL_TIME_CLOCK_H__
- #define __DS3231_REAL_TIME_CLOCK_H__
- #define DS3231_REGADDR_SECONDS 0x00
- #define DS3231_REGADDR_MIUTES 0x01
- #define DS3231_REGADDR_HOURS 0x02
- #define DS3231_REGADDR_DAY 0x03
- #define DS3231_REGADDR_DATE 0x04
- #define DS3231_REGADDR_MONTH 0x05
- #define DS3231_REGADDR_YEAR 0x06
- #define DS3231_REGADDR_ALARM1SEC 0x07
- #define DS3231_REGADDR_ALARM1MIN 0x08
- #define DS3231_REGADDR_ALARM1HOUR 0x09
- #define DS3231_REGADDR_ALARM1DAY 0x0A
- #define DS3231_REGADDR_ALARM2MIN 0x0B
- #define DS3231_REGADDR_ALARM2HOUR 0x0C
- #define DS3231_REGADDR_ALARM2DAY 0x0D
- #define DS3231_REGADDR_CONTROL 0x0E
- #define DS3231_REGADDR_STATUS 0x0F
- #define DS3231_REGADDR_AGOFFSET 0x10
- #define DS3231_REGADDR_TEMPMSB 0x11
- #define DS3231_REGADDR_TEMPLSB 0x12
- typedef union {
- struct{
- UINT8 A1IE:1;
- UINT8 A2IE:1;
- UINT8 INTCN:1;
- UINT8 RSV:2;
- UINT8 CONV:1;
- UINT8 BBSQW:1;
- UINT8 EOSC_N:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_CONTROL;
- typedef union {
- struct{
- UINT8 A1F:1;
- UINT8 A2F:1;
- UINT8 BSY:1;
- UINT8 EN32KHZ:2;
- UINT8 Rsv:3;
- UINT8 OSF:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_STATUS;
- typedef union {
- struct{
- UINT8 Data:7;
- UINT8 Sign:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_AGOFFSET;
- typedef union {
- struct{
- UINT8 Data:7;
- UINT8 Sign:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_TEMPMSB;
- typedef union {
- struct{
- UINT8 Rsv:6;
- UINT8 Data:2;
- }bits;
- UINT8 u8;
- }RTC_DS3231_TEMPLSB;
- typedef union {
- struct{
- UINT8 Seconds:4;
- UINT8 Seconds10:3;
- UINT8 Rsv:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_SECONDS;
- typedef union {
- struct{
- UINT8 Minutes:4;
- UINT8 Minutes10:3;
- UINT8 Rsv:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_MINUTES;
- typedef union {
- struct{
- UINT8 Hour:4;
- UINT8 Hours10:1;
- UINT8 PM_20Hours:1;
- UINT8 Hour24_n:1;
- UINT8 Rsv:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_HOURS;
- typedef union {
- struct{
- UINT8 Day:3;
- UINT8 Rsv:5;
- }bits;
- UINT8 u8;
- }RTC_DS3231_DAY;
- typedef union {
- struct{
- UINT8 Month:4;
- UINT8 Month10:1;
- UINT8 Rsv:2;
- UINT8 Century:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_MONTH;
- typedef union {
- struct{
- UINT8 Year:4;
- UINT8 Year10:4;
- }bits;
- UINT8 u8;
- }RTC_DS3231_YEAR;
- typedef union {
- struct{
- UINT8 Seconds:4;
- UINT8 Seconds10:3;
- UINT8 A1M1:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_ALARM1SEC;
- typedef union {
- struct{
- UINT8 Minutes:4;
- UINT8 Minutes10:3;
- UINT8 A1M2:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_ALARM1MIN;
- typedef union {
- struct{
- UINT8 Hour:4;
- UINT8 Hours10:1;
- UINT8 PM_20Hours:1;
- UINT8 Hours24:1;
- UINT8 A1M3:1;
- }bits;
- UINT8 u8;
- }RTC_DS3231_ALARM1HOUR;
- #endif
|