1 /* drivers/gpu/midgard/platform/rk/mali_kbase_dvfs.h
3 * Rockchip SoC Mali-T764 DVFS driver
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software FoundatIon.
11 * @file mali_kbase_dvfs.h
15 #ifndef _KBASE_DVFS_H_
16 #define _KBASE_DVFS_H_
18 /* Frequency that DVFS clock frequency decisions should be made */
19 #define KBASE_PM_DVFS_FREQUENCY 100
21 #define MALI_DVFS_KEEP_STAY_CNT 10
22 #define MALI_DVFS_UP_TIME_INTERVAL 1
23 #define MALI_DVFS_DOWN_TIME_INTERVAL 2
24 #define MALI_DVFS_CURRENT_FREQ 0
26 #define MALI_DVFS_BL_CONFIG_FREQ 500
27 #define MALI_DVFS_START_FREQ 400
29 typedef struct _mali_dvfs_info {
34 unsigned long long time;
38 extern mali_dvfs_info *p_mali_dvfs_infotbl;
39 extern unsigned int MALI_DVFS_STEP;
40 #ifdef CONFIG_MALI_MIDGARD_DVFS
41 #define CONFIG_MALI_MIDGARD_FREQ_LOCK
44 void kbase_platform_dvfs_set_clock(struct kbase_device *kbdev, int freq);
45 void kbase_platform_dvfs_set_level(struct kbase_device *kbdev, int level);
46 int kbase_platform_dvfs_get_level(int freq);
48 #ifdef CONFIG_MALI_MIDGARD_DVFS
49 int kbase_platform_dvfs_init(struct kbase_device *dev);
50 void kbase_platform_dvfs_term(void);
51 /*int kbase_platform_dvfs_event(struct kbase_device *kbdev, u32 utilisation);*/
52 /*int kbase_platform_dvfs_event(struct kbase_device *kbdev, u32 utilisation,u32 util_gl_share, u32 util_cl_share[2]);*/
53 int kbase_platform_dvfs_get_enable_status(void);
54 int kbase_platform_dvfs_enable(bool enable, int freq);
55 int kbase_platform_dvfs_get_utilisation(void);
58 int mali_get_dvfs_current_level(void);
59 int mali_get_dvfs_upper_locked_freq(void);
60 int mali_get_dvfs_under_locked_freq(void);
61 int mali_dvfs_freq_lock(int level);
62 void mali_dvfs_freq_unlock(void);
63 int mali_dvfs_freq_under_lock(int level);
64 void mali_dvfs_freq_under_unlock(void);
66 ssize_t show_time_in_state(struct device *dev, struct device_attribute *attr, char *buf);
67 ssize_t set_time_in_state(struct device *dev, struct device_attribute *attr, const char *buf, size_t count);
69 #endif /* _KBASE_DVFS_H_ */