blob: 89ff21bb559bbae916f4d5ea5081ed23759622e8 [file] [log] [blame]
#include <linux/types.h>
#include <linux/workqueue.h>
#include <linux/clk-provider.h>
#include <linux/clk.h>
#define RESET0_MASK 0x00
#define RESET1_MASK 0x01
#define RESET2_MASK 0x02
#define RESET0_LEVEL 0x10
#define RESET1_LEVEL 0x11
#define RESET2_LEVEL 0x12
#define Mali_WrReg(regnum, value) writel((value),(kbdev->reg + (regnum)))
#define Mali_RdReg(regnum) readl(kbdev->reg + (regnum))
#define MESON_PRINT(...)
struct meson_context {
struct mutex gpu_clock_lock;
struct mutex gpu_dvfs_handler_lock;
spinlock_t gpu_dvfs_spinlock;
#ifdef CONFIG_MALI_MIDGARD_DVFS
int utilization;
int util_gl_share;
int util_cl_share[2];
#ifdef CONFIG_CPU_THERMAL_IPA
int norm_utilisation;
int freq_for_normalisation;
unsigned long long power;
#endif /* CONFIG_CPU_THERMAL_IPA */
int max_lock;
int min_lock;
#if 0
int user_max_lock[NUMBER_LOCK];
int user_min_lock[NUMBER_LOCK];
#endif
int target_lock_type;
int down_requirement;
bool wakeup_lock;
int governor_num;
int governor_type;
char governor_list[100];
bool dvfs_status;
#ifdef CONFIG_CPU_THERMAL_IPA
int time_tick;
u32 time_busy;
u32 time_idle;
#endif /* CONFIG_CPU_THERMAL_IPA */
#endif
int cur_clock;
int cur_voltage;
int voltage_margin;
bool tmu_status;
int debug_level;
int polling_speed;
struct workqueue_struct *dvfs_wq;
void __iomem *reg_base_reset;
void __iomem *reg_base_aobus;
void __iomem *reg_base_hiubus;
struct clk *clk_mali;
struct clk *clk_gp;
};