Linux Audio

Check our new training course

Real-Time Linux with PREEMPT_RT training

Feb 18-20, 2025
Register
Loading...
v4.6
 
 1#ifndef __LOONGSON_HWMON_H_
 2#define __LOONGSON_HWMON_H_
 3
 4#include <linux/types.h>
 5
 6#define MIN_TEMP	0
 7#define MAX_TEMP	255
 8#define NOT_VALID_TEMP	999
 9
10typedef int (*get_temp_fun)(int);
11extern int loongson3_cpu_temp(int);
12
13/* 0:Max speed, 1:Manual, 2:Auto */
14enum fan_control_mode {
15	FAN_FULL_MODE = 0,
16	FAN_MANUAL_MODE = 1,
17	FAN_AUTO_MODE = 2,
18	FAN_MODE_END
19};
20
21struct temp_range {
22	u8 low;
23	u8 high;
24	u8 level;
25};
26
27#define CONSTANT_SPEED_POLICY	0  /* at constent speed */
28#define STEP_SPEED_POLICY	1  /* use up/down arrays to describe policy */
29#define KERNEL_HELPER_POLICY	2  /* kernel as a helper to fan control */
30
31#define MAX_STEP_NUM	16
32#define MAX_FAN_LEVEL	255
33
34/* loongson_fan_policy works when fan work at FAN_AUTO_MODE */
35struct loongson_fan_policy {
36	u8	type;
37
38	/* percent only used when type is CONSTANT_SPEED_POLICY */
39	u8	percent;
40
41	/* period between two check. (Unit: S) */
42	u8	adjust_period;
43
44	/* fan adjust usually depend on a temprature input */
45	get_temp_fun	depend_temp;
46
47	/* up_step/down_step used when type is STEP_SPEED_POLICY */
48	u8	up_step_num;
49	u8	down_step_num;
50	struct temp_range up_step[MAX_STEP_NUM];
51	struct temp_range down_step[MAX_STEP_NUM];
52	struct delayed_work work;
53};
54
55#endif /* __LOONGSON_HWMON_H_*/
v6.8
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef __LOONGSON_HWMON_H_
 3#define __LOONGSON_HWMON_H_
 4
 5#include <linux/types.h>
 6
 7#define MIN_TEMP	0
 8#define MAX_TEMP	255
 9#define NOT_VALID_TEMP	999
10
11typedef int (*get_temp_fun)(int);
12extern int loongson3_cpu_temp(int);
13
14/* 0:Max speed, 1:Manual, 2:Auto */
15enum fan_control_mode {
16	FAN_FULL_MODE = 0,
17	FAN_MANUAL_MODE = 1,
18	FAN_AUTO_MODE = 2,
19	FAN_MODE_END
20};
21
22struct temp_range {
23	u8 low;
24	u8 high;
25	u8 level;
26};
27
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 */
31
32#define MAX_STEP_NUM	16
33#define MAX_FAN_LEVEL	255
34
35/* loongson_fan_policy works when fan work at FAN_AUTO_MODE */
36struct loongson_fan_policy {
37	u8	type;
38
39	/* percent only used when type is CONSTANT_SPEED_POLICY */
40	u8	percent;
41
42	/* period between two check. (Unit: S) */
43	u8	adjust_period;
44
45	/* fan adjust usually depend on a temperature input */
46	get_temp_fun	depend_temp;
47
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;
54};
55
56#endif /* __LOONGSON_HWMON_H_*/