12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- * Copyright 2018 Duan Hao
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 3 of the License, or (at your option)
- * any later version. See COPYING for more details.
- */
- #ifndef _DM_TEMP_CTRL_H_
- #define _DM_TEMP_CTRL_H_
- #include "dragonmint_t1.h"
- #define TEMP_INVALID (-1)
- #define TEMP_NORMAL (0)
- #define TEMP_TOO_LOW (1)
- #define TEMP_TOO_HIGH (2)
- #define TEMP_WARNING (3)
- #define TEMP_SHUTDOWN (4)
- #define TEMP_TOLERANCE (5)
- typedef struct _c_temp_cfg
- {
- short tmp_min; // min value of temperature
- short tmp_max; // max value of temperature
- short tmp_target; // target temperature
- short tmp_thr_lo; // low temperature threshold
- short tmp_thr_hi; // high temperature threshold
- short tmp_thr_warn; // warning threshold
- short tmp_thr_pd; // power down threshold
- int tmp_exp_time; // temperature expiring time (ms)
- } c_temp_cfg;
- extern volatile c_temp_cfg g_tmp_cfg; // configs of temperature control
- extern volatile c_temp g_chain_tmp[MAX_CHAIN_NUM]; // current temperature for each chain
- void dm_tempctrl_get_defcfg(c_temp_cfg *p_cfg);
- void dm_tempctrl_set(c_temp_cfg *p_cfg);
- void dm_tempctrl_init(c_temp_cfg *p_cfg);
- void dm_tempctrl_update_temp(uint8_t chain_mask);
- uint32_t dm_tempctrl_update_chain_temp(int chain_id);
-
- #endif // _DM_TEMP_CTRL_H_
|