From 8322634459ac602d9fbcca30e96b24ff098acb3c Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Wed, 3 May 2017 14:48:15 +0100 Subject: Platform,Silicon: Import Hisilicon D02,D03,D05 and HiKey Imported from commit efd798c1eb of https://git.linaro.org/uefi/OpenPlatformPkg.git Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm --- .../DS3231RealTimeClockLib/DS3231RealTimeClock.h | 178 +++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 Platform/Hisilicon/D03/Library/DS3231RealTimeClockLib/DS3231RealTimeClock.h (limited to 'Platform/Hisilicon/D03/Library/DS3231RealTimeClockLib/DS3231RealTimeClock.h') diff --git a/Platform/Hisilicon/D03/Library/DS3231RealTimeClockLib/DS3231RealTimeClock.h b/Platform/Hisilicon/D03/Library/DS3231RealTimeClockLib/DS3231RealTimeClock.h new file mode 100644 index 0000000000..d1e6c41dd7 --- /dev/null +++ b/Platform/Hisilicon/D03/Library/DS3231RealTimeClockLib/DS3231RealTimeClock.h @@ -0,0 +1,178 @@ +/** @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. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +* 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 -- cgit v1.2.3