cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

loongson_hwmon.h (1278B)


      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 temprature 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_*/