/* * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __SOC_ROCKCHIP_OPP_SELECT_H #define __SOC_ROCKCHIP_OPP_SELECT_H #if IS_ENABLED(CONFIG_ROCKCHIP_OPP) int rockchip_of_get_leakage(struct device *dev, char *lkg_name, int *leakage); void rockchip_of_get_lkg_sel(struct device *dev, struct device_node *np, char *lkg_name, int process, int *volt_sel, int *scale_sel); void rockchip_of_get_pvtm_sel(struct device *dev, struct device_node *np, char *reg_name, int process, int *volt_sel, int *scale_sel); void rockchip_of_get_bin_sel(struct device *dev, struct device_node *np, int bin, int *scale_sel); void rockchip_of_get_bin_volt_sel(struct device *dev, struct device_node *np, int bin, int *bin_volt_sel); int rockchip_nvmem_cell_read_u8(struct device_node *np, const char *cell_id, u8 *val); int rockchip_nvmem_cell_read_u16(struct device_node *np, const char *cell_id, u16 *val); void rockchip_get_soc_info(struct device *dev, const struct of_device_id *matches, int *bin, int *process); void rockchip_get_scale_volt_sel(struct device *dev, char *lkg_name, char *reg_name, int bin, int process, int *scale, int *volt_sel); struct opp_table *rockchip_set_opp_prop_name(struct device *dev, int process, int volt_sel); int rockchip_adjust_power_scale(struct device *dev, int scale); int rockchip_init_opp_table(struct device *dev, const struct of_device_id *matches, char *lkg_name, char *reg_name); #else static inline int rockchip_of_get_leakage(struct device *dev, char *lkg_name, int *leakage) { return -ENOTSUPP; } static inline void rockchip_of_get_lkg_sel(struct device *dev, struct device_node *np, char *lkg_name, int process, int *volt_sel, int *scale_sel) { } static inline void rockchip_of_get_pvtm_sel(struct device *dev, struct device_node *np, char *reg_name, int process, int *volt_sel, int *scale_sel) { } static inline void rockchip_of_get_bin_sel(struct device *dev, struct device_node *np, int bin, int *scale_sel) { } static inline void rockchip_of_get_bin_volt_sel(struct device *dev, struct device_node *np, int bin, int *bin_volt_sel) { } static inline int rockchip_nvmem_cell_read_u8(struct device_node *np, const char *cell_id, u8 *val) { return -EOPNOTSUPP; } static inline int rockchip_nvmem_cell_read_u16(struct device_node *np, const char *cell_id, u16 *val) { return -EOPNOTSUPP; } static inline void rockchip_get_soc_info(struct device *dev, const struct of_device_id *matches, int *bin, int *process) { } static inline void rockchip_get_scale_volt_sel(struct device *dev, char *lkg_name, char *reg_name, int bin, int process, int *scale, int *volt_sel) { } static inline struct opp_table *rockchip_set_opp_prop_name(struct device *dev, int process, int volt_sel) { return ERR_PTR(-ENOTSUPP); } static inline int rockchip_adjust_power_scale(struct device *dev, int scale) { return -ENOTSUPP; } static inline int rockchip_init_opp_table(struct device *dev, const struct of_device_id *matches, char *lkg_name, char *reg_name) { return -ENOTSUPP; } #endif /* CONFIG_ROCKCHIP_OPP */ #endif