The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 161:aa5281ff4a02 1 /*
AnnaBridge 170:e95d10626187 2 * The Clear BSD License
AnnaBridge 170:e95d10626187 3 * Copyright (c) 2016, Freescale Semiconductor, Inc.
AnnaBridge 170:e95d10626187 4 * Copyright (c) 2017, NXP
AnnaBridge 161:aa5281ff4a02 5 * All rights reserved.
AnnaBridge 170:e95d10626187 6 *
AnnaBridge 161:aa5281ff4a02 7 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 170:e95d10626187 8 * are permitted (subject to the limitations in the disclaimer below) provided
AnnaBridge 170:e95d10626187 9 * that the following conditions are met:
AnnaBridge 161:aa5281ff4a02 10 *
AnnaBridge 161:aa5281ff4a02 11 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 161:aa5281ff4a02 12 * of conditions and the following disclaimer.
AnnaBridge 161:aa5281ff4a02 13 *
AnnaBridge 161:aa5281ff4a02 14 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 161:aa5281ff4a02 15 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 161:aa5281ff4a02 16 * other materials provided with the distribution.
AnnaBridge 161:aa5281ff4a02 17 *
AnnaBridge 170:e95d10626187 18 * o Neither the name of the copyright holder nor the names of its
AnnaBridge 161:aa5281ff4a02 19 * contributors may be used to endorse or promote products derived from this
AnnaBridge 161:aa5281ff4a02 20 * software without specific prior written permission.
AnnaBridge 161:aa5281ff4a02 21 *
AnnaBridge 170:e95d10626187 22 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
AnnaBridge 161:aa5281ff4a02 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 161:aa5281ff4a02 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 161:aa5281ff4a02 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 161:aa5281ff4a02 26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 161:aa5281ff4a02 27 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 161:aa5281ff4a02 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 161:aa5281ff4a02 29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 161:aa5281ff4a02 30 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 161:aa5281ff4a02 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 161:aa5281ff4a02 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 161:aa5281ff4a02 33 */
AnnaBridge 161:aa5281ff4a02 34
AnnaBridge 161:aa5281ff4a02 35 #ifndef _FSL_SNVS_HP_H_
AnnaBridge 161:aa5281ff4a02 36 #define _FSL_SNVS_HP_H_
AnnaBridge 161:aa5281ff4a02 37
AnnaBridge 161:aa5281ff4a02 38 #include "fsl_common.h"
AnnaBridge 161:aa5281ff4a02 39
AnnaBridge 161:aa5281ff4a02 40 /*!
AnnaBridge 161:aa5281ff4a02 41 * @addtogroup snvs_hp
AnnaBridge 161:aa5281ff4a02 42 * @{
AnnaBridge 161:aa5281ff4a02 43 */
AnnaBridge 161:aa5281ff4a02 44
AnnaBridge 161:aa5281ff4a02 45 /*******************************************************************************
AnnaBridge 161:aa5281ff4a02 46 * Definitions
AnnaBridge 161:aa5281ff4a02 47 ******************************************************************************/
AnnaBridge 161:aa5281ff4a02 48
AnnaBridge 161:aa5281ff4a02 49 /*! @name Driver version */
AnnaBridge 161:aa5281ff4a02 50 /*@{*/
AnnaBridge 161:aa5281ff4a02 51 #define FSL_SNVS_HP_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) /*!< Version 2.0.0 */
AnnaBridge 161:aa5281ff4a02 52 /*@}*/
AnnaBridge 161:aa5281ff4a02 53
AnnaBridge 161:aa5281ff4a02 54 /*! @brief List of SNVS interrupts */
AnnaBridge 170:e95d10626187 55 typedef enum _snvs_hp_interrupts
AnnaBridge 161:aa5281ff4a02 56 {
AnnaBridge 170:e95d10626187 57 kSNVS_RTC_AlarmInterrupt = SNVS_HPCR_HPTA_EN_MASK, /*!< RTC time alarm */
AnnaBridge 170:e95d10626187 58 kSNVS_RTC_PeriodicInterrupt = SNVS_HPCR_PI_EN_MASK, /*!< RTC periodic interrupt */
AnnaBridge 170:e95d10626187 59 } snvs_hp_interrupts_t;
AnnaBridge 161:aa5281ff4a02 60
AnnaBridge 161:aa5281ff4a02 61 /*! @brief List of SNVS flags */
AnnaBridge 161:aa5281ff4a02 62 typedef enum _snvs_hp_status_flags
AnnaBridge 161:aa5281ff4a02 63 {
AnnaBridge 170:e95d10626187 64 kSNVS_RTC_AlarmInterruptFlag = SNVS_HPSR_HPTA_MASK, /*!< RTC time alarm flag */
AnnaBridge 170:e95d10626187 65 kSNVS_RTC_PeriodicInterruptFlag = SNVS_HPSR_PI_MASK, /*!< RTC periodic interrupt flag */
AnnaBridge 161:aa5281ff4a02 66 } snvs_hp_status_flags_t;
AnnaBridge 161:aa5281ff4a02 67
AnnaBridge 161:aa5281ff4a02 68 /*! @brief Structure is used to hold the date and time */
AnnaBridge 161:aa5281ff4a02 69 typedef struct _snvs_hp_rtc_datetime
AnnaBridge 161:aa5281ff4a02 70 {
AnnaBridge 161:aa5281ff4a02 71 uint16_t year; /*!< Range from 1970 to 2099.*/
AnnaBridge 161:aa5281ff4a02 72 uint8_t month; /*!< Range from 1 to 12.*/
AnnaBridge 161:aa5281ff4a02 73 uint8_t day; /*!< Range from 1 to 31 (depending on month).*/
AnnaBridge 161:aa5281ff4a02 74 uint8_t hour; /*!< Range from 0 to 23.*/
AnnaBridge 161:aa5281ff4a02 75 uint8_t minute; /*!< Range from 0 to 59.*/
AnnaBridge 161:aa5281ff4a02 76 uint8_t second; /*!< Range from 0 to 59.*/
AnnaBridge 161:aa5281ff4a02 77 } snvs_hp_rtc_datetime_t;
AnnaBridge 161:aa5281ff4a02 78
AnnaBridge 161:aa5281ff4a02 79 /*!
AnnaBridge 161:aa5281ff4a02 80 * @brief SNVS config structure
AnnaBridge 161:aa5281ff4a02 81 *
AnnaBridge 161:aa5281ff4a02 82 * This structure holds the configuration settings for the SNVS peripheral. To initialize this
AnnaBridge 161:aa5281ff4a02 83 * structure to reasonable defaults, call the SNVS_GetDefaultConfig() function and pass a
AnnaBridge 161:aa5281ff4a02 84 * pointer to your config structure instance.
AnnaBridge 161:aa5281ff4a02 85 *
AnnaBridge 161:aa5281ff4a02 86 * The config struct can be made const so it resides in flash
AnnaBridge 161:aa5281ff4a02 87 */
AnnaBridge 161:aa5281ff4a02 88 typedef struct _snvs_hp_rtc_config
AnnaBridge 161:aa5281ff4a02 89 {
AnnaBridge 161:aa5281ff4a02 90 bool rtcCalEnable; /*!< true: RTC calibration mechanism is enabled;
AnnaBridge 161:aa5281ff4a02 91 false:No calibration is used */
AnnaBridge 161:aa5281ff4a02 92 uint32_t rtcCalValue; /*!< Defines signed calibration value for nonsecure RTC;
AnnaBridge 161:aa5281ff4a02 93 This is a 5-bit 2's complement value, range from -16 to +15 */
AnnaBridge 161:aa5281ff4a02 94 uint32_t periodicInterruptFreq; /*!< Defines frequency of the periodic interrupt;
AnnaBridge 161:aa5281ff4a02 95 Range from 0 to 15 */
AnnaBridge 161:aa5281ff4a02 96 } snvs_hp_rtc_config_t;
AnnaBridge 161:aa5281ff4a02 97
AnnaBridge 161:aa5281ff4a02 98 /*******************************************************************************
AnnaBridge 161:aa5281ff4a02 99 * API
AnnaBridge 161:aa5281ff4a02 100 ******************************************************************************/
AnnaBridge 161:aa5281ff4a02 101
AnnaBridge 161:aa5281ff4a02 102 #if defined(__cplusplus)
AnnaBridge 161:aa5281ff4a02 103 extern "C" {
AnnaBridge 161:aa5281ff4a02 104 #endif
AnnaBridge 161:aa5281ff4a02 105
AnnaBridge 161:aa5281ff4a02 106 /*!
AnnaBridge 161:aa5281ff4a02 107 * @name Initialization and deinitialization
AnnaBridge 161:aa5281ff4a02 108 * @{
AnnaBridge 161:aa5281ff4a02 109 */
AnnaBridge 161:aa5281ff4a02 110
AnnaBridge 161:aa5281ff4a02 111 /*!
AnnaBridge 161:aa5281ff4a02 112 * @brief Ungates the SNVS clock and configures the peripheral for basic operation.
AnnaBridge 161:aa5281ff4a02 113 *
AnnaBridge 161:aa5281ff4a02 114 * @note This API should be called at the beginning of the application using the SNVS driver.
AnnaBridge 161:aa5281ff4a02 115 *
AnnaBridge 161:aa5281ff4a02 116 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 117 * @param config Pointer to the user's SNVS configuration structure.
AnnaBridge 161:aa5281ff4a02 118 */
AnnaBridge 161:aa5281ff4a02 119 void SNVS_HP_RTC_Init(SNVS_Type *base, const snvs_hp_rtc_config_t *config);
AnnaBridge 161:aa5281ff4a02 120
AnnaBridge 161:aa5281ff4a02 121 /*!
AnnaBridge 161:aa5281ff4a02 122 * @brief Stops the RTC and SRTC timers.
AnnaBridge 161:aa5281ff4a02 123 *
AnnaBridge 161:aa5281ff4a02 124 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 125 */
AnnaBridge 161:aa5281ff4a02 126 void SNVS_HP_RTC_Deinit(SNVS_Type *base);
AnnaBridge 161:aa5281ff4a02 127
AnnaBridge 161:aa5281ff4a02 128 /*!
AnnaBridge 161:aa5281ff4a02 129 * @brief Fills in the SNVS config struct with the default settings.
AnnaBridge 161:aa5281ff4a02 130 *
AnnaBridge 161:aa5281ff4a02 131 * The default values are as follows.
AnnaBridge 161:aa5281ff4a02 132 * @code
AnnaBridge 161:aa5281ff4a02 133 * config->rtccalenable = false;
AnnaBridge 161:aa5281ff4a02 134 * config->rtccalvalue = 0U;
AnnaBridge 161:aa5281ff4a02 135 * config->PIFreq = 0U;
AnnaBridge 161:aa5281ff4a02 136 * @endcode
AnnaBridge 161:aa5281ff4a02 137 * @param config Pointer to the user's SNVS configuration structure.
AnnaBridge 161:aa5281ff4a02 138 */
AnnaBridge 161:aa5281ff4a02 139 void SNVS_HP_RTC_GetDefaultConfig(snvs_hp_rtc_config_t *config);
AnnaBridge 161:aa5281ff4a02 140
AnnaBridge 161:aa5281ff4a02 141 /*! @}*/
AnnaBridge 161:aa5281ff4a02 142
AnnaBridge 161:aa5281ff4a02 143 /*!
AnnaBridge 161:aa5281ff4a02 144 * @name Non secure RTC current Time & Alarm
AnnaBridge 161:aa5281ff4a02 145 * @{
AnnaBridge 161:aa5281ff4a02 146 */
AnnaBridge 161:aa5281ff4a02 147
AnnaBridge 161:aa5281ff4a02 148 /*!
AnnaBridge 161:aa5281ff4a02 149 * @brief Sets the SNVS RTC date and time according to the given time structure.
AnnaBridge 161:aa5281ff4a02 150 *
AnnaBridge 161:aa5281ff4a02 151 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 152 * @param datetime Pointer to the structure where the date and time details are stored.
AnnaBridge 161:aa5281ff4a02 153 *
AnnaBridge 161:aa5281ff4a02 154 * @return kStatus_Success: Success in setting the time and starting the SNVS RTC
AnnaBridge 161:aa5281ff4a02 155 * kStatus_InvalidArgument: Error because the datetime format is incorrect
AnnaBridge 161:aa5281ff4a02 156 */
AnnaBridge 161:aa5281ff4a02 157 status_t SNVS_HP_RTC_SetDatetime(SNVS_Type *base, const snvs_hp_rtc_datetime_t *datetime);
AnnaBridge 161:aa5281ff4a02 158
AnnaBridge 161:aa5281ff4a02 159 /*!
AnnaBridge 161:aa5281ff4a02 160 * @brief Gets the SNVS RTC time and stores it in the given time structure.
AnnaBridge 161:aa5281ff4a02 161 *
AnnaBridge 161:aa5281ff4a02 162 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 163 * @param datetime Pointer to the structure where the date and time details are stored.
AnnaBridge 161:aa5281ff4a02 164 */
AnnaBridge 161:aa5281ff4a02 165 void SNVS_HP_RTC_GetDatetime(SNVS_Type *base, snvs_hp_rtc_datetime_t *datetime);
AnnaBridge 161:aa5281ff4a02 166
AnnaBridge 161:aa5281ff4a02 167 /*!
AnnaBridge 161:aa5281ff4a02 168 * @brief Sets the SNVS RTC alarm time.
AnnaBridge 161:aa5281ff4a02 169 *
AnnaBridge 161:aa5281ff4a02 170 * The function sets the RTC alarm. It also checks whether the specified alarm time
AnnaBridge 161:aa5281ff4a02 171 * is greater than the present time. If not, the function does not set the alarm
AnnaBridge 161:aa5281ff4a02 172 * and returns an error.
AnnaBridge 161:aa5281ff4a02 173 *
AnnaBridge 161:aa5281ff4a02 174 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 175 * @param alarmTime Pointer to the structure where the alarm time is stored.
AnnaBridge 161:aa5281ff4a02 176 *
AnnaBridge 161:aa5281ff4a02 177 * @return kStatus_Success: success in setting the SNVS RTC alarm
AnnaBridge 161:aa5281ff4a02 178 * kStatus_InvalidArgument: Error because the alarm datetime format is incorrect
AnnaBridge 161:aa5281ff4a02 179 * kStatus_Fail: Error because the alarm time has already passed
AnnaBridge 161:aa5281ff4a02 180 */
AnnaBridge 161:aa5281ff4a02 181 status_t SNVS_HP_RTC_SetAlarm(SNVS_Type *base, const snvs_hp_rtc_datetime_t *alarmTime);
AnnaBridge 161:aa5281ff4a02 182
AnnaBridge 161:aa5281ff4a02 183 /*!
AnnaBridge 161:aa5281ff4a02 184 * @brief Returns the SNVS RTC alarm time.
AnnaBridge 161:aa5281ff4a02 185 *
AnnaBridge 161:aa5281ff4a02 186 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 187 * @param datetime Pointer to the structure where the alarm date and time details are stored.
AnnaBridge 161:aa5281ff4a02 188 */
AnnaBridge 161:aa5281ff4a02 189 void SNVS_HP_RTC_GetAlarm(SNVS_Type *base, snvs_hp_rtc_datetime_t *datetime);
AnnaBridge 161:aa5281ff4a02 190
AnnaBridge 161:aa5281ff4a02 191 #if (defined(FSL_FEATURE_SNVS_HAS_SRTC) && (FSL_FEATURE_SNVS_HAS_SRTC > 0))
AnnaBridge 161:aa5281ff4a02 192 /*!
AnnaBridge 161:aa5281ff4a02 193 * @brief The function synchronizes RTC counter value with SRTC.
AnnaBridge 161:aa5281ff4a02 194 *
AnnaBridge 161:aa5281ff4a02 195 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 196 */
AnnaBridge 161:aa5281ff4a02 197 void SNVS_HP_RTC_TimeSynchronize(SNVS_Type *base);
AnnaBridge 161:aa5281ff4a02 198 #endif /* FSL_FEATURE_SNVS_HAS_SRTC */
AnnaBridge 161:aa5281ff4a02 199
AnnaBridge 161:aa5281ff4a02 200 /*! @}*/
AnnaBridge 161:aa5281ff4a02 201
AnnaBridge 161:aa5281ff4a02 202 /*!
AnnaBridge 161:aa5281ff4a02 203 * @name Interrupt Interface
AnnaBridge 161:aa5281ff4a02 204 * @{
AnnaBridge 161:aa5281ff4a02 205 */
AnnaBridge 161:aa5281ff4a02 206
AnnaBridge 161:aa5281ff4a02 207 /*!
AnnaBridge 161:aa5281ff4a02 208 * @brief Enables the selected SNVS interrupts.
AnnaBridge 161:aa5281ff4a02 209 *
AnnaBridge 161:aa5281ff4a02 210 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 211 * @param mask The interrupts to enable. This is a logical OR of members of the
AnnaBridge 161:aa5281ff4a02 212 * enumeration ::snvs_interrupt_enable_t
AnnaBridge 161:aa5281ff4a02 213 */
AnnaBridge 170:e95d10626187 214 static inline void SNVS_HP_RTC_EnableInterrupts(SNVS_Type *base, uint32_t mask)
AnnaBridge 170:e95d10626187 215 {
AnnaBridge 170:e95d10626187 216 base->HPCR |= mask;
AnnaBridge 170:e95d10626187 217 }
AnnaBridge 161:aa5281ff4a02 218
AnnaBridge 161:aa5281ff4a02 219 /*!
AnnaBridge 161:aa5281ff4a02 220 * @brief Disables the selected SNVS interrupts.
AnnaBridge 161:aa5281ff4a02 221 *
AnnaBridge 161:aa5281ff4a02 222 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 223 * @param mask The interrupts to enable. This is a logical OR of members of the
AnnaBridge 161:aa5281ff4a02 224 * enumeration ::snvs_interrupt_enable_t
AnnaBridge 161:aa5281ff4a02 225 */
AnnaBridge 170:e95d10626187 226 static inline void SNVS_HP_RTC_DisableInterrupts(SNVS_Type *base, uint32_t mask)
AnnaBridge 170:e95d10626187 227 {
AnnaBridge 170:e95d10626187 228 base->HPCR &= ~mask;
AnnaBridge 170:e95d10626187 229 }
AnnaBridge 161:aa5281ff4a02 230
AnnaBridge 161:aa5281ff4a02 231 /*!
AnnaBridge 161:aa5281ff4a02 232 * @brief Gets the enabled SNVS interrupts.
AnnaBridge 161:aa5281ff4a02 233 *
AnnaBridge 161:aa5281ff4a02 234 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 235 *
AnnaBridge 161:aa5281ff4a02 236 * @return The enabled interrupts. This is the logical OR of members of the
AnnaBridge 161:aa5281ff4a02 237 * enumeration ::snvs_interrupt_enable_t
AnnaBridge 161:aa5281ff4a02 238 */
AnnaBridge 161:aa5281ff4a02 239 uint32_t SNVS_HP_RTC_GetEnabledInterrupts(SNVS_Type *base);
AnnaBridge 161:aa5281ff4a02 240
AnnaBridge 161:aa5281ff4a02 241 /*! @}*/
AnnaBridge 161:aa5281ff4a02 242
AnnaBridge 161:aa5281ff4a02 243 /*!
AnnaBridge 161:aa5281ff4a02 244 * @name Status Interface
AnnaBridge 161:aa5281ff4a02 245 * @{
AnnaBridge 161:aa5281ff4a02 246 */
AnnaBridge 161:aa5281ff4a02 247
AnnaBridge 161:aa5281ff4a02 248 /*!
AnnaBridge 161:aa5281ff4a02 249 * @brief Gets the SNVS status flags.
AnnaBridge 161:aa5281ff4a02 250 *
AnnaBridge 161:aa5281ff4a02 251 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 252 *
AnnaBridge 161:aa5281ff4a02 253 * @return The status flags. This is the logical OR of members of the
AnnaBridge 161:aa5281ff4a02 254 * enumeration ::snvs_status_flags_t
AnnaBridge 161:aa5281ff4a02 255 */
AnnaBridge 161:aa5281ff4a02 256 uint32_t SNVS_HP_RTC_GetStatusFlags(SNVS_Type *base);
AnnaBridge 161:aa5281ff4a02 257
AnnaBridge 161:aa5281ff4a02 258 /*!
AnnaBridge 161:aa5281ff4a02 259 * @brief Clears the SNVS status flags.
AnnaBridge 161:aa5281ff4a02 260 *
AnnaBridge 161:aa5281ff4a02 261 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 262 * @param mask The status flags to clear. This is a logical OR of members of the
AnnaBridge 161:aa5281ff4a02 263 * enumeration ::snvs_status_flags_t
AnnaBridge 161:aa5281ff4a02 264 */
AnnaBridge 170:e95d10626187 265 static inline void SNVS_HP_RTC_ClearStatusFlags(SNVS_Type *base, uint32_t mask)
AnnaBridge 170:e95d10626187 266 {
AnnaBridge 170:e95d10626187 267 base->HPSR |= mask;
AnnaBridge 170:e95d10626187 268 }
AnnaBridge 161:aa5281ff4a02 269
AnnaBridge 161:aa5281ff4a02 270 /*! @}*/
AnnaBridge 161:aa5281ff4a02 271
AnnaBridge 161:aa5281ff4a02 272 /*!
AnnaBridge 161:aa5281ff4a02 273 * @name Timer Start and Stop
AnnaBridge 161:aa5281ff4a02 274 * @{
AnnaBridge 161:aa5281ff4a02 275 */
AnnaBridge 161:aa5281ff4a02 276
AnnaBridge 161:aa5281ff4a02 277 /*!
AnnaBridge 161:aa5281ff4a02 278 * @brief Starts the SNVS RTC time counter.
AnnaBridge 161:aa5281ff4a02 279 *
AnnaBridge 161:aa5281ff4a02 280 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 281 */
AnnaBridge 161:aa5281ff4a02 282 static inline void SNVS_HP_RTC_StartTimer(SNVS_Type *base)
AnnaBridge 161:aa5281ff4a02 283 {
AnnaBridge 161:aa5281ff4a02 284 base->HPCR |= SNVS_HPCR_RTC_EN_MASK;
AnnaBridge 161:aa5281ff4a02 285 while (!(base->HPCR & SNVS_HPCR_RTC_EN_MASK))
AnnaBridge 161:aa5281ff4a02 286 {
AnnaBridge 161:aa5281ff4a02 287 }
AnnaBridge 161:aa5281ff4a02 288 }
AnnaBridge 161:aa5281ff4a02 289
AnnaBridge 161:aa5281ff4a02 290 /*!
AnnaBridge 161:aa5281ff4a02 291 * @brief Stops the SNVS RTC time counter.
AnnaBridge 161:aa5281ff4a02 292 *
AnnaBridge 161:aa5281ff4a02 293 * @param base SNVS peripheral base address
AnnaBridge 161:aa5281ff4a02 294 */
AnnaBridge 161:aa5281ff4a02 295 static inline void SNVS_HP_RTC_StopTimer(SNVS_Type *base)
AnnaBridge 161:aa5281ff4a02 296 {
AnnaBridge 161:aa5281ff4a02 297 base->HPCR &= ~SNVS_HPCR_RTC_EN_MASK;
AnnaBridge 161:aa5281ff4a02 298 while (base->HPCR & SNVS_HPCR_RTC_EN_MASK)
AnnaBridge 161:aa5281ff4a02 299 {
AnnaBridge 161:aa5281ff4a02 300 }
AnnaBridge 161:aa5281ff4a02 301 }
AnnaBridge 161:aa5281ff4a02 302
AnnaBridge 161:aa5281ff4a02 303 #if defined(__cplusplus)
AnnaBridge 161:aa5281ff4a02 304 }
AnnaBridge 161:aa5281ff4a02 305 #endif
AnnaBridge 161:aa5281ff4a02 306
AnnaBridge 161:aa5281ff4a02 307 /*! @}*/
AnnaBridge 161:aa5281ff4a02 308
AnnaBridge 161:aa5281ff4a02 309 #endif /* _FSL_SNVS_HP_H_ */