4878
by Con Kolivas
Import Dragonmint T1 driver and version rolling AKA asicboost support. |
1 |
/*
|
2 |
* Copyright 2018 Duan Hao
|
|
4879
by Con Kolivas
Fast start/restart with clean shutdown to lower power but powered on mode. |
3 |
* Copyright 2018 Con Kolivas <kernel@kolivas.org>
|
4878
by Con Kolivas
Import Dragonmint T1 driver and version rolling AKA asicboost support. |
4 |
*
|
5 |
* This program is free software; you can redistribute it and/or modify it
|
|
6 |
* under the terms of the GNU General Public License as published by the Free
|
|
7 |
* Software Foundation; either version 3 of the License, or (at your option)
|
|
8 |
* any later version. See COPYING for more details.
|
|
9 |
*/
|
|
10 |
||
11 |
#ifndef _DM_FAN_CTRL_H_
|
|
12 |
#define _DM_FAN_CTRL_H_
|
|
13 |
||
4879
by Con Kolivas
Fast start/restart with clean shutdown to lower power but powered on mode. |
14 |
#define FAN_SPEED_MAX (100) // max fan speed (%) |
15 |
#define FAN_SPEED_MIN (0) // min fan speed (%) |
|
16 |
#define FAN_SPEED_DEF (80) // default fan speed (%) |
|
17 |
#define FAN_SPEED_PREHEAT (10) // preheat fan speed |
|
18 |
||
4878
by Con Kolivas
Import Dragonmint T1 driver and version rolling AKA asicboost support. |
19 |
typedef enum _FAN_MODE |
20 |
{
|
|
21 |
FAN_MODE_MANUAL = 0, // manual fan control mode |
|
22 |
FAN_MODE_AUTO = 1, // auto fan control mode |
|
23 |
} FAN_MODE; |
|
24 |
||
25 |
typedef enum _FAN_PROFILE |
|
26 |
{
|
|
27 |
FAN_PF_NORMAL = 0, // normal fan control |
|
28 |
FAN_PF_OVERHEAT = 1, // overheat fan control |
|
29 |
FAN_PF_PREHEAT = 2, // preheat fan control |
|
30 |
} FAN_PROFILE; |
|
31 |
||
32 |
typedef struct _c_fan_cfg |
|
33 |
{
|
|
34 |
char fan_mode; // fan mode: auto / manual |
|
35 |
char fan_speed; // fan speed (percent) |
|
36 |
char fan_speed_preheat; // preheat fan speed (percent) |
|
37 |
char fan_ctrl_cycle; // time interval between fan controls (s) |
|
38 |
char tmp_chk_span; // time span of temperature rising checks (s) |
|
39 |
bool preheat; // true if preheat is enabled |
|
40 |
} c_fan_cfg; |
|
41 |
||
42 |
extern volatile c_fan_cfg g_fan_cfg; // fan config |
|
43 |
extern volatile int g_fan_profile; // fan profile: normal / overheat / preheat |
|
44 |
||
45 |
||
46 |
void dm_fanctrl_get_defcfg(c_fan_cfg *p_cfg); |
|
47 |
void dm_fanctrl_init(c_fan_cfg *p_cfg); |
|
48 |
void dm_fanctrl_set_fan_speed(char speed); |
|
49 |
void *dm_fanctrl_thread(void *argv); |
|
50 |
||
51 |
#endif // _DM_FAN_CTRL_H_ |
|
52 |