Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c78606cc authored by Veera Vegivada's avatar Veera Vegivada Committed by Gerrit - the friendly Code Review server
Browse files

interconnect: qcom: Add OSM L3 support on SM6150



Add Operating State Manager (OSM) L3 interconnect provider support on
SM6150 SoCs.

Change-Id: Ibab0245a83eb6cb16b6f5c589bbc516a0a771064
Signed-off-by: default avatarVeera Vegivada <vvegivad@codeaurora.org>
parent 86839531
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ config INTERCONNECT_QCOM_CPUCP_L3

config INTERCONNECT_QCOM_OSM_L3
	tristate "QTI OSM L3 interconnect driver"
	depends on INTERCONNECT_QCOM || COMPILE_TEST
	depends on INTERCONNECT_QCOM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on osm-based platforms.
+20 −2
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/bitfield.h>
@@ -113,7 +113,6 @@ static const struct qcom_icc_desc sm8150_icc_osm_l3 = {
	.num_nodes = ARRAY_SIZE(sm8150_osm_l3_nodes),
};


DEFINE_QNODE(mas_osm_l3_apps_scshrike, OSM_MASTER_L3_APPS, 1,
		OSM_SLAVE_L3_CLUSTER0, OSM_SLAVE_L3_CLUSTER1,
		OSM_SLAVE_L3_MISC, OSM_SLAVE_L3_GPU);
@@ -130,6 +129,24 @@ static const struct qcom_icc_desc scshrike_icc_osm_l3 = {
	.nodes = scshrike_osm_l3_nodes,
	.num_nodes = ARRAY_SIZE(scshrike_osm_l3_nodes),
};

DEFINE_QNODE(mas_osm_l3_apps_sm6150, OSM_MASTER_L3_APPS, 1,
		OSM_SLAVE_L3_CLUSTER0, OSM_SLAVE_L3_CLUSTER1,
		OSM_SLAVE_L3_MISC, OSM_SLAVE_L3_GPU);

static struct qcom_icc_node *sm6150_osm_l3_nodes[] = {
	[MASTER_OSM_L3_APPS] = &mas_osm_l3_apps_sm6150,
	[SLAVE_OSM_L3_CLUSTER0] = &slv_osm_l3_cluster0,
	[SLAVE_OSM_L3_CLUSTER1] = &slv_osm_l3_cluster1,
	[SLAVE_OSM_L3_MISC] = &slv_osm_l3_misc,
	[SLAVE_OSM_L3_GPU] = &slv_osm_l3_gpu,
};

static const struct qcom_icc_desc sm6150_icc_osm_l3 = {
	.nodes = sm6150_osm_l3_nodes,
	.num_nodes = ARRAY_SIZE(sm6150_osm_l3_nodes),
};

static int qcom_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
		u32 peak_bw, u32 *agg_avg, u32 *agg_peak)
{
@@ -302,6 +319,7 @@ static int qcom_osm_l3_probe(struct platform_device *pdev)
static const struct of_device_id osm_l3_of_match[] = {
	{ .compatible = "qcom,sdm845-osm-l3", .data = &sdm845_icc_osm_l3 },
	{ .compatible = "qcom,sm8150-osm-l3", .data = &sm8150_icc_osm_l3 },
	{ .compatible = "qcom,sm6150-osm-l3", .data = &sm6150_icc_osm_l3 },
	{ .compatible = "qcom,scshrike-osm-l3", .data = &scshrike_icc_osm_l3 },
	{ }
};