xref: /OK3568_Linux_fs/kernel/include/soc/rockchip/rockchip_ipa.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun #ifndef __SOC_ROCKCHIP_IPA_H
6*4882a593Smuzhiyun #define __SOC_ROCKCHIP_IPA_H
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun struct ipa_power_model_data {
9*4882a593Smuzhiyun 	u32 static_coefficient;
10*4882a593Smuzhiyun 	u32 dynamic_coefficient;
11*4882a593Smuzhiyun 	s32 ts[4];			/* temperature scaling factor */
12*4882a593Smuzhiyun 	struct thermal_zone_device *tz;
13*4882a593Smuzhiyun 	u32 leakage;
14*4882a593Smuzhiyun 	u32 ref_leakage;
15*4882a593Smuzhiyun 	u32 lkg_range[2];		/* min leakage and max leakage */
16*4882a593Smuzhiyun 	s32 ls[3];			/* leakage scaling factor */
17*4882a593Smuzhiyun };
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #if IS_ENABLED(CONFIG_ROCKCHIP_IPA)
20*4882a593Smuzhiyun struct ipa_power_model_data *rockchip_ipa_power_model_init(struct device *dev,
21*4882a593Smuzhiyun 							   char *lkg_name);
22*4882a593Smuzhiyun unsigned long
23*4882a593Smuzhiyun rockchip_ipa_get_static_power(struct ipa_power_model_data *model_data,
24*4882a593Smuzhiyun 			      unsigned long voltage_mv);
25*4882a593Smuzhiyun #else
26*4882a593Smuzhiyun static inline struct ipa_power_model_data *
rockchip_ipa_power_model_init(struct device * dev,char * lkg_name)27*4882a593Smuzhiyun rockchip_ipa_power_model_init(struct device *dev, char *lkg_name)
28*4882a593Smuzhiyun {
29*4882a593Smuzhiyun 	return ERR_PTR(-ENOTSUPP);
30*4882a593Smuzhiyun };
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun static inline unsigned long
rockchip_ipa_get_static_power(struct ipa_power_model_data * data,unsigned long voltage_mv)33*4882a593Smuzhiyun rockchip_ipa_get_static_power(struct ipa_power_model_data *data,
34*4882a593Smuzhiyun 			      unsigned long voltage_mv)
35*4882a593Smuzhiyun {
36*4882a593Smuzhiyun 	return 0;
37*4882a593Smuzhiyun }
38*4882a593Smuzhiyun #endif /* CONFIG_ROCKCHIP_IPA */
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun #endif
41