1 /*""FILE COMMENT""*******************************************************
2 * System Name	: Real-time clock API for RX62Nxx
3 * File Name		: r_pdl_rtc.h
4 * Version		: 1.02
5 * Contents		: RTC function prototypes
6 * Customer		:
7 * Model			:
8 * Order			:
9 * CPU			: RX
10 * Compiler		: RXC
11 * OS			:
12 * Programmer	:
13 * Note			:
14 ************************************************************************
15 * Copyright, 2011. Renesas Electronics Corporation
16 * and Renesas Solutions Corporation
17 ************************************************************************
18 * History		: 2011.04.08
19 *				: Ver 1.02
20 *				: CS-5 release.
21 *""FILE COMMENT END""**************************************************/
22 
23 #ifndef R_PDL_RTC_H
24 #define R_PDL_RTC_H
25 
26 #include "r_pdl_common_defs_RX62Nxx.h"
27 
28 /* Function prototypes */
29 bool R_RTC_Create(
30 	uint32_t,
31 	uint32_t,
32 	uint32_t,
33 	uint32_t,
34 	uint32_t,
35 	void *,
36 	uint8_t,
37 	void *,
38 	uint8_t
39 );
40 bool R_RTC_Control(
41 	uint32_t,
42 	uint16_t,
43 	uint32_t,
44 	uint32_t,
45 	uint32_t,
46 	uint32_t
47 );
48 bool R_RTC_Read(
49 	uint8_t *,
50 	uint32_t *,
51 	uint32_t *
52 );
53 
54 /* Alarm control */
55 #define PDL_RTC_ALARM_HOUR_DISABLE		0x00000001ul
56 #define PDL_RTC_ALARM_HOUR_ENABLE		0x00000002ul
57 #define PDL_RTC_ALARM_MINUTE_DISABLE	0x00000004ul
58 #define PDL_RTC_ALARM_MINUTE_ENABLE		0x00000008ul
59 #define PDL_RTC_ALARM_SECOND_DISABLE	0x00000010ul
60 #define PDL_RTC_ALARM_SECOND_ENABLE		0x00000020ul
61 #define PDL_RTC_ALARM_YEAR_DISABLE		0x00000040ul
62 #define PDL_RTC_ALARM_YEAR_ENABLE		0x00000080ul
63 #define PDL_RTC_ALARM_MONTH_DISABLE		0x00000100ul
64 #define PDL_RTC_ALARM_MONTH_ENABLE		0x00000200ul
65 #define PDL_RTC_ALARM_DAY_DISABLE		0x00000400ul
66 #define PDL_RTC_ALARM_DAY_ENABLE		0x00000800ul
67 #define PDL_RTC_ALARM_DOW_DISABLE		0x00001000ul
68 #define PDL_RTC_ALARM_DOW_ENABLE		0x00002000ul
69 
70 #define PDL_RTC_ALARM_TIME_DISABLE \
71 (PDL_RTC_ALARM_HOUR_DISABLE | PDL_RTC_ALARM_MINUTE_DISABLE | PDL_RTC_ALARM_SECOND_DISABLE)
72 #define PDL_RTC_ALARM_TIME_ENABLE \
73 (PDL_RTC_ALARM_HOUR_ENABLE | PDL_RTC_ALARM_MINUTE_ENABLE | PDL_RTC_ALARM_SECOND_ENABLE)
74 #define PDL_RTC_ALARM_DATE_DISABLE \
75 	(PDL_RTC_ALARM_YEAR_DISABLE | PDL_RTC_ALARM_MONTH_DISABLE | \
76 	PDL_RTC_ALARM_DAY_DISABLE | PDL_RTC_ALARM_DOW_DISABLE)
77 #define PDL_RTC_ALARM_DATE_ENABLE \
78 	(PDL_RTC_ALARM_YEAR_ENABLE | PDL_RTC_ALARM_MONTH_ENABLE | \
79 	PDL_RTC_ALARM_DAY_ENABLE | PDL_RTC_ALARM_DOW_ENABLE)
80 
81 /* Periodic interrupt selection */
82 #define PDL_RTC_PERIODIC_DISABLE		0x00004000ul
83 #define PDL_RTC_PERIODIC_256_HZ			0x00008000ul
84 #define PDL_RTC_PERIODIC_64_HZ			0x00010000ul
85 #define PDL_RTC_PERIODIC_16_HZ			0x00020000ul
86 #define PDL_RTC_PERIODIC_4_HZ			0x00040000ul
87 #define PDL_RTC_PERIODIC_2_HZ			0x00080000ul
88 #define PDL_RTC_PERIODIC_1_HZ			0x00100000ul
89 #define PDL_RTC_PERIODIC_2S				0x00200000ul
90 
91 /* Clock output control */
92 #define PDL_RTC_OUTPUT_DISABLE			0x00400000ul
93 #define PDL_RTC_OUTPUT_ENABLE			0x00800000ul
94 
95 /* Clock control */
96 #define PDL_RTC_CLOCK_STOP				0x01000000ul
97 #define PDL_RTC_CLOCK_START				0x02000000ul
98 
99 /* 30-second adjustment control */
100 #define PDL_RTC_ADJUST_START			0x04000000ul
101 
102 /* Reset control */
103 #define PDL_RTC_RESET_START				0x08000000ul
104 
105 /* Current time counter selection */
106 #define PDL_RTC_UPDATE_CURRENT_HOUR		0x0001u
107 #define PDL_RTC_UPDATE_CURRENT_MINUTE	0x0002u
108 #define PDL_RTC_UPDATE_CURRENT_SECOND	0x0004u
109 #define PDL_RTC_UPDATE_CURRENT_TIME	\
110 (PDL_RTC_UPDATE_CURRENT_HOUR | PDL_RTC_UPDATE_CURRENT_MINUTE | PDL_RTC_UPDATE_CURRENT_SECOND)
111 
112 /* Current date counter selection */
113 #define PDL_RTC_UPDATE_CURRENT_YEAR		0x0008u
114 #define PDL_RTC_UPDATE_CURRENT_MONTH	0x0010u
115 #define PDL_RTC_UPDATE_CURRENT_DAY		0x0020u
116 #define PDL_RTC_UPDATE_CURRENT_DOW		0x0040u
117 #define PDL_RTC_UPDATE_CURRENT_DATE \
118 (PDL_RTC_UPDATE_CURRENT_YEAR | PDL_RTC_UPDATE_CURRENT_MONTH | PDL_RTC_UPDATE_CURRENT_DAY | PDL_RTC_UPDATE_CURRENT_DOW)
119 
120 /* Alarm time counter selection */
121 #define PDL_RTC_UPDATE_ALARM_HOUR		0x0080u
122 #define PDL_RTC_UPDATE_ALARM_MINUTE		0x0100u
123 #define PDL_RTC_UPDATE_ALARM_SECOND		0x0200u
124 #define PDL_RTC_UPDATE_ALARM_TIME \
125 (PDL_RTC_UPDATE_ALARM_HOUR | PDL_RTC_UPDATE_ALARM_MINUTE | PDL_RTC_UPDATE_ALARM_SECOND)
126 
127 /* Alarm date counter selection */
128 #define PDL_RTC_UPDATE_ALARM_YEAR		0x0400u
129 #define PDL_RTC_UPDATE_ALARM_MONTH		0x0800u
130 #define PDL_RTC_UPDATE_ALARM_DAY		0x1000u
131 #define PDL_RTC_UPDATE_ALARM_DOW		0x2000u
132 #define PDL_RTC_UPDATE_ALARM_DATE \
133 (PDL_RTC_UPDATE_ALARM_YEAR | PDL_RTC_UPDATE_ALARM_MONTH	| PDL_RTC_UPDATE_ALARM_DAY	| PDL_RTC_UPDATE_ALARM_DOW)
134 
135 #endif
136 /* End of file */
137