linux/drivers/cpufreq/arm_big_little.h
<<
>>
Prefs
   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
  26struct 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
  40int bL_cpufreq_register(const struct cpufreq_arm_bL_ops *ops);
  41void bL_cpufreq_unregister(const struct cpufreq_arm_bL_ops *ops);
  42
  43#endif /* CPUFREQ_ARM_BIG_LITTLE_H */
  44