unplugged-vendor/kernel-4.19/drivers/misc/mediatek/smi/mmdvfs_config_mt6761.h

113 lines
3.0 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef __MMDVFS_CONFIG_MT6761_H__
#define __MMDVFS_CONFIG_MT6761_H__
#include "mmdvfs_config_util.h"
/* Part I MMSVFS HW Configuration (OPP)*/
/* Define the number of mmdvfs, vcore and mm clks opps */
/* Max total MMDVFS opps of the profile support */
#define MT6761_MMDVFS_OPP_MAX 3
struct mmdvfs_profile_mask qos_apply_profiles[] = {
/* #ifdef MMDVFS_QOS_SUPPORT */
/* ISP for opp0 */
{"ISP",
SMI_BWC_SCEN_CAM_PV,
MMDVFS_FINE_STEP_OPP0},
{"ISP",
SMI_BWC_SCEN_CAM_CP,
MMDVFS_FINE_STEP_OPP0},
{"ISP",
SMI_BWC_SCEN_VR,
MMDVFS_FINE_STEP_OPP0},
/* ISP for opp1 */
{"ISP",
SMI_BWC_SCEN_CAM_PV,
MMDVFS_FINE_STEP_OPP1},
{"ISP",
SMI_BWC_SCEN_CAM_CP,
MMDVFS_FINE_STEP_OPP1},
{"ISP",
SMI_BWC_SCEN_VR,
MMDVFS_FINE_STEP_OPP1},
/* ISP for opp2 */
{"ISP",
SMI_BWC_SCEN_CAM_PV,
MMDVFS_FINE_STEP_OPP2},
{"ISP",
SMI_BWC_SCEN_CAM_CP,
MMDVFS_FINE_STEP_OPP2},
{"ISP",
SMI_BWC_SCEN_VR,
MMDVFS_FINE_STEP_OPP2},
/* ICFP for opp0 */
{"ICFP",
SMI_BWC_SCEN_ICFP,
MMDVFS_FINE_STEP_OPP0},
/* debug entry */
{"DEBUG",
0,
MMDVFS_FINE_STEP_UNREQUEST },
};
/* Part II MMDVFS Scenario's Step Confuguration */
#define MT6761_MMDVFS_SENSOR_MIN (13000000)
#define MT6761_MMDVFS_SENSOR_MID (16000000)
/* A.1 [LP4 2-ch] Scenarios of each MM DVFS Step (force kicker) */
/* OPP 0 scenarios */
#define MT6761_MMDVFS_OPP0_NUM 1
struct mmdvfs_profile mt6761_mmdvfs_opp0_profiles[MT6761_MMDVFS_OPP0_NUM] = {
{"ICFP", SMI_BWC_SCEN_ICFP, {0, 0, 0}, {0, 0, 0 } },
/*
* {"Camera Preview", SMI_BWC_SCEN_CAM_PV,
* {MT6761_MMDVFS_SENSOR_MID, 0, 0}, {0, 0, 0 } },
* {"Camera Capture", SMI_BWC_SCEN_CAM_CP,
* {MT6761_MMDVFS_SENSOR_MID, 0, 0}, {0, 0, 0 } },
* {"Video Recording", SMI_BWC_SCEN_VR,
* {MT6761_MMDVFS_SENSOR_MID, 0, 0}, {0, 0, 0 } },
*/
};
/* OPP 1 scenarios */
#define MT6761_MMDVFS_OPP1_NUM 0
struct mmdvfs_profile mt6761_mmdvfs_opp1_profiles[MT6761_MMDVFS_OPP1_NUM] = {
/*
* {"Camera Preview", SMI_BWC_SCEN_CAM_PV,
* {MT6761_MMDVFS_SENSOR_MIN, 0, 0}, {0, 0, 0 } },
* {"Camera Capture", SMI_BWC_SCEN_CAM_CP,
* {MT6761_MMDVFS_SENSOR_MIN, 0, 0}, {0, 0, 0 } },
* {"Video Recording", SMI_BWC_SCEN_VR,
* {MT6761_MMDVFS_SENSOR_MIN, 0, 0}, {0, 0, 0 } },
*/
};
/* OPP 2 scenarios */
#define MT6761_MMDVFS_OPP2_NUM 0
struct mmdvfs_profile mt6761_mmdvfs_opp2_profiles[MT6761_MMDVFS_OPP2_NUM] = {
/*
* {"Camera Preview", SMI_BWC_SCEN_CAM_PV, {0, 0, 0}, {0, 0, 0 } },
* {"Camera Capture", SMI_BWC_SCEN_CAM_CP, {0, 0, 0}, {0, 0, 0 } },
* {"Video Recording", SMI_BWC_SCEN_VR, {0, 0, 0}, {0, 0, 0 } },
*/
};
struct mmdvfs_step_to_qos_step legacy_to_qos_step[MT6761_MMDVFS_OPP_MAX] = {
{0, 0},
{1, 1},
{2, 2},
};
struct mmdvfs_step_profile mt6761_step_profile[MT6761_MMDVFS_OPP_MAX] = {
{0, mt6761_mmdvfs_opp0_profiles, MT6761_MMDVFS_OPP0_NUM, {0} },
{1, mt6761_mmdvfs_opp1_profiles, MT6761_MMDVFS_OPP1_NUM, {0} },
{2, mt6761_mmdvfs_opp2_profiles, MT6761_MMDVFS_OPP2_NUM, {0} },
};
#endif /* __MMDVFS_CONFIG_MT6761_H__ */