blob: 65f620b2731703b1af592d60394e1a74dc925b05 [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/*******************************************************************************
2 * Copyright (C) 2010, ZTE Corporation.
3 *
4 * File Name: drvs_pmic_rtc.h
5 * File Mark:
6 * Description:
7 * Others:
8 * Version: V1.0
9 * Author: yuxiang
10 * Date: 2016-01-27
11 * History 1:
12 * Date:
13 * Version:
14 * Author:
15 * Modification:
16 * History 2:
17 ********************************************************************************/
18
19#ifndef _DRVS_PMIC_RTC_H
20#define _DRVS_PMIC_RTC_H
21
22/****************************************************************************
23* Include files
24****************************************************************************/
25#include "drvs_io_rtc.h"
26
27/****************************************************************************
28* Macros
29****************************************************************************/
30#if defined(_USE_PMIC_ZX234290)
31
32#define ZX234290_RTC_ALARM_INT_EN_LSH (1)
33#define ZX234290_RTC_ALARM_INT_EN_WID (1)
34
35#define ZX234290_RTC_TIMER_INT_EN_LSH (0)
36#define ZX234290_RTC_TIMER_INT_EN_WID (1)
37
38
39 /*RTC TIME SECONDS MIN HOU DAY MON YEAR WEEKDAY*/
40#define ZX234290_RTC_TIME_SECONDS_LSH (0)
41#define ZX234290_RTC_TIME_SECONDS_WID (7)
42
43#define ZX234290_RTC_TIME_MINUTES_LSH (0)
44#define ZX234290_RTC_TIME_MINUTES_WID (7)
45
46#define ZX234290_RTC_TIME_HOURS_LSH (0)
47#define ZX234290_RTC_TIME_HOURS_WID (6)
48
49#define ZX234290_RTC_TIME_DAYS_LSH (0)
50#define ZX234290_RTC_TIME_DAYS_WID (6)
51
52#define ZX234290_RTC_TIME_MONTHS_LSH (0)
53#define ZX234290_RTC_TIME_MONTHS_WID (5)
54#define ZX234290_RTC_TIME_CENTURY_LSH (7)
55#define ZX234290_RTC_TIME_CENTURY_WID (1)
56
57#define ZX234290_RTC_TIME_YEAR_LSH (0)
58#define ZX234290_RTC_TIME_YEAR_WID (7)
59
60#define ZX234290_RTC_TIME_WEEKDAY_LSH (0)
61#define ZX234290_RTC_TIME_WEEKDAY_WID (3)
62
63 /*RTC ALARM MIN HOU DAY WEEKDAY*/
64#define ZX234290_RTC_AlARM_MINUTES_LSH (0)
65#define ZX234290_RTC_AlARM_MINUTES_WID (7)
66
67#define ZX234290_RTC_AlARM_HOURS_LSH (0)
68#define ZX234290_RTC_AlARM_HOURS_WID (6)
69
70#define ZX234290_RTC_AlARM_DAYS_LSH (0)
71#define ZX234290_RTC_AlARM_DAYS_WID (6)
72
73#define ZX234290_RTC_AlARM_WEEKDAY_LSH (0)
74#define ZX234290_RTC_AlARM_WEEKDAY_WID (3)
75
76#define ZX234290_RTC_AlARM_SECOND_LSH (0)
77#define ZX234290_RTC_AlARM_SECOND_WID (7)
78 /*RTC ALARM Enable*/
79#define ZX234290_RTC_AlARM_ACTIVATED_LSH (7)
80#define ZX234290_RTC_AlARM_ACTIVATED_WID (1)
81
82 /* RTC TIMER ENABLE */
83#define ZX234290_RTC_TIMER_EN_LSH (7)
84#define ZX234290_RTC_TIMER_EN_WID (1)
85
86#define ZX234290_RTC_TIMER_TD_LSH (0)
87#define ZX234290_RTC_TIMER_TD_WID (2)
88
89#define ZX234290_RTC_TIMER_CNT_LSH (0)
90#define ZX234290_RTC_TIMER_CNT_WID (8)
91
92 /*RTC MASK IRQ */
93#define ZX234290_RTC_MASK_ALARM_LSH (0)
94#define ZX234290_RTC_MASK_ALARM_WID (1)
95
96#define ZX234290_RTC_MASK_HOUR_LSH (4)
97#define ZX234290_RTC_MASK_HOUR_WID (1)
98
99#define ZX234290_RTC_MASK_MIN_LSH (3)
100#define ZX234290_RTC_MASK_MIN_WID (1)
101 /*AF/TF alarm flag/timer flag*/
102#define ZX234290_RTC_AF_LSH (3)
103#define ZX234290_RTC_AF_WID (1)
104
105#define ZX234290_RTC_TF_LSH (2)
106#define ZX234290_RTC_TF_WID (1)
107
108#define ZX234290_BCD2DEC(var) ((((var&0xF0)>>4)*10)+(var&0x0F))
109#define ZX234290_DEC2BCD(var) (((var/10)<<4)+(var%10))
110
111
112typedef enum _T_ZDrvZx234290_TimerCount
113{
114 TIMER_COUNT_4096 = 0,
115 TIMER_COUNT_64 = 1, /* 64 DEFAULT */
116 TIMER_COUNT_1 = 2, /* 1 */
117 TIMER_COUNT_1_60 = 3, /* 1/60 */
118
119 TIMER_COUNT_MAX
120}T_ZDrvZx234290_TimerCount;
121
122
123/**************************************************************************
124 * Types *
125 **************************************************************************/
126
127typedef struct
128{
129 UINT8 mday; /* day of the month - [1,31] */
130 UINT8 mon; /* months - [01,12] */
131 UINT8 wday; /*days in a week - [1,7] NULL when input*/
132 UINT16 year; /* years - [0000,9999] */
133}T_ZDrvRtc_Date;
134
135typedef struct
136{
137 BOOL PM_flag; /* if 12 hour flag = TRUE TRUE->PM ; FALSE->AM */
138 BOOL mode_12_hour; /* TRUE->12 hour mode ; FALSE-> 24 hour mode */ /*20080227*/
139 UINT8 sec; /* seconds after the minute - [0,59] */
140 UINT8 min; /* minutes after the hour - [0,59] */
141 UINT8 hour; /* hours after the midnight - [0,23] */
142}T_ZDrvRtc_Time;
143
144typedef enum
145{
146 MON = 1,
147 TUES,
148 WED,
149 THURS,
150 FRI,
151 SAT,
152 SUN,
153
154 MAX_RTC_WEEKDAY
155} T_ZDrvRtc_WeekDay;
156
157typedef enum _T_ZDrvRtc_TimerUnit
158{
159 RTC_TIMER_COUNT_4096 = 0, /* 1/4096 s*/
160 RTC_TIMER_COUNT_64 = 1, /* 64 DEFAULT ,1/64 s*/
161 RTC_TIMER_COUNT_1 = 2, /* 1 ,s*/
162 RTC_TIMER_COUNT_1_60 = 3, /* 1/60 ,min*/
163
164 RTC_TIMER_COUNT_MAX
165}T_ZDrvRtc_TimerUnit;
166
167typedef struct _T_ZDrvRtc_Timer
168{
169 UINT8 iCount;
170 T_ZDrvRtc_TimerUnit unit;
171}T_ZDrvRtc_Timer;
172
173
174/*for appstart.c*/
175
176typedef enum
177{
178 RTC_12_HOUR_MODE,
179 RTC_24_HOUR_MODE,
180
181 MAX_RTC_HOUR_MODE
182} T_ZDrvRtc_HourMode;
183
184#endif
185
186/****************************************************************************
187* Types
188****************************************************************************/
189
190/****************************************************************************
191* Constants
192****************************************************************************/
193
194/****************************************************************************
195* Global Variables
196****************************************************************************/
197
198/****************************************************************************
199* Function Prototypes
200****************************************************************************/
201
202#endif/*_DRVS_PMIC_RTC_H*/
203