/** @file
|
|
Copyright (c) 2018, Hisilicon Limited. All rights reserved.<BR>
|
Copyright (c) 2018, Linaro Limited. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
#ifndef __M41T83_REAL_TIME_CLOCK_H__
|
#define __M41T83_REAL_TIME_CLOCK_H__
|
|
#define M41T83_REGADDR_DOTSECONDS 0x00
|
#define M41T83_REGADDR_SECONDS 0x01
|
#define M41T83_REGADDR_MINUTES 0x02
|
#define M41T83_REGADDR_HOURS 0x03
|
#define M41T83_REGADDR_WEEK_DAY 0x04
|
#define M41T83_REGADDR_DAY 0x05
|
#define M41T83_REGADDR_MONTH 0x06
|
#define M41T83_REGADDR_YEAR 0x07
|
#define M41T83_REGADDR_ALARM1SEC 0x0E
|
#define M41T83_REGADDR_ALARM1MIN 0x0D
|
#define M41T83_REGADDR_ALARM1HOUR 0x0C
|
#define M41T83_REGADDR_ALARM1DATE 0x0B
|
#define M41T83_REGADDR_ALARM1MONTH 0x0A
|
|
#define M41T83_REGADDR_TIMERCONTROL 0x11
|
|
#define M41T83_REGADDR_ALARM2SEC 0x18
|
#define M41T83_REGADDR_ALARM2MIN 0x17
|
#define M41T83_REGADDR_ALARM2HOUR 0x16
|
#define M41T83_REGADDR_ALARM2DATE 0x15
|
#define M41T83_REGADDR_ALARM2MONTH 0x14
|
|
typedef union {
|
struct {
|
UINT8 TD0:1;
|
UINT8 TD1:1;
|
UINT8 RSV:3;
|
UINT8 TIE:1;
|
UINT8 TITP:1;
|
UINT8 TE:1;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_TIMERCONTROL;
|
|
typedef union {
|
struct {
|
UINT8 MicroSeconds;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_DOTSECOND;
|
|
typedef union {
|
struct{
|
UINT8 Seconds:7;
|
UINT8 ST:1;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_SECOND;
|
|
typedef union {
|
struct {
|
UINT8 Minutes:7;
|
UINT8 Rsv:1;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_MINUTE;
|
|
typedef union {
|
struct {
|
UINT8 Hours:6;
|
UINT8 CB:2;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_HOUR;
|
|
typedef union {
|
struct{
|
UINT8 Days:3;
|
UINT8 Rsv:5;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_WEEK_DAY;
|
|
typedef union {
|
struct{
|
UINT8 Days:6;
|
UINT8 Rsv:2;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_MONTH_DAY;
|
|
typedef union {
|
struct {
|
UINT8 Months:5;
|
UINT8 Rsv:3;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_MONTH;
|
|
typedef union {
|
struct {
|
UINT8 Years:8;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_YEAR;
|
|
typedef union {
|
struct {
|
UINT8 Second:7;
|
UINT8 RPT11:1;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_ALARM1SEC;
|
|
typedef union {
|
struct {
|
UINT8 Minute:7;
|
UINT8 RPT12:1;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_ALARM1MIN;
|
|
typedef union {
|
struct {
|
UINT8 Hour:6;
|
UINT8 HT:1;
|
UINT8 RPT13:1;
|
} Bits;
|
UINT8 Uint8;
|
} RTC_M41T83_ALARM1HOUR;
|
|
typedef struct {
|
RTC_M41T83_DOTSECOND DotSecond;
|
RTC_M41T83_SECOND Second;
|
RTC_M41T83_MINUTE Minute;
|
RTC_M41T83_HOUR Hour;
|
RTC_M41T83_WEEK_DAY WeekDay;
|
RTC_M41T83_MONTH_DAY Day;
|
RTC_M41T83_MONTH Month;
|
RTC_M41T83_YEAR Year;
|
} RTC_M41T83_TIME;
|
|
#endif
|