1 /**
2  * \file
3  *
4  * \brief Component description for RTT
5  *
6  * Copyright (c) 2019 Microchip Technology Inc.
7  *
8  * \license_start
9  *
10  * \page License
11  *
12  * SPDX-License-Identifier: Apache-2.0
13  *
14  * Licensed under the Apache License, Version 2.0 (the "License");
15  * you may not use this file except in compliance with the License.
16  * You may obtain a copy of the License at
17  *
18  *   http://www.apache.org/licenses/LICENSE-2.0
19  *
20  * Unless required by applicable law or agreed to in writing, software
21  * distributed under the License is distributed on an "AS IS" BASIS,
22  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23  * See the License for the specific language governing permissions and
24  * limitations under the License.
25  *
26  * \license_stop
27  *
28  */
29 
30 /* file generated from device description version 2019-01-18T21:21:15Z */
31 #ifndef _SAMV71_RTT_COMPONENT_H_
32 #define _SAMV71_RTT_COMPONENT_H_
33 #define _SAMV71_RTT_COMPONENT_         /**< \deprecated  Backward compatibility for ASF */
34 
35 /** \addtogroup SAMV_SAMV71 Real-time Timer
36  *  @{
37  */
38 /* ========================================================================== */
39 /**  SOFTWARE API DEFINITION FOR RTT */
40 /* ========================================================================== */
41 #ifndef COMPONENT_TYPEDEF_STYLE
42   #define COMPONENT_TYPEDEF_STYLE 'R'  /**< Defines default style of typedefs for the component header files ('R' = RFO, 'N' = NTO)*/
43 #endif
44 
45 #define RTT_6081                       /**< (RTT) Module ID */
46 #define REV_RTT M                      /**< (RTT) Module revision */
47 
48 /* -------- RTT_MR : (RTT Offset: 0x00) (R/W 32) Mode Register -------- */
49 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
50 #if COMPONENT_TYPEDEF_STYLE == 'N'
51 typedef union {
52   struct {
53     uint32_t RTPRES:16;                 /**< bit:  0..15  Real-time Timer Prescaler Value          */
54     uint32_t ALMIEN:1;                  /**< bit:     16  Alarm Interrupt Enable                   */
55     uint32_t RTTINCIEN:1;               /**< bit:     17  Real-time Timer Increment Interrupt Enable */
56     uint32_t RTTRST:1;                  /**< bit:     18  Real-time Timer Restart                  */
57     uint32_t :1;                        /**< bit:     19  Reserved */
58     uint32_t RTTDIS:1;                  /**< bit:     20  Real-time Timer Disable                  */
59     uint32_t :3;                        /**< bit: 21..23  Reserved */
60     uint32_t RTC1HZ:1;                  /**< bit:     24  Real-Time Clock 1Hz Clock Selection      */
61     uint32_t :7;                        /**< bit: 25..31  Reserved */
62   } bit;                                /**< Structure used for bit  access */
63   uint32_t reg;                         /**< Type used for register access */
64 } RTT_MR_Type;
65 #endif
66 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
67 
68 #define RTT_MR_OFFSET                       (0x00)                                        /**<  (RTT_MR) Mode Register  Offset */
69 
70 #define RTT_MR_RTPRES_Pos                   0                                              /**< (RTT_MR) Real-time Timer Prescaler Value Position */
71 #define RTT_MR_RTPRES_Msk                   (_U_(0xFFFF) << RTT_MR_RTPRES_Pos)             /**< (RTT_MR) Real-time Timer Prescaler Value Mask */
72 #define RTT_MR_RTPRES(value)                (RTT_MR_RTPRES_Msk & ((value) << RTT_MR_RTPRES_Pos))
73 #define RTT_MR_ALMIEN_Pos                   16                                             /**< (RTT_MR) Alarm Interrupt Enable Position */
74 #define RTT_MR_ALMIEN_Msk                   (_U_(0x1) << RTT_MR_ALMIEN_Pos)                /**< (RTT_MR) Alarm Interrupt Enable Mask */
75 #define RTT_MR_ALMIEN                       RTT_MR_ALMIEN_Msk                              /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_MR_ALMIEN_Msk instead */
76 #define RTT_MR_RTTINCIEN_Pos                17                                             /**< (RTT_MR) Real-time Timer Increment Interrupt Enable Position */
77 #define RTT_MR_RTTINCIEN_Msk                (_U_(0x1) << RTT_MR_RTTINCIEN_Pos)             /**< (RTT_MR) Real-time Timer Increment Interrupt Enable Mask */
78 #define RTT_MR_RTTINCIEN                    RTT_MR_RTTINCIEN_Msk                           /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_MR_RTTINCIEN_Msk instead */
79 #define RTT_MR_RTTRST_Pos                   18                                             /**< (RTT_MR) Real-time Timer Restart Position */
80 #define RTT_MR_RTTRST_Msk                   (_U_(0x1) << RTT_MR_RTTRST_Pos)                /**< (RTT_MR) Real-time Timer Restart Mask */
81 #define RTT_MR_RTTRST                       RTT_MR_RTTRST_Msk                              /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_MR_RTTRST_Msk instead */
82 #define RTT_MR_RTTDIS_Pos                   20                                             /**< (RTT_MR) Real-time Timer Disable Position */
83 #define RTT_MR_RTTDIS_Msk                   (_U_(0x1) << RTT_MR_RTTDIS_Pos)                /**< (RTT_MR) Real-time Timer Disable Mask */
84 #define RTT_MR_RTTDIS                       RTT_MR_RTTDIS_Msk                              /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_MR_RTTDIS_Msk instead */
85 #define RTT_MR_RTC1HZ_Pos                   24                                             /**< (RTT_MR) Real-Time Clock 1Hz Clock Selection Position */
86 #define RTT_MR_RTC1HZ_Msk                   (_U_(0x1) << RTT_MR_RTC1HZ_Pos)                /**< (RTT_MR) Real-Time Clock 1Hz Clock Selection Mask */
87 #define RTT_MR_RTC1HZ                       RTT_MR_RTC1HZ_Msk                              /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_MR_RTC1HZ_Msk instead */
88 #define RTT_MR_MASK                         _U_(0x117FFFF)                                 /**< \deprecated (RTT_MR) Register MASK  (Use RTT_MR_Msk instead)  */
89 #define RTT_MR_Msk                          _U_(0x117FFFF)                                 /**< (RTT_MR) Register Mask  */
90 
91 
92 /* -------- RTT_AR : (RTT Offset: 0x04) (R/W 32) Alarm Register -------- */
93 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
94 #if COMPONENT_TYPEDEF_STYLE == 'N'
95 typedef union {
96   struct {
97     uint32_t ALMV:32;                   /**< bit:  0..31  Alarm Value                              */
98   } bit;                                /**< Structure used for bit  access */
99   uint32_t reg;                         /**< Type used for register access */
100 } RTT_AR_Type;
101 #endif
102 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
103 
104 #define RTT_AR_OFFSET                       (0x04)                                        /**<  (RTT_AR) Alarm Register  Offset */
105 
106 #define RTT_AR_ALMV_Pos                     0                                              /**< (RTT_AR) Alarm Value Position */
107 #define RTT_AR_ALMV_Msk                     (_U_(0xFFFFFFFF) << RTT_AR_ALMV_Pos)           /**< (RTT_AR) Alarm Value Mask */
108 #define RTT_AR_ALMV(value)                  (RTT_AR_ALMV_Msk & ((value) << RTT_AR_ALMV_Pos))
109 #define RTT_AR_MASK                         _U_(0xFFFFFFFF)                                /**< \deprecated (RTT_AR) Register MASK  (Use RTT_AR_Msk instead)  */
110 #define RTT_AR_Msk                          _U_(0xFFFFFFFF)                                /**< (RTT_AR) Register Mask  */
111 
112 
113 /* -------- RTT_VR : (RTT Offset: 0x08) (R/ 32) Value Register -------- */
114 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
115 #if COMPONENT_TYPEDEF_STYLE == 'N'
116 typedef union {
117   struct {
118     uint32_t CRTV:32;                   /**< bit:  0..31  Current Real-time Value                  */
119   } bit;                                /**< Structure used for bit  access */
120   uint32_t reg;                         /**< Type used for register access */
121 } RTT_VR_Type;
122 #endif
123 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
124 
125 #define RTT_VR_OFFSET                       (0x08)                                        /**<  (RTT_VR) Value Register  Offset */
126 
127 #define RTT_VR_CRTV_Pos                     0                                              /**< (RTT_VR) Current Real-time Value Position */
128 #define RTT_VR_CRTV_Msk                     (_U_(0xFFFFFFFF) << RTT_VR_CRTV_Pos)           /**< (RTT_VR) Current Real-time Value Mask */
129 #define RTT_VR_CRTV(value)                  (RTT_VR_CRTV_Msk & ((value) << RTT_VR_CRTV_Pos))
130 #define RTT_VR_MASK                         _U_(0xFFFFFFFF)                                /**< \deprecated (RTT_VR) Register MASK  (Use RTT_VR_Msk instead)  */
131 #define RTT_VR_Msk                          _U_(0xFFFFFFFF)                                /**< (RTT_VR) Register Mask  */
132 
133 
134 /* -------- RTT_SR : (RTT Offset: 0x0c) (R/ 32) Status Register -------- */
135 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
136 #if COMPONENT_TYPEDEF_STYLE == 'N'
137 typedef union {
138   struct {
139     uint32_t ALMS:1;                    /**< bit:      0  Real-time Alarm Status (cleared on read) */
140     uint32_t RTTINC:1;                  /**< bit:      1  Prescaler Roll-over Status (cleared on read) */
141     uint32_t :30;                       /**< bit:  2..31  Reserved */
142   } bit;                                /**< Structure used for bit  access */
143   uint32_t reg;                         /**< Type used for register access */
144 } RTT_SR_Type;
145 #endif
146 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
147 
148 #define RTT_SR_OFFSET                       (0x0C)                                        /**<  (RTT_SR) Status Register  Offset */
149 
150 #define RTT_SR_ALMS_Pos                     0                                              /**< (RTT_SR) Real-time Alarm Status (cleared on read) Position */
151 #define RTT_SR_ALMS_Msk                     (_U_(0x1) << RTT_SR_ALMS_Pos)                  /**< (RTT_SR) Real-time Alarm Status (cleared on read) Mask */
152 #define RTT_SR_ALMS                         RTT_SR_ALMS_Msk                                /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_SR_ALMS_Msk instead */
153 #define RTT_SR_RTTINC_Pos                   1                                              /**< (RTT_SR) Prescaler Roll-over Status (cleared on read) Position */
154 #define RTT_SR_RTTINC_Msk                   (_U_(0x1) << RTT_SR_RTTINC_Pos)                /**< (RTT_SR) Prescaler Roll-over Status (cleared on read) Mask */
155 #define RTT_SR_RTTINC                       RTT_SR_RTTINC_Msk                              /**< \deprecated Old style mask definition for 1 bit bitfield. Use RTT_SR_RTTINC_Msk instead */
156 #define RTT_SR_MASK                         _U_(0x03)                                      /**< \deprecated (RTT_SR) Register MASK  (Use RTT_SR_Msk instead)  */
157 #define RTT_SR_Msk                          _U_(0x03)                                      /**< (RTT_SR) Register Mask  */
158 
159 
160 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
161 #if COMPONENT_TYPEDEF_STYLE == 'R'
162 /** \brief RTT hardware registers */
163 typedef struct {
164   __IO uint32_t RTT_MR;         /**< (RTT Offset: 0x00) Mode Register */
165   __IO uint32_t RTT_AR;         /**< (RTT Offset: 0x04) Alarm Register */
166   __I  uint32_t RTT_VR;         /**< (RTT Offset: 0x08) Value Register */
167   __I  uint32_t RTT_SR;         /**< (RTT Offset: 0x0C) Status Register */
168 } Rtt;
169 
170 #elif COMPONENT_TYPEDEF_STYLE == 'N'
171 /** \brief RTT hardware registers */
172 typedef struct {
173   __IO RTT_MR_Type                    RTT_MR;         /**< Offset: 0x00 (R/W  32) Mode Register */
174   __IO RTT_AR_Type                    RTT_AR;         /**< Offset: 0x04 (R/W  32) Alarm Register */
175   __I  RTT_VR_Type                    RTT_VR;         /**< Offset: 0x08 (R/   32) Value Register */
176   __I  RTT_SR_Type                    RTT_SR;         /**< Offset: 0x0C (R/   32) Status Register */
177 } Rtt;
178 
179 #else /* COMPONENT_TYPEDEF_STYLE */
180 #error Unknown component typedef style
181 #endif /* COMPONENT_TYPEDEF_STYLE */
182 
183 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
184 /** @}  end of Real-time Timer */
185 
186 #endif /* _SAMV71_RTT_COMPONENT_H_ */
187