1 /* linux/arch/arm/mach-s5pv310/include/mach/cpufreq.h
3 * Copyright (c) 2010 Samsung Electronics Co., Ltd.
4 * http://www.samsung.com
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
11 /* CPUFreq for S5PV310/S5PC210 */
13 /* CPU frequency level index for using cpufreq lock API
14 * This should be same with cpufreq_frequency_table
16 #ifndef __MACH_CPUFREQ_H
17 #define __MACH_CPUFREQ_H __FILE__
18 #include <linux/cpufreq.h>
20 enum cpufreq_level_request{
21 #ifdef CONFIG_S5PV310_ENABLE_1200MHZ
31 enum busfreq_level_request{
32 BUS_L0, /* MEM 400MHz BUS 200MHz */
33 BUS_L1, /* MEM 267MHz BUS 160MHz */
34 BUS_L2, /* MEM 133MHz BUS 133MHz */
35 #if defined(CONFIG_S5PV310_INT_L3)
36 BUS_L3, /* MEM 66MHz BUS 66MHz */
42 DVFS_LOCK_ID_G2D, /* G2D */
43 DVFS_LOCK_ID_TV, /* TV */
44 DVFS_LOCK_ID_MFC, /* MFC */
45 DVFS_LOCK_ID_USB, /* USB */
46 DVFS_LOCK_ID_CAM, /* CAM */
47 DVFS_LOCK_ID_APP, /* APP */
49 #if CONFIG_TOUCHSCREEN_MXT224U1
50 DVFS_LOCK_ID_TSP, /*TSP*/
52 DVFS_LOCK_ID_TMU, /* TMU */
56 extern int s5pv310_cpufreq_lock(unsigned int nId,
57 enum cpufreq_level_request cpufreq_level);
58 extern void s5pv310_cpufreq_lock_free(unsigned int nId);
60 extern int s5pv310_busfreq_lock(unsigned int nId,
61 enum busfreq_level_request busfreq_level);
62 extern void s5pv310_busfreq_lock_free(unsigned int nId);
64 int s5pv310_cpufreq_upper_limit(unsigned int nId, enum cpufreq_level_request cpufreq_level);
65 void s5pv310_cpufreq_upper_limit_free(unsigned int nId);
67 extern void s5pv310_busfreq_force_notify(struct cpufreq_freqs *freq);
69 #endif /* __MACH_CPUFREQ_H */