/********************************************************************************** * nbm_hardware_watchdog_control * * Set hardware watchdog enable or disable * * INPUT: * enabled - enable/disable hardware watchdog * * OUTPUT: * NULL * * RETURN: * 0 - if no error occur. * NPD_FAIL - if error occurred. * **********************************************************************************/ int nbm_hardware_watchdog_control_set ( unsigned int enabled ) { int ret; unsigned char cpld_value; if (enabled == SYSTEM_HARDWARE_WATCHDOG_ENABLE) { cpld_value = WATCHDOG_ENABLE; nbm_syslog_dbg("nbm hardware watchdog control set enable\n"); } else { cpld_value = WATCHDOG_DISABLE; nbm_syslog_dbg("nbm hardware watchdog control set diable\n"); } ret = nbm_cpld_write_func_code(BM_IOC_CPLD_WDT_ENABLE, cpld_value); if (ret) { return ret; } return ret; }
/********************************************************************************** * nbm_hardware_watchdog_timeout_set * * Set hardware watchdog timeout value * * INPUT: * timeout - hardware watchdog timeout value * * OUTPUT: * NULL * * RETURN: * 0 - if no error occur. * NPD_FAIL - if error occurred. * **********************************************************************************/ int nbm_hardware_watchdog_timeout_set ( unsigned int timeout ) { unsigned char regValue = 0; int ret = 0; unsigned char cpld_value; /* confirm if current product support hardware watchdog or not */ if(NBM_FALSE == npd_product_hardware_watchdog_function_check()) { return NBM_OK; } ret = nbm_cpld_read_func_code(BM_IOC_CPLD_WDT_TIMER, &cpld_value); if (ret) { return ret; } DBG("nbm hardware watchdog timeout change %d -> %d\n", regValue, timeout); ret = nbm_cpld_write_func_code(BM_IOC_CPLD_WDT_TIMER, timeout); return ret; }
/********************************************************************************** * nbm_hardware_watchdog_fillup * * Fillup hardware watch dog, this is done via read or write fillup register once. * * INPUT: * NULL * * OUTPUT: * NULL * * RETURN: * 0 - if no error occur. * NPD_FAIL - if error occurred. * **********************************************************************************/ int nbm_hardware_watchdog_fillup ( void ) { unsigned char cpld_value = 0; int ret = 0; ret = nbm_cpld_write_func_code(BM_IOC_CPLD_WDT_CLEAR, cpld_value); return ret; }
/********************************************************************************** * nbm_hardware_watchdog_fillup * * Fillup hardware watch dog, this is done via read or write fillup register once. * * INPUT: * NULL * * OUTPUT: * NULL * * RETURN: * 0 - if no error occur. * NPD_FAIL - if error occurred. * **********************************************************************************/ int nbm_hardware_watchdog_fillup ( void ) { unsigned char cpld_value = 0; int ret = 0; /* confirm if current product support hardware watchdog or not */ if(NBM_FALSE == npd_product_hardware_watchdog_function_check()) { return NBM_OK; } ret = nbm_cpld_write_func_code(BM_IOC_CPLD_WDT_CLEAR, cpld_value); return ret; }
/********************************************************************************** * nbm_hardware_watchdog_timeout_set * * Set hardware watchdog timeout value * * INPUT: * timeout - hardware watchdog timeout value * * OUTPUT: * NULL * * RETURN: * 0 - if no error occur. * NPD_FAIL - if error occurred. * **********************************************************************************/ int nbm_hardware_watchdog_timeout_set ( unsigned int timeout ) { unsigned char regValue = 0; int ret = 0; unsigned char cpld_value; ret = nbm_cpld_read_func_code(BM_IOC_CPLD_WDT_TIMER, &cpld_value); if (ret) { return ret; } nbm_syslog_dbg("nbm hardware watchdog timeout change %d -> %d\n", regValue, timeout); ret = nbm_cpld_write_func_code(BM_IOC_CPLD_WDT_TIMER, timeout); return ret; }
/********************************************************************************** * nbm_hardware_watchdog_control * * Set hardware watchdog enable or disable * * INPUT: * enabled - enable/disable hardware watchdog * * OUTPUT: * NULL * * RETURN: * 0 - if no error occur. * NPD_FAIL - if error occurred. * **********************************************************************************/ int nbm_hardware_watchdog_control_set ( unsigned int enabled ) { int ret; unsigned char cpld_value; if(NBM_FALSE == npd_product_hardware_watchdog_function_check()) { return NBM_OK; } if (enabled == SYSTEM_HARDWARE_WATCHDOG_ENABLE) { cpld_value = WATCHDOG_ENABLE; DBG("nbm hardware watchdog control set enable\n"); } else { cpld_value = WATCHDOG_DISABLE; DBG("nbm hardware watchdog control set diable\n"); } ret = nbm_cpld_write_func_code(BM_IOC_CPLD_WDT_ENABLE, cpld_value); if (ret) { return ret; } return ret; }