drm/rockchip: vop2: Fix the windows switch between different layers
[drm/drm-misc.git] / arch / mips / include / asm / mach-loongson64 / loongson_hwmon.h
blob721eafc4644e509e6f43db746fbb00ed83a18699
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __LOONGSON_HWMON_H_
3 #define __LOONGSON_HWMON_H_
5 #include <linux/types.h>
7 #define MIN_TEMP 0
8 #define MAX_TEMP 255
9 #define NOT_VALID_TEMP 999
11 typedef int (*get_temp_fun)(int);
12 extern int loongson3_cpu_temp(int);
14 /* 0:Max speed, 1:Manual, 2:Auto */
15 enum fan_control_mode {
16 FAN_FULL_MODE = 0,
17 FAN_MANUAL_MODE = 1,
18 FAN_AUTO_MODE = 2,
19 FAN_MODE_END
22 struct temp_range {
23 u8 low;
24 u8 high;
25 u8 level;
28 #define CONSTANT_SPEED_POLICY 0 /* at constant speed */
29 #define STEP_SPEED_POLICY 1 /* use up/down arrays to describe policy */
30 #define KERNEL_HELPER_POLICY 2 /* kernel as a helper to fan control */
32 #define MAX_STEP_NUM 16
33 #define MAX_FAN_LEVEL 255
35 /* loongson_fan_policy works when fan work at FAN_AUTO_MODE */
36 struct loongson_fan_policy {
37 u8 type;
39 /* percent only used when type is CONSTANT_SPEED_POLICY */
40 u8 percent;
42 /* period between two check. (Unit: S) */
43 u8 adjust_period;
45 /* fan adjust usually depend on a temperature input */
46 get_temp_fun depend_temp;
48 /* up_step/down_step used when type is STEP_SPEED_POLICY */
49 u8 up_step_num;
50 u8 down_step_num;
51 struct temp_range up_step[MAX_STEP_NUM];
52 struct temp_range down_step[MAX_STEP_NUM];
53 struct delayed_work work;
56 #endif /* __LOONGSON_HWMON_H_*/