1 /* linux/arch/arm/mach-exynos/include/mach/cpufreq.h
2  *
3  * Copyright (c) 2010 Samsung Electronics Co., Ltd.
4  *		http://www.samsung.com
5  *
6  * EXYNOS - CPUFreq support
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11 */
12 
13 enum cpufreq_level_index {
14 	L0, L1, L2, L3, L4,
15 	L5, L6, L7, L8, L9,
16 	L10, L11, L12, L13, L14,
17 	L15, L16, L17, L18, L19,
18 	L20,
19 };
20 
21 struct exynos_dvfs_info {
22 	unsigned long	mpll_freq_khz;
23 	unsigned int	pll_safe_idx;
24 	unsigned int	pm_lock_idx;
25 	unsigned int	max_support_idx;
26 	unsigned int	min_support_idx;
27 	struct clk	*cpu_clk;
28 	unsigned int	*volt_table;
29 	struct cpufreq_frequency_table	*freq_table;
30 	void (*set_freq)(unsigned int, unsigned int);
31 	bool (*need_apll_change)(unsigned int, unsigned int);
32 };
33 
34 extern int exynos4210_cpufreq_init(struct exynos_dvfs_info *);
35 extern int exynos4x12_cpufreq_init(struct exynos_dvfs_info *);
36 extern int exynos5250_cpufreq_init(struct exynos_dvfs_info *);
37