1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2  #ifndef _UAPI_LINUX_THERMAL_H
3  #define _UAPI_LINUX_THERMAL_H
4  
5  #define THERMAL_NAME_LENGTH	20
6  
7  enum thermal_device_mode {
8  	THERMAL_DEVICE_DISABLED = 0,
9  	THERMAL_DEVICE_ENABLED,
10  };
11  
12  enum thermal_trip_type {
13  	THERMAL_TRIP_ACTIVE = 0,
14  	THERMAL_TRIP_PASSIVE,
15  	THERMAL_TRIP_HOT,
16  	THERMAL_TRIP_CRITICAL,
17  };
18  
19  /* Adding event notification support elements */
20  #define THERMAL_GENL_FAMILY_NAME		"thermal"
21  #define THERMAL_GENL_VERSION			0x01
22  #define THERMAL_GENL_SAMPLING_GROUP_NAME	"sampling"
23  #define THERMAL_GENL_EVENT_GROUP_NAME		"event"
24  
25  /* Attributes of thermal_genl_family */
26  enum thermal_genl_attr {
27  	THERMAL_GENL_ATTR_UNSPEC,
28  	THERMAL_GENL_ATTR_TZ,
29  	THERMAL_GENL_ATTR_TZ_ID,
30  	THERMAL_GENL_ATTR_TZ_TEMP,
31  	THERMAL_GENL_ATTR_TZ_TRIP,
32  	THERMAL_GENL_ATTR_TZ_TRIP_ID,
33  	THERMAL_GENL_ATTR_TZ_TRIP_TYPE,
34  	THERMAL_GENL_ATTR_TZ_TRIP_TEMP,
35  	THERMAL_GENL_ATTR_TZ_TRIP_HYST,
36  	THERMAL_GENL_ATTR_TZ_MODE,
37  	THERMAL_GENL_ATTR_TZ_NAME,
38  	THERMAL_GENL_ATTR_TZ_CDEV_WEIGHT,
39  	THERMAL_GENL_ATTR_TZ_GOV,
40  	THERMAL_GENL_ATTR_TZ_GOV_NAME,
41  	THERMAL_GENL_ATTR_CDEV,
42  	THERMAL_GENL_ATTR_CDEV_ID,
43  	THERMAL_GENL_ATTR_CDEV_CUR_STATE,
44  	THERMAL_GENL_ATTR_CDEV_MAX_STATE,
45  	THERMAL_GENL_ATTR_CDEV_NAME,
46  	THERMAL_GENL_ATTR_GOV_NAME,
47  	THERMAL_GENL_ATTR_CPU_CAPABILITY,
48  	THERMAL_GENL_ATTR_CPU_CAPABILITY_ID,
49  	THERMAL_GENL_ATTR_CPU_CAPABILITY_PERFORMANCE,
50  	THERMAL_GENL_ATTR_CPU_CAPABILITY_EFFICIENCY,
51  	__THERMAL_GENL_ATTR_MAX,
52  };
53  #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1)
54  
55  enum thermal_genl_sampling {
56  	THERMAL_GENL_SAMPLING_TEMP,
57  	__THERMAL_GENL_SAMPLING_MAX,
58  };
59  #define THERMAL_GENL_SAMPLING_MAX (__THERMAL_GENL_SAMPLING_MAX - 1)
60  
61  /* Events of thermal_genl_family */
62  enum thermal_genl_event {
63  	THERMAL_GENL_EVENT_UNSPEC,
64  	THERMAL_GENL_EVENT_TZ_CREATE,		/* Thermal zone creation */
65  	THERMAL_GENL_EVENT_TZ_DELETE,		/* Thermal zone deletion */
66  	THERMAL_GENL_EVENT_TZ_DISABLE,		/* Thermal zone disabled */
67  	THERMAL_GENL_EVENT_TZ_ENABLE,		/* Thermal zone enabled */
68  	THERMAL_GENL_EVENT_TZ_TRIP_UP,		/* Trip point crossed the way up */
69  	THERMAL_GENL_EVENT_TZ_TRIP_DOWN,	/* Trip point crossed the way down */
70  	THERMAL_GENL_EVENT_TZ_TRIP_CHANGE,	/* Trip point changed */
71  	THERMAL_GENL_EVENT_TZ_TRIP_ADD,		/* Trip point added */
72  	THERMAL_GENL_EVENT_TZ_TRIP_DELETE,	/* Trip point deleted */
73  	THERMAL_GENL_EVENT_CDEV_ADD,		/* Cdev bound to the thermal zone */
74  	THERMAL_GENL_EVENT_CDEV_DELETE,		/* Cdev unbound */
75  	THERMAL_GENL_EVENT_CDEV_STATE_UPDATE,	/* Cdev state updated */
76  	THERMAL_GENL_EVENT_TZ_GOV_CHANGE,	/* Governor policy changed  */
77  	THERMAL_GENL_EVENT_CPU_CAPABILITY_CHANGE,	/* CPU capability changed */
78  	__THERMAL_GENL_EVENT_MAX,
79  };
80  #define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1)
81  
82  /* Commands supported by the thermal_genl_family */
83  enum thermal_genl_cmd {
84  	THERMAL_GENL_CMD_UNSPEC,
85  	THERMAL_GENL_CMD_TZ_GET_ID,	/* List of thermal zones id */
86  	THERMAL_GENL_CMD_TZ_GET_TRIP,	/* List of thermal trips */
87  	THERMAL_GENL_CMD_TZ_GET_TEMP,	/* Get the thermal zone temperature */
88  	THERMAL_GENL_CMD_TZ_GET_GOV,	/* Get the thermal zone governor */
89  	THERMAL_GENL_CMD_TZ_GET_MODE,	/* Get the thermal zone mode */
90  	THERMAL_GENL_CMD_CDEV_GET,	/* List of cdev id */
91  	__THERMAL_GENL_CMD_MAX,
92  };
93  #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1)
94  
95  #endif /* _UAPI_LINUX_THERMAL_H */
96