RV32 SoC DS UG
High-Perf RV32 SoC DS UG
RV64 SoC DS UG API and Examples
Embedded IDE UG
Loading...
Searching...
No Matches
rtc.h
Go to the documentation of this file.
1
2// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
3// Full license header bsp/efinix/EfxSapphireSocRV64/include/LICENSE.MD
5
6#ifndef SRC_RTC_H_
7#define SRC_RTC_H_
8
19
20#include "i2c/i2c.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
71
72
73/* ========================================================================== */
74/* SUB-GROUP : Data Types */
75/* ========================================================================== */
76
83
89
90
94 typedef enum {
95 RTC_OK = 0,
96 RTC_ERR = 1,
100 // End of RTC_ENUM group
102
103
104/* ========================================================================== */
105/* SUB-GROUP : DATA STRUCTS */
106/* ========================================================================== */
113
116
132
144
158 // End of RTC_Types group
160
161/* ========================================================================== */
162/* SUB-GROUP: FUNCTIONS */
163/* ========================================================================== */
164
194 u8 convert_hour_register(u8 old_reg_val, u8 to_12h);
205 static inline u8 bcd2bin(u8 val) { return (val & 0x0F) + ((val >> 4) * 10); }
212 static inline u8 bin2bcd(u8 val) { return ((val / 10) << 4) + (val % 10); } // End of RTC Internal Functions group
214
223 extern const char* Day_ordinal [];
228 extern const char* const DayStrings[];
233 extern const char* const MonthStrings[];
238 extern const char* const meridiem[];
244 extern const char* get_ordinal(u8 day); // End of RTC Public API - String Based Functions group
246 // End of RTC_Funcs group
248
249/* ========================================================================== */
250/* SUB-GROUP: RTC CONFIGURATION */
251/* ========================================================================== */
252
254 #include "rtc/rtc_config.h"
255
256#ifdef __cplusplus
257
258}
259#endif // End of MAIN RTC Group
261
262#endif /* SRC_RTC_H_ */
rtc_status_t
RTC Status List.
Definition rtc.h:94
@ RTC_SKIP
Skip the function.
Definition rtc.h:98
@ RTC_ERR
Failed to retrieve/write value.
Definition rtc.h:96
@ RTC_OK
Successful Operation.
Definition rtc.h:95
@ RTC_USER_ERR
User provide wrong input.
Definition rtc.h:97
const char *const DayStrings[]
Get string representations for Sunday,Monday ,etc..
Definition rtc.c:32
rtc_status_t rtc_enableErrorInterrupt(rtc_instance_t *rtc)
Wrapper: Enable RTC error interrupt.
Definition rtc.c:89
const char *const meridiem[]
Get string representations for meridiem (AM/PM).
Definition rtc.c:62
u8 convert_hour_register(u8 old_reg_val, u8 to_12h)
Convert hour register between 12-hour and 24-hour format.
Definition rtc.c:96
const char * get_ordinal(u8 day)
Get ordinal suffix for a given day.
Definition rtc.c:69
const char *const MonthStrings[]
Get string representations for months.
Definition rtc.c:44
rtc_status_t rtc_applyConfig(rtc_instance_t *rtc)
Wrapper: Apply I2C + RTC configuration.
Definition rtc.c:80
const char * Day_ordinal[]
Get ordinal suffix for a given day.
Definition rtc.c:24
struct rtc_instance rtc_instance_t
Forward declaration of RTC instance.
Definition rtc.h:115
I2C driver API definitions.
RTC Configuration and Driver Selection.
I2C instance. Holds the software registers and hardware pointer.
Definition i2c.h:290
RTC API structure.
Definition rtc.h:137
rtc_status_t(* getTime)(rtc_instance_t *rtc)
Get time function pointer.
Definition rtc.h:140
rtc_status_t(* setTime)(rtc_instance_t *rtc)
Set time function pointer.
Definition rtc.h:141
rtc_status_t(* applyConfig)(rtc_instance_t *rtc)
Apply i2c config , user can call via rtc_applyConfig as well.
Definition rtc.h:138
rtc_status_t(* setTimeSystem)(rtc_instance_t *rtc, u8 mode)
Set time system function pointer.
Definition rtc.h:142
rtc_status_t(* enableErrorInterrupt)(rtc_instance_t *rtc)
Enable error interrupt function pointer, user can call via rtc_enableErrorInterrupt as well.
Definition rtc.h:139
RTC time data structure.
Definition rtc.h:121
u8 hours
Hours (0-23 or 1-12).
Definition rtc.h:124
u8 timesystem
Time System (0 = 24-hour, 1 = 12-hour).
Definition rtc.h:126
u8 days
Day of the month (1-31).
Definition rtc.h:128
u8 minutes
Minutes (0-59).
Definition rtc.h:123
u8 years
Year (0-99).
Definition rtc.h:130
u8 seconds
Seconds (0-59).
Definition rtc.h:122
u8 PM
PM Indicator for 12-hour format (0 = AM, 1 = PM).
Definition rtc.h:125
u8 months
Month (1-12).
Definition rtc.h:129
u8 weekdays
Day of the week (1-7).
Definition rtc.h:127
RTC instance structure.
Definition rtc.h:153
rtc_data_t current_time
Current time data.
Definition rtc.h:156
const rtc_api_t * drv
Pointer to RTC API structure.
Definition rtc.h:155
i2c_instance_t * inst
Pointer to I2C instance.
Definition rtc.h:154
uint8_t u8
Definition type.h:30