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