mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-04 18:49:41 +00:00

The Dynamic Voltage and Frequency Scaling Resource Collector (DVFSRC) is a Hardware module used to collect all the requests from both software and the various remote processors embedded into the SoC and decide about a minimum operating voltage and a minimum DRAM frequency to fulfill those requests in an effort to provide the best achievable performance per watt. This hardware IP is capable of transparently performing direct register R/W on all of the DVFSRC-controlled regulators and SoC bandwidth knobs. This driver includes support for MT8183, MT8192 and MT8195. Co-Developed-by: Dawei Chien <dawei.chien@mediatek.com> [Angelo: Partial refactoring and cleanups] Reviewed-by: Georgi Djakov <djakov@kerenl.org> Link: https://lore.kernel.org/r/20240610085735.147134-5-angelogioacchino.delregno@collabora.com Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
37 lines
903 B
C
37 lines
903 B
C
/* SPDX-License-Identifier: GPL-2.0
|
|
*
|
|
* Copyright (c) 2021 MediaTek Inc.
|
|
* Copyright (c) 2024 Collabora Ltd.
|
|
* AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
|
*/
|
|
|
|
#ifndef __MEDIATEK_DVFSRC_H
|
|
#define __MEDIATEK_DVFSRC_H
|
|
|
|
enum mtk_dvfsrc_cmd {
|
|
MTK_DVFSRC_CMD_BW,
|
|
MTK_DVFSRC_CMD_HRT_BW,
|
|
MTK_DVFSRC_CMD_PEAK_BW,
|
|
MTK_DVFSRC_CMD_OPP,
|
|
MTK_DVFSRC_CMD_VCORE_LEVEL,
|
|
MTK_DVFSRC_CMD_VSCP_LEVEL,
|
|
MTK_DVFSRC_CMD_MAX,
|
|
};
|
|
|
|
#if IS_ENABLED(CONFIG_MTK_DVFSRC)
|
|
|
|
int mtk_dvfsrc_send_request(const struct device *dev, u32 cmd, u64 data);
|
|
int mtk_dvfsrc_query_info(const struct device *dev, u32 cmd, int *data);
|
|
|
|
#else
|
|
|
|
static inline int mtk_dvfsrc_send_request(const struct device *dev, u32 cmd, u64 data)
|
|
{ return -ENODEV; }
|
|
|
|
static inline int mtk_dvfsrc_query_info(const struct device *dev, u32 cmd, int *data)
|
|
{ return -ENODEV; }
|
|
|
|
#endif /* CONFIG_MTK_DVFSRC */
|
|
|
|
#endif
|