wdog_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016-2018 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
23 #ifndef WDOG_DRIVER_H
24 #define WDOG_DRIVER_H
25 
26 #include "status.h"
27 #include "interrupt_manager.h"
28 
37 /*******************************************************************************
38  * Variables
39  ******************************************************************************/
40 
41 /*******************************************************************************
42  * Enumerations.
43  ******************************************************************************/
44 
45 /*******************************************************************************
46  * Definitions
47  ******************************************************************************/
52 typedef enum
53 {
54  WDOG_BUS_CLOCK = 0x00U,
55  WDOG_LPO_CLOCK = 0x01U,
56  WDOG_SOSC_CLOCK = 0x02U,
57  WDOG_SIRC_CLOCK = 0x03U
59 
64 typedef enum
65 {
67  WDOG_TST_USER = 0x01U,
68  WDOG_TST_LOW = 0x02U,
69  WDOG_TST_HIGH = 0x03U
71 
76 typedef enum
77 {
78  WDOG_DEBUG_MODE = 0x00U,
79  WDOG_WAIT_MODE = 0x01U,
80  WDOG_STOP_MODE = 0x02U
82 
87 typedef struct
88 {
89  bool wait;
90  bool stop;
91  bool debug;
93 
98 typedef struct
99 {
103  bool intEnable;
104  bool winEnable;
105  uint16_t windowValue;
106  uint16_t timeoutValue;
109 
110 /*******************************************************************************
111  * API
112  ******************************************************************************/
118 #if defined(__cplusplus)
119 extern "C" {
120 #endif
121 
134 status_t WDOG_DRV_Init(uint32_t instance,
135  const wdog_user_config_t * userConfigPtr);
136 
146 status_t WDOG_DRV_Deinit(uint32_t instance);
147 
154 void WDOG_DRV_GetConfig(uint32_t instance,
155  wdog_user_config_t * const config);
156 
162 void WDOG_DRV_GetDefaultConfig(wdog_user_config_t * const config);
163 
175 status_t WDOG_DRV_SetInt(uint32_t instance,
176  bool enable);
177 
183 void WDOG_DRV_ClearIntFlag(uint32_t instance);
184 
190 void WDOG_DRV_Trigger(uint32_t instance);
191 
198 uint16_t WDOG_DRV_GetCounter(uint32_t instance);
199 
213 status_t WDOG_DRV_SetWindow(uint32_t instance,
214  bool enable,
215  uint16_t windowvalue);
216 
230 status_t WDOG_DRV_SetMode(uint32_t instance,
231  bool enable,
232  wdog_set_mode_t Setmode);
233 
246 status_t WDOG_DRV_SetTimeout(uint32_t instance,
247  uint16_t timeout);
248 
263 status_t WDOG_DRV_SetTestMode(uint32_t instance,
264  wdog_test_mode_t testMode);
265 
274 wdog_test_mode_t WDOG_DRV_GetTestMode(uint32_t instance);
275 
278 #if defined(__cplusplus)
279 }
280 #endif
281 
284 #endif /* WDOG_DRIVER_H */
285 /*******************************************************************************
286  * EOF
287  ******************************************************************************/
void WDOG_DRV_GetDefaultConfig(wdog_user_config_t *const config)
Gets default configuration of the WDOG.
Definition: wdog_driver.c:215
status_t WDOG_DRV_Deinit(uint32_t instance)
De-initializes the WDOG driver.
Definition: wdog_driver.c:163
status_t WDOG_DRV_Init(uint32_t instance, const wdog_user_config_t *userConfigPtr)
Initializes the WDOG driver.
Definition: wdog_driver.c:105
void WDOG_DRV_ClearIntFlag(uint32_t instance)
Clear interrupt flag of the WDOG.
Definition: wdog_driver.c:273
uint16_t timeoutValue
Definition: wdog_driver.h:106
uint16_t windowValue
Definition: wdog_driver.h:105
WDOG user configuration structure Implements : wdog_user_config_t_Class.
Definition: wdog_driver.h:98
status_t WDOG_DRV_SetTestMode(uint32_t instance, wdog_test_mode_t testMode)
Changes the WDOG test mode.
Definition: wdog_driver.c:429
status_t WDOG_DRV_SetMode(uint32_t instance, bool enable, wdog_set_mode_t Setmode)
Sets the mode operation of the WDOG.
Definition: wdog_driver.c:355
wdog_clk_source_t clkSource
Definition: wdog_driver.h:100
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
Definition: status.h:44
uint16_t WDOG_DRV_GetCounter(uint32_t instance)
Gets the value of the WDOG counter.
Definition: wdog_driver.c:304
wdog_op_mode_t opMode
Definition: wdog_driver.h:101
WDOG option mode configuration structure Implements : wdog_op_mode_t_Class.
Definition: wdog_driver.h:87
wdog_test_mode_t
Test modes for the WDOG. Implements : wdog_test_mode_t_Class.
Definition: wdog_driver.h:64
wdog_set_mode_t
set modes for the WDOG. Implements : wdog_set_mode_t_Class
Definition: wdog_driver.h:76
wdog_clk_source_t
Clock sources for the WDOG. Implements : wdog_clk_source_t_Class.
Definition: wdog_driver.h:52
status_t WDOG_DRV_SetWindow(uint32_t instance, bool enable, uint16_t windowvalue)
Set window mode and window value of the WDOG.
Definition: wdog_driver.c:319
void WDOG_DRV_Trigger(uint32_t instance)
Refreshes the WDOG counter.
Definition: wdog_driver.c:289
wdog_test_mode_t WDOG_DRV_GetTestMode(uint32_t instance)
Gets the WDOG test mode.
Definition: wdog_driver.c:462
void WDOG_DRV_GetConfig(uint32_t instance, wdog_user_config_t *const config)
Gets the current configuration of the WDOG.
Definition: wdog_driver.c:198
status_t WDOG_DRV_SetTimeout(uint32_t instance, uint16_t timeout)
Sets the value of the WDOG timeout.
Definition: wdog_driver.c:400
status_t WDOG_DRV_SetInt(uint32_t instance, bool enable)
Enables/Disables the WDOG timeout interrupt and sets a function to be called when a timeout interrupt...
Definition: wdog_driver.c:241