android_kernel_samsung_on5x.../drivers/soc/samsung/pwrcal/pwrcal-dfs.h
2018-06-19 23:16:04 +02:00

50 lines
1.7 KiB
C
Executable file

#ifndef __PWRCAL_DFS_H__
#define __PWRCAL_DFS_H__
#include "pwrcal-env.h"
#include "pwrcal-clk.h"
#include "pwrcal-vclk.h"
#define TRANS_HIGH 0
#define TRANS_LOW 1
#define TRANS_DIFF 2
#define TRANS_FORCE 3
#define get_value(_table, _level, _member) \
(*(_table->rate_table + (_table->num_of_members * _level + _member)))
extern unsigned int dfs_set_rate_switch(unsigned int rate_from,
unsigned int rate_to,
struct dfs_table *table);
extern int dfs_enable_switch(struct dfs_table *table);
extern int dfs_disable_switch(struct dfs_table *table);
extern int dfs_use_switch(struct dfs_table *table);
extern int dfs_not_use_switch(struct dfs_table *table);
extern int dfs_trans_div(int lv_from, int lv_to, struct dfs_table *table, int opt);
extern int dfs_trans_pll(int lv_from, int lv_to, struct dfs_table *table, int opt);
extern int dfs_trans_mux(int lv_from, int lv_to, struct dfs_table *table, int opt);
extern int dfs_trans_gate(int lv_from, int lv_to, struct dfs_table *table, int opt);
extern int dfs_get_lv(unsigned int rate, struct dfs_table *table);
extern int dfs_get_rate_table(struct dfs_table *dfs, unsigned long *table);
extern int dfs_get_target_rate_table(struct dfs_table *dfs,
unsigned int mux,
unsigned int div,
unsigned long *table);
extern int dfs_set_rate(struct vclk *vclk, unsigned long to);
extern unsigned long dfs_get_rate(struct vclk *vclk);
extern int dfs_enable(struct vclk *vclk);
extern int dfs_disable(struct vclk *vclk);
extern int dfs_is_enabled(struct vclk *vclk);
extern unsigned long dfs_get_max_freq(struct vclk *vclk);
extern unsigned long dfs_get_min_freq(struct vclk *vclk);
extern void dfs_init(void);
extern void dfs_dram_init(void);
#endif