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