kernel-brax3-ubuntu-touch/include/soc/mediatek/mmdvfs_v3.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

78 lines
2.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2022 MediaTek Inc.
*/
#ifndef MTK_MMDVFS_V3_H
#define MTK_MMDVFS_V3_H
#include <linux/remoteproc/mtk_ccu.h>
typedef int (*call_ccu)(struct platform_device *pdev,
enum mtk_ccu_feature_type featureType,
uint32_t msgId, void *inDataPtr, uint32_t inDataSize);
enum {
CCU_PWR_USR_MMDVFS,
CCU_PWR_USR_IMG,
CCU_PWR_USR_NUM
};
enum {
VCP_PWR_USR_MMDVFS_INIT,
VCP_PWR_USR_MMDVFS_GENPD,
VCP_PWR_USR_MMDVFS_FORCE,
VCP_PWR_USR_MMDVFS_VOTE,
VCP_PWR_USR_MMDVFS_CCU,
VCP_PWR_USR_MMDVFS_RST,
VCP_PWR_USR_MMQOS,
VCP_PWR_USR_CAM,
VCP_PWR_USR_IMG,
VCP_PWR_USR_PDA,
VCP_PWR_USR_SENIF,
VCP_PWR_USR_VDEC,
VCP_PWR_USR_VFMT,
VCP_PWR_USR_SMI,
VCP_PWR_USR_NUM
};
enum {
VMM_USR_CAM,
VMM_USR_IMG,
VMM_USR_VDE = 1,
VMM_USR_NUM
};
#if IS_ENABLED(CONFIG_MTK_MMDVFS)
int mtk_mmdvfs_get_ipi_status(void);
int mtk_mmdvfs_enable_vcp(const bool enable, const u8 idx);
int mtk_mmdvfs_enable_ccu(const bool enable, const u8 idx);
int mtk_mmdvfs_camera_notify(const bool enable);
int mtk_mmdvfs_genpd_notify(const u8 idx, const bool enable);
int mtk_mmdvfs_set_avs(const u8 idx, const u32 aging, const u32 fresh);
int mtk_mmdvfs_v3_set_force_step(const u16 pwr_idx, const s16 opp);
int mtk_mmdvfs_v3_set_vote_step(const u16 pwr_idx, const s16 opp);
int mtk_mmdvfs_fmeter_register_notifier(struct notifier_block *nb);
void mmdvfs_set_lp_mode(bool lp_mode);
void mmdvfs_call_ccu_set_fp(call_ccu fp);
#else
static inline int mtk_mmdvfs_get_ipi_status(void) { return 0; }
static inline int mtk_mmdvfs_enable_vcp(const bool enable, const u8 idx) { return 0; }
static inline int mtk_mmdvfs_enable_ccu(const bool enable, const u8 idx) { return 0; }
static inline int mtk_mmdvfs_camera_notify(const bool enable) { return 0; }
static inline int mtk_mmdvfs_genpd_notify(const u8 idx, const bool enable) { return 0; }
static inline int mtk_mmdvfs_set_avs(const u8 idx, const u32 aging, const u32 fresh) { return 0; }
static inline int mtk_mmdvfs_v3_set_force_step(const u16 pwr_idx, const s16 opp) { return 0; }
static inline int mtk_mmdvfs_v3_set_vote_step(const u16 pwr_idx, const s16 opp) { return 0; }
static inline int mtk_mmdvfs_fmeter_register_notifier(struct notifier_block *nb) { return 0; }
static inline void mmdvfs_set_lp_mode(bool lp_mode) { return; }
static inline void mmdvfs_call_ccu_set_fp(call_ccu fp) {return; }
#endif
#endif /* MTK_MMDVFS_V3_H */