1 /* drivers/gpu/t6xx/kbase/src/platform/manta/mali_kbase_dvfs.h
3 * Copyright 2011 by S.LSI. Samsung Electronics Inc.
4 * San#24, Nongseo-Dong, Giheung-Gu, Yongin, Korea
6 * Samsung SoC Mali-T604 DVFS driver
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.
14 * @file mali_kbase_dvfs.h
18 #ifndef _KBASE_DVFS_H_
19 #define _KBASE_DVFS_H_
21 /* Frequency that DVFS clock frequency decisions should be made */
22 #define KBASE_PM_DVFS_FREQUENCY 100
24 #define MALI_DVFS_KEEP_STAY_CNT 10
25 #define MALI_DVFS_TIME_INTERVAL 5
27 #define MALI_DVFS_CURRENT_FREQ 0
28 #define MALI_DVFS_BL_CONFIG_FREQ 533
29 #define MALI_DVFS_START_FREQ 450
31 #ifdef CONFIG_MALI_T6XX_DVFS
32 #define CONFIG_MALI_T6XX_FREQ_LOCK
35 void kbase_platform_dvfs_set_clock(kbase_device *kbdev, int freq);
36 void kbase_platform_dvfs_set_level(struct kbase_device *kbdev, int level);
37 int kbase_platform_dvfs_get_level(int freq);
39 #ifdef CONFIG_MALI_T6XX_DVFS
40 int kbase_platform_dvfs_init(struct kbase_device *dev);
41 void kbase_platform_dvfs_term(void);
42 int kbase_platform_dvfs_event(struct kbase_device *kbdev, u32 utilisation);
43 int kbase_platform_dvfs_get_enable_status(void);
44 int kbase_platform_dvfs_enable(bool enable, int freq);
45 int kbase_platform_dvfs_get_utilisation(void);
48 int mali_get_dvfs_current_level(void);
49 int mali_get_dvfs_upper_locked_freq(void);
50 int mali_get_dvfs_under_locked_freq(void);
51 int mali_dvfs_freq_lock(int level);
52 void mali_dvfs_freq_unlock(void);
53 int mali_dvfs_freq_under_lock(int level);
54 void mali_dvfs_freq_under_unlock(void);
56 ssize_t show_time_in_state(struct device *dev, struct device_attribute *attr, char *buf);
57 ssize_t set_time_in_state(struct device *dev, struct device_attribute *attr, const char *buf, size_t count);
59 #endif /* _KBASE_DVFS_H_ */