1*4882a593Smuzhiyun /****************************************************************************** 2*4882a593Smuzhiyun * 3*4882a593Smuzhiyun * Copyright(c) 2019 Realtek Corporation. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify it 6*4882a593Smuzhiyun * under the terms of version 2 of the GNU General Public License as 7*4882a593Smuzhiyun * published by the Free Software Foundation. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful, but WITHOUT 10*4882a593Smuzhiyun * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11*4882a593Smuzhiyun * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12*4882a593Smuzhiyun * more details. 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun *****************************************************************************/ 15*4882a593Smuzhiyun #ifndef _PHL_WATCHDOG_H_ 16*4882a593Smuzhiyun #define _PHL_WATCHDOG_H_ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #define WDOG_PERIOD 2000 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun enum watchdog_state{ 21*4882a593Smuzhiyun WD_STATE_INIT, 22*4882a593Smuzhiyun WD_STATE_STARTED, 23*4882a593Smuzhiyun WD_STATE_STOP, 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun struct phl_watchdog { 27*4882a593Smuzhiyun _os_timer wdog_timer; 28*4882a593Smuzhiyun enum watchdog_state state; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* Only sw statistics or sw behavior or trigger FG cmd */ 31*4882a593Smuzhiyun void (*core_sw_wdog)(void *drv_priv); 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun /* I/O, tx behavior, request power, ... */ 34*4882a593Smuzhiyun void (*core_hw_wdog)(void *drv_priv); 35*4882a593Smuzhiyun u16 period; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun void 38*4882a593Smuzhiyun phl_watchdog_cmd_complete_hdl(struct phl_info_t *phl_info); 39*4882a593Smuzhiyun enum rtw_phl_status 40*4882a593Smuzhiyun phl_watchdog_hw_cmd_hdl(struct phl_info_t *phl_info, enum rtw_phl_status psts); 41*4882a593Smuzhiyun enum rtw_phl_status 42*4882a593Smuzhiyun phl_watchdog_sw_cmd_hdl(struct phl_info_t *phl_info, enum rtw_phl_status psts); 43*4882a593Smuzhiyun void rtw_phl_watchdog_stop(void *phl); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #ifdef CONFIG_FSM 47*4882a593Smuzhiyun void rtw_phl_watchdog_callback(void *phl); 48*4882a593Smuzhiyun #endif 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #endif /*_PHL_WATCHDOG_H_*/ 51*4882a593Smuzhiyun 52