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