Linux 6.9-rc1
[linux-2.6-microblaze.git] / include / uapi / linux / thermal.h
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 */