Mahesh Sivasubramanian | c2ea76f | 2016-02-01 10:40:26 -0700 | [diff] [blame] | 1 | #ifndef __MSM_CORE_LIB_H__ |
| 2 | #define __MSM_CORE_LIB_H__ |
| 3 | |
| 4 | #include <linux/ioctl.h> |
| 5 | |
| 6 | #define TEMP_DATA_POINTS 13 |
| 7 | #define MAX_NUM_FREQ 200 |
| 8 | |
| 9 | enum msm_core_ioctl_params { |
| 10 | MSM_CORE_LEAKAGE, |
| 11 | MSM_CORE_VOLTAGE, |
| 12 | }; |
| 13 | |
| 14 | #define MSM_CORE_MAGIC 0x9D |
| 15 | |
| 16 | struct sched_params { |
| 17 | uint32_t cpumask; |
| 18 | uint32_t cluster; |
| 19 | uint32_t power[TEMP_DATA_POINTS][MAX_NUM_FREQ]; |
| 20 | uint32_t voltage[MAX_NUM_FREQ]; |
| 21 | uint32_t freq[MAX_NUM_FREQ]; |
| 22 | }; |
| 23 | |
| 24 | |
| 25 | #define EA_LEAKAGE _IOWR(MSM_CORE_MAGIC, MSM_CORE_LEAKAGE,\ |
| 26 | struct sched_params) |
| 27 | #define EA_VOLT _IOWR(MSM_CORE_MAGIC, MSM_CORE_VOLTAGE,\ |
| 28 | struct sched_params) |
| 29 | #endif |