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