1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _MSM_THERMAL_IOCTL_H 20 #define _MSM_THERMAL_IOCTL_H 21 #include <linux/ioctl.h> 22 #define MSM_THERMAL_IOCTL_NAME "msm_thermal_query" 23 #define MSM_IOCTL_FREQ_SIZE 16 24 struct __attribute__((__packed__)) cpu_freq_arg { 25 uint32_t cpu_num; 26 uint32_t freq_req; 27 }; 28 struct __attribute__((__packed__)) clock_plan_arg { 29 uint32_t cluster_num; 30 uint32_t freq_table_len; 31 uint32_t set_idx; 32 unsigned int freq_table[MSM_IOCTL_FREQ_SIZE]; 33 }; 34 struct __attribute__((__packed__)) voltage_plan_arg { 35 uint32_t cluster_num; 36 uint32_t voltage_table_len; 37 uint32_t set_idx; 38 uint32_t voltage_table[MSM_IOCTL_FREQ_SIZE]; 39 }; 40 struct __attribute__((__packed__)) msm_thermal_ioctl { 41 uint32_t size; 42 union { 43 struct cpu_freq_arg cpu_freq; 44 struct clock_plan_arg clock_freq; 45 struct voltage_plan_arg voltage; 46 }; 47 }; 48 enum { 49 MSM_SET_CPU_MAX_FREQ = 0x00, 50 MSM_SET_CPU_MIN_FREQ = 0x01, 51 MSM_SET_CLUSTER_MAX_FREQ = 0x02, 52 MSM_SET_CLUSTER_MIN_FREQ = 0x03, 53 MSM_GET_CLUSTER_FREQ_PLAN = 0x04, 54 MSM_GET_CLUSTER_VOLTAGE_PLAN = 0x05, 55 MSM_CMD_MAX_NR, 56 }; 57 #define MSM_THERMAL_MAGIC_NUM 0xCA 58 #define MSM_THERMAL_SET_CPU_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MAX_FREQ, struct msm_thermal_ioctl) 59 #define MSM_THERMAL_SET_CPU_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MIN_FREQ, struct msm_thermal_ioctl) 60 #define MSM_THERMAL_SET_CLUSTER_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MAX_FREQ, struct msm_thermal_ioctl) 61 #define MSM_THERMAL_SET_CLUSTER_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MIN_FREQ, struct msm_thermal_ioctl) 62 #define MSM_THERMAL_GET_CLUSTER_FREQUENCY_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_FREQ_PLAN, struct msm_thermal_ioctl) 63 #define MSM_THERMAL_GET_CLUSTER_VOLTAGE_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_VOLTAGE_PLAN, struct msm_thermal_ioctl) 64 #endif 65 66