mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-07 16:58:04 -04:00
80 lines
1.7 KiB
C
80 lines
1.7 KiB
C
|
|
#ifndef _INPUT_BOOSTER_H_
|
|
#define _INPUT_BOOSTER_H_
|
|
|
|
#include <linux/cpufreq.h>
|
|
#include <linux/device.h>
|
|
|
|
#define INPUT_BOOSTER_NAME "input_booster"
|
|
|
|
enum input_booster_id {
|
|
INPUT_BOOSTER_ID_TSP = 0,
|
|
INPUT_BOOSTER_ID_TKEY,
|
|
INPUT_BOOSTER_ID_WACOM,
|
|
};
|
|
|
|
#define DVFS_STAGE_NONE 1 << 0 // 0000 0000 0000 0001
|
|
#define DVFS_STAGE_SINGLE 1 << 1 // 0000 0000 0000 0010
|
|
#define DVFS_STAGE_DUAL 1 << 2 // 0000 0000 0000 0100
|
|
#define DVFS_STAGE_TRIPLE 1 << 3 // 0000 0000 0000 1000
|
|
#define DVFS_STAGE_PENTA 1 << 5 // 0000 0000 0010 0000
|
|
#define DVFS_STAGE_NINTH 1 << 9 // 0000 0010 0000 0000
|
|
|
|
|
|
/* Touchkey */
|
|
#define INPUT_BOOSTER_OFF_TIME_TKEY 500
|
|
#define INPUT_BOOSTER_CHG_TIME_TKEY 500
|
|
|
|
|
|
struct input_booster {
|
|
struct delayed_work work_dvfs_off;
|
|
struct delayed_work work_dvfs_chg;
|
|
struct mutex dvfs_lock;
|
|
|
|
bool dvfs_lock_status;
|
|
int dvfs_old_stauts;
|
|
int dvfs_boost_mode;
|
|
int dvfs_freq;
|
|
int bimc_freq;
|
|
int dvfs_id;
|
|
int dvfs_stage;
|
|
|
|
int (*dvfs_off)(struct input_booster *);
|
|
void (*dvfs_set)(struct input_booster *, int);
|
|
};
|
|
|
|
struct dvfs {
|
|
int time;
|
|
s32 cpu_freq;
|
|
s32 bimc_freq;
|
|
};
|
|
|
|
struct input_booster_dt_data {
|
|
int tsp_stage;
|
|
int tkey_stage;
|
|
int wacom_stage;
|
|
int level;
|
|
struct dvfs head;
|
|
struct dvfs tail;
|
|
};
|
|
|
|
struct input_booster_data {
|
|
struct device *dev;
|
|
struct input_booster_dt_data *dt_data;
|
|
struct class *booster_class;
|
|
int dbg_level;
|
|
int level;
|
|
struct dvfs head;
|
|
struct dvfs tail;
|
|
};
|
|
|
|
struct input_booster *input_booster_allocate(int id);
|
|
void input_booster_free(struct input_booster *booster);
|
|
void input_booster_get_default_setting(const char *flag, struct dvfs *value);
|
|
int input_booster_set_level_change(int val);
|
|
|
|
#ifdef CONFIG_DEBUG_BUS_VOTER
|
|
extern int msm_bus_floor_vote(const char *name, u64 floor_hz);
|
|
#endif
|
|
|
|
#endif /* _INPUT_BOOSTER_H_ */
|