1/**
2 * @file hi_watchdog.h
3 *
4 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/**
19 * @defgroup iot_watchdog Watchdog
20 * @ingroup drivers
21 */
22#ifndef __HI_WATCHDOG_H__
23#define __HI_WATCHDOG_H__
24
25#include <hi_types_base.h>
26
27#define HI_WDG_MIN_TIMEOUT 6500
28
29/**
30* @ingroup  iot_watchdog
31* @brief Enables the watchdog.CNcomment:使能看门狗。CNend
32*
33* @par 描述:
34*          Enables the watchdog.CNcomment:使能看门狗。CNend
35*
36* @attention None
37* @param  None
38*
39* @retval None
40* @par 依赖:
41*            @li hi_watchdog.h:describes the watchdog APIs.CNcomment:文件用于描述看门狗相关接口。CNend
42* @see None
43*/
44hi_void hi_watchdog_enable(hi_void);
45
46/**
47* @ingroup  iot_watchdog
48* @brief Feeds the watchdog.CNcomment:喂狗。CNend
49*
50* @par 描述: Feeds the watchdog.CNcomment:喂狗。CNend
51*
52* @attention None
53* @param  None
54*
55* @retval None
56* @par 依赖:
57*            @li hi_watchdog.h:describes the watchdog APIs.CNcomment:文件用于描述看门狗相关接口。CNend
58* @see None
59*/
60hi_void hi_watchdog_feed(hi_void);
61
62/**
63* @ingroup  iot_watchdog
64* @brief Disables the watchdog.CNcomment:关闭看门狗。CNend
65*
66* @par 描述:
67*           @li Disable the clock enable control of the watchdog.CNcomment:禁止WatchDog时钟使能控制位。CNend
68*           @li Mask the watchdog reset function.CNcomment:屏蔽WatchDog复位功能。CNend
69*
70* @attention None
71* @param  None
72*
73* @retval None
74* @par 依赖:
75*            @li hi_watchdog.h:describes the watchdog APIs.CNcomment:文件用于描述看门狗相关接口。CNend
76* @see None
77*/
78hi_void hi_watchdog_disable(hi_void);
79
80/**
81* @ingroup  iot_watchdog
82* @brief Set watchod timeout(ms).CNcomment:设置看门狗超时时间,单位ms。CNend
83*
84* @par 描述:
85*           @li Set watchod timeout(ms).CNcomment:设置看门狗超时时间,单位ms。CNend
86*
87* @attention
88* timeout should not smaller than 6500ms.CNcomment:看门狗超时时间不得小于6500ms。
89* system will restart count after set timeout.CNcomment:设置超时时间后,系统会重新开始计数。
90* @param  timeout_ms    [IN] type #hi_u32,timeout(ms). CNcomment:超时时间(单位:ms)。CNend
91*
92* @retval #HI_ERR_SUCCESS   Success.
93* @retval #Other             Failure. For details, see hi_errno.h.
94* @par 依赖:
95*            @li hi_watchdog.h:describes the watchdog APIs.CNcomment:文件用于描述看门狗相关接口。CNend
96* @see None
97*/
98hi_u32 hi_watchdog_set_timeout(hi_u32 timeout_ms);
99
100#endif
101