thermal: core: genetlink support for events/cmd/sampling
[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
48         __THERMAL_GENL_ATTR_MAX,
49 };
50 #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1)
51
52 enum thermal_genl_sampling {
53         THERMAL_GENL_SAMPLING_TEMP,
54         __THERMAL_GENL_SAMPLING_MAX,
55 };
56 #define THERMAL_GENL_SAMPLING_MAX (__THERMAL_GENL_SAMPLING_MAX - 1)
57
58 /* Events of thermal_genl_family */
59 enum thermal_genl_event {
60         THERMAL_GENL_EVENT_UNSPEC,
61         THERMAL_GENL_EVENT_TZ_CREATE,           /* Thermal zone creation */
62         THERMAL_GENL_EVENT_TZ_DELETE,           /* Thermal zone deletion */
63         THERMAL_GENL_EVENT_TZ_DISABLE,          /* Thermal zone disabed */
64         THERMAL_GENL_EVENT_TZ_ENABLE,           /* Thermal zone enabled */
65         THERMAL_GENL_EVENT_TZ_TRIP_UP,          /* Trip point crossed the way up */
66         THERMAL_GENL_EVENT_TZ_TRIP_DOWN,        /* Trip point crossed the way down */
67         THERMAL_GENL_EVENT_TZ_TRIP_CHANGE,      /* Trip point changed */
68         THERMAL_GENL_EVENT_TZ_TRIP_ADD,         /* Trip point added */
69         THERMAL_GENL_EVENT_TZ_TRIP_DELETE,      /* Trip point deleted */
70         THERMAL_GENL_EVENT_CDEV_ADD,            /* Cdev bound to the thermal zone */
71         THERMAL_GENL_EVENT_CDEV_DELETE,         /* Cdev unbound */
72         THERMAL_GENL_EVENT_CDEV_STATE_UPDATE,   /* Cdev state updated */
73         THERMAL_GENL_EVENT_TZ_GOV_CHANGE,       /* Governor policy changed  */
74         __THERMAL_GENL_EVENT_MAX,
75 };
76 #define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1)
77
78 /* Commands supported by the thermal_genl_family */
79 enum thermal_genl_cmd {
80         THERMAL_GENL_CMD_UNSPEC,
81         THERMAL_GENL_CMD_TZ_GET_ID,     /* List of thermal zones id */
82         THERMAL_GENL_CMD_TZ_GET_TRIP,   /* List of thermal trips */
83         THERMAL_GENL_CMD_TZ_GET_TEMP,   /* Get the thermal zone temperature */
84         THERMAL_GENL_CMD_TZ_GET_GOV,    /* Get the thermal zone governor */
85         THERMAL_GENL_CMD_TZ_GET_MODE,   /* Get the thermal zone mode */
86         THERMAL_GENL_CMD_CDEV_GET,      /* List of cdev id */
87         __THERMAL_GENL_CMD_MAX,
88 };
89 #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1)
90
91 #endif /* _UAPI_LINUX_THERMAL_H */