// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023, Linaro Limited
*/
#include <dt-bindings/interconnect/qcom,sm6115.h>
#include <linux/device.h>
#include <linux/interconnect-provider.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include "icc-rpm.h"
static const char * const snoc_intf_clocks[] = {
"cpu_axi",
"ufs_axi",
"usb_axi",
"ipa", /* Required by qxm_ipa */
};
static const char * const cnoc_intf_clocks[] = {
"usb_axi",
};
enum {
SM6115_MASTER_AMPSS_M0,
SM6115_MASTER_ANOC_SNOC,
SM6115_MASTER_BIMC_SNOC,
SM6115_MASTER_CAMNOC_HF,
SM6115_MASTER_CAMNOC_SF,
SM6115_MASTER_CRYPTO_CORE0,
SM6115_MASTER_GRAPHICS_3D,
SM6115_MASTER_IPA,
SM6115_MASTER_MDP_PORT0,
SM6115_MASTER_PIMEM,
SM6115_MASTER_QDSS_BAM,
SM6115_MASTER_QDSS_DAP,
SM6115_MASTER_QDSS_ETR,
SM6115_MASTER_QPIC,
SM6115_MASTER_QUP_0,
SM6115_MASTER_QUP_CORE_0,
SM6115_MASTER_SDCC_1,
SM6115_MASTER_SDCC_2,
SM6115_MASTER_SNOC_BIMC_NRT,
SM6115_MASTER_SNOC_BIMC_RT,
SM6115_MASTER_SNOC_BIMC,
SM6115_MASTER_SNOC_CFG,
SM6115_MASTER_SNOC_CNOC,
SM6115_MASTER_TCU_0,
SM6115_MASTER_TIC,
SM6115_MASTER_USB3,
SM6115_MASTER_VIDEO_P0,
SM6115_MASTER_VIDEO_PROC,
SM6115_SLAVE_AHB2PHY_USB,
SM6115_SLAVE_ANOC_SNOC,
SM6115_SLAVE_APPSS,
SM6115_SLAVE_APSS_THROTTLE_CFG,
SM6115_SLAVE_BIMC_CFG,
SM6115_SLAVE_BIMC_SNOC,
SM6115_SLAVE_BOOT_ROM,
SM6115_SLAVE_CAMERA_CFG,
SM6115_SLAVE_CAMERA_NRT_THROTTLE_CFG,
SM6115_SLAVE_CAMERA_RT_THROTTLE_CFG,
SM6115_SLAVE_CLK_CTL,
SM6115_SLAVE_CNOC_MSS,
SM6115_SLAVE_CRYPTO_0_CFG,
SM6115_SLAVE_DCC_CFG,
SM6115_SLAVE_DDR_PHY_CFG,
SM6115_SLAVE_DDR_SS_CFG,
SM6115_SLAVE_DISPLAY_CFG,
SM6115_SLAVE_DISPLAY_THROTTLE_CFG,
SM6115_SLAVE_EBI_CH0,
SM6115_SLAVE_GPU_CFG,
SM6115_SLAVE_GPU_THROTTLE_CFG,
SM6115_SLAVE_HWKM_CORE,
SM6115_SLAVE_IMEM_CFG,
SM6115_SLAVE_IPA_CFG,
SM6115_SLAVE_LPASS,
SM6115_SLAVE_MAPSS,
SM6115_SLAVE_MDSP_MPU_CFG,
SM6115_SLAVE_MESSAGE_RAM,
SM6115_SLAVE_OCIMEM,
SM6115_SLAVE_PDM,
SM6115_SLAVE_PIMEM_CFG,
SM6115_SLAVE_PIMEM,
SM6115_SLAVE_PKA_CORE,
SM6115_SLAVE_PMIC_ARB,
SM6115_SLAVE_QDSS_CFG,
SM6115_SLAVE_QDSS_STM,
SM6115_SLAVE_QM_CFG,
SM6115_SLAVE_QM_MPU_CFG,
SM6115_SLAVE_QPIC,
SM6115_SLAVE_QUP_0,
SM6115_SLAVE_QUP_CORE_0,
SM6115_SLAVE_RBCPR_CX_CFG