S32 SDK
wdog_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 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  uint32_t windowValue;
106  uint32_t timeoutValue;
109 
110 /*******************************************************************************
111  * API
112  ******************************************************************************/
118 #if defined(__cplusplus)
119 extern "C" {
120 #endif
121 
133 status_t WDOG_DRV_Init(uint32_t instance,
134  const wdog_user_config_t * userConfigPtr);
135 
141 void WDOG_DRV_Deinit(uint32_t instance);
142 
149 void WDOG_DRV_GetConfig(uint32_t instance,
150  wdog_user_config_t * const config);
151 
157 void WDOG_DRV_GetDefaultConfig(wdog_user_config_t * const config);
158 
170 status_t WDOG_DRV_SetInt(uint32_t instance,
171  bool enable);
172 
178 void WDOG_DRV_Trigger(uint32_t instance);
179 
186 uint16_t WDOG_DRV_GetCounter(uint32_t instance);
187 
197 void WDOG_DRV_SetWindow(uint32_t instance,
198  bool enable,
199  uint16_t windowvalue);
200 
210 void WDOG_DRV_SetMode(uint32_t instance,
211  bool enable,
212  wdog_set_mode_t Setmode);
213 
222 void WDOG_DRV_SetTimeout(uint32_t instance,
223  uint16_t timeout);
224 
235 void WDOG_DRV_SetTestMode(uint32_t instance,
236  wdog_test_mode_t testMode);
237 
246 wdog_test_mode_t WDOG_DRV_GetTestMode(uint32_t instance);
247 
250 #if defined(__cplusplus)
251 }
252 #endif
253 
256 #endif /* WDOG_DRIVER_H */
257 /*******************************************************************************
258  * EOF
259  ******************************************************************************/
void WDOG_DRV_GetDefaultConfig(wdog_user_config_t *const config)
Gets default configuration of the WDOG.
Definition: wdog_driver.c:183
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_SetMode(uint32_t instance, bool enable, wdog_set_mode_t Setmode)
Sets the mode operation of the WDOG.
Definition: wdog_driver.c:298
WDOG user configuration structure Implements : wdog_user_config_t_Class.
Definition: wdog_driver.h:98
void WDOG_DRV_SetWindow(uint32_t instance, bool enable, uint16_t windowvalue)
Set window mode and window value of the WDOG.
Definition: wdog_driver.c:273
uint32_t windowValue
Definition: wdog_driver.h:105
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:258
wdog_op_mode_t opMode
Definition: wdog_driver.h:101
void WDOG_DRV_Deinit(uint32_t instance)
De-initializes the WDOG driver.
Definition: wdog_driver.c:143
WDOG option mode configuration structure Implements : wdog_op_mode_t_Class.
Definition: wdog_driver.h:87
void WDOG_DRV_SetTestMode(uint32_t instance, wdog_test_mode_t testMode)
Changes the WDOG test mode.
Definition: wdog_driver.c:350
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
void WDOG_DRV_Trigger(uint32_t instance)
Refreshes the WDOG counter.
Definition: wdog_driver.c:243
uint32_t timeoutValue
Definition: wdog_driver.h:106
void WDOG_DRV_SetTimeout(uint32_t instance, uint16_t timeout)
Sets the value of the WDOG timeout.
Definition: wdog_driver.c:332
wdog_test_mode_t WDOG_DRV_GetTestMode(uint32_t instance)
Gets the WDOG test mode.
Definition: wdog_driver.c:372
void WDOG_DRV_GetConfig(uint32_t instance, wdog_user_config_t *const config)
Gets the current configuration of the WDOG.
Definition: wdog_driver.c:166
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:207