blob: fc2939ad827819dcc8304fe73142a6ef6f5353c9 [file]
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef __DVFSRC_EXP_H
#define __DVFSRC_EXP_H
#define MTK_DVFSRC_NUM_DVFS_OPP 0
#define MTK_DVFSRC_NUM_DRAM_OPP 1
#define MTK_DVFSRC_NUM_VCORE_OPP 2
#define MTK_DVFSRC_CURR_DVFS_OPP 3
#define MTK_DVFSRC_CURR_DRAM_OPP 4
#define MTK_DVFSRC_CURR_VCORE_OPP 5
#define MTK_DVFSRC_CURR_DVFS_LEVEL 6
#define MTK_DVFSRC_CURR_DRAM_KHZ 7
#define MTK_DVFSRC_CURR_VCORE_UV 8
#define MTK_DVFSRC_SW_REQ_VCORE_OPP 9
#if IS_ENABLED(CONFIG_MTK_DVFSRC)
extern u32 dvfsrc_get_required_opp_peak_bw(struct device_node *np,
int index);
#else
static inline u32 dvfsrc_get_required_opp_peak_bw(struct device_node *np,
int index)
{ return 0; }
#endif /* CONFIG_MTK_DVFSRC */
#if IS_ENABLED(CONFIG_MTK_DVFSRC_HELPER)
extern int mtk_dvfsrc_query_opp_info(u32 id);
extern int mtk_dvfsrc_vcore_uv_table(u32 opp);
#else
static inline int mtk_dvfsrc_query_opp_info(u32 id)
{ return 0; }
static inline int mtk_dvfsrc_vcore_uv_table(u32 opp)
{ return 0; }
#endif /* CONFIG_MTK_DVFSRC_HELPER */
#if IS_ENABLED(CONFIG_MTK_DVFSRC_MET)
/* for MET */
extern int vcorefs_get_num_opp(void);
extern int vcorefs_get_opp_info_num(void);
extern int vcorefs_get_src_req_num(void);
extern char **vcorefs_get_opp_info_name(void);
extern unsigned int *vcorefs_get_opp_info(void);
extern char **vcorefs_get_src_req_name(void);
extern unsigned int *vcorefs_get_src_req(void);
#else
/* for MET */
static inline int vcorefs_get_num_opp(void)
{ return 0; }
static inline int vcorefs_get_opp_info_num(void)
{ return 0; }
static inline int vcorefs_get_src_req_num(void)
{ return 0; }
static inline char **vcorefs_get_opp_info_name(void)
{ return NULL; }
static inline unsigned int *vcorefs_get_opp_info(void)
{ return NULL; }
static inline char **vcorefs_get_src_req_name(void)
{ return NULL; }
static inline unsigned int *vcorefs_get_src_req(void)
{ return NULL; }
#endif /* CONFIG_MTK_DVFSRC_MET */
#endif