1 /* 2 * ARM big.LITTLE platform's CPUFreq header file 3 * 4 * Copyright (C) 2013 ARM Ltd. 5 * Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com> 6 * 7 * Copyright (C) 2013 Linaro. 8 * Viresh Kumar <viresh.kumar@linaro.org> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 * 14 * This program is distributed "as is" WITHOUT ANY WARRANTY of any 15 * kind, whether express or implied; without even the implied warranty 16 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 */ 19 #ifndef CPUFREQ_ARM_BIG_LITTLE_H 20 #define CPUFREQ_ARM_BIG_LITTLE_H 21 22 #include <linux/cpufreq.h> 23 #include <linux/device.h> 24 #include <linux/types.h> 25 26 struct cpufreq_arm_bL_ops { 27 char name[CPUFREQ_NAME_LEN]; 28 29 /* 30 * This must set opp table for cpu_dev in a similar way as done by 31 * dev_pm_opp_of_add_table(). 32 */ 33 int (*init_opp_table)(const struct cpumask *cpumask); 34 35 /* Optional */ 36 int (*get_transition_latency)(struct device *cpu_dev); 37 void (*free_opp_table)(const struct cpumask *cpumask); 38 }; 39 40 int bL_cpufreq_register(const struct cpufreq_arm_bL_ops *ops); 41 void bL_cpufreq_unregister(const struct cpufreq_arm_bL_ops *ops); 42 43 #endif /* CPUFREQ_ARM_BIG_LITTLE_H */ 44