1#ifndef _MSM_THERMAL_IOCTL_H 2#define _MSM_THERMAL_IOCTL_H 3 4#include <linux/ioctl.h> 5 6#define MSM_THERMAL_IOCTL_NAME "msm_thermal_query" 7 8struct __attribute__((__packed__)) cpu_freq_arg { 9 uint32_t cpu_num; 10 uint32_t freq_req; 11}; 12 13struct __attribute__((__packed__)) msm_thermal_ioctl { 14 uint32_t size; 15 union { 16 struct cpu_freq_arg cpu_freq; 17 }; 18}; 19 20enum { 21 /*Set CPU Frequency*/ 22 MSM_SET_CPU_MAX_FREQ = 0x00, 23 MSM_SET_CPU_MIN_FREQ = 0x01, 24 25 MSM_CMD_MAX_NR, 26}; 27 28#define MSM_THERMAL_MAGIC_NUM 0xCA /*Unique magic number*/ 29 30#define MSM_THERMAL_SET_CPU_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM,\ 31 MSM_SET_CPU_MAX_FREQ, struct msm_thermal_ioctl) 32 33#define MSM_THERMAL_SET_CPU_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM,\ 34 MSM_SET_CPU_MIN_FREQ, struct msm_thermal_ioctl) 35 36#ifdef __KERNEL__ 37extern int msm_thermal_ioctl_init(void); 38extern void msm_thermal_ioctl_cleanup(void); 39#endif 40 41#endif 42