1 /*
2  * Copyright (c) 2025 Realtek, SIBG-SD7
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_SOC_REALTEK_RTS5912_REG_RTC_H
8 #define ZEPHYR_SOC_REALTEK_RTS5912_REG_RTC_H
9 
10 #include <zephyr/kernel.h>
11 
12 /*
13  * @brief RTC Controller (RTC)
14  */
15 
16 typedef struct {
17 	volatile uint8_t SEC;
18 	volatile uint8_t SECALARM;
19 	volatile uint8_t MIN;
20 	volatile uint8_t MINALARM;
21 	volatile uint8_t HR;
22 	volatile uint8_t HRALARM;
23 	volatile uint8_t DAYWEEK;
24 	volatile uint8_t DAYMONTH;
25 	volatile uint8_t MONTH;
26 	volatile uint8_t YEAR;
27 	volatile uint8_t CTRL0;
28 	volatile uint8_t CTRL1;
29 	volatile uint8_t CTRL2;
30 	volatile uint8_t DAYWEEKALARM;
31 	volatile uint8_t DAYMONTHALARM;
32 	volatile const uint8_t RESERVED;
33 	volatile const uint32_t RESERVED1[2];
34 	volatile uint32_t DLSFW;
35 	volatile uint32_t DLSBW;
36 	volatile uint32_t WEEK;
37 } RTC_Type;
38 
39 /* HR */
40 #define RTC_HR_VAL_Pos         (0UL)
41 #define RTC_HR_VAL_Msk         GENMASK(5, 0)
42 #define RTC_HR_AMPM_Pos        (7UL)
43 #define RTC_HR_AMPM_Msk        BIT(RTC_HR_AMPM_Pos)
44 /* DAYWEEK */
45 #define RTC_DAYWEEK_Pos        (0UL)
46 #define RTC_DAYWEEK_Msk        GENMASK(3, 0)
47 /* DAYMONTH */
48 #define RTC_DAYMONTH_Pos       (0UL)
49 #define RTC_DAYMONTH_Msk       GENMASK(5, 0)
50 /* CTRL0 */
51 #define RTC_CTRL0_DIVCTL_Pos   (4UL)
52 #define RTC_CTRL0_DIVCTL_Msk   GENMASK(6, 4)
53 /* CTRL1 */
54 #define RTC_CTRL1_HRMODE_Pos   (1UL)
55 #define RTC_CTRL1_HRMODE_Msk   BIT(RTC_CTRL1_HRMODE_Pos)
56 #define RTC_CTRL1_DATEMODE_Pos (2UL)
57 #define RTC_CTRL1_DATEMODE_Msk BIT(RTC_CTRL1_DATEMODE_Pos)
58 #define RTC_CTRL1_SETMODE_Pos  (7UL)
59 #define RTC_CTRL1_SETMODE_Msk  BIT(RTC_CTRL1_SETMODE_Pos)
60 /* WEEK */
61 #define RTC_WEEK_NUM_Pos       (0UL)
62 #define RTC_WEEK_NUM_Msk       GENMASK(7, 0)
63 
64 #endif /* ZEPHYR_SOC_REALTEK_RTS5912_REG_RTC_H */
65