mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
interconnect: qcom: Add OSM L3 support on SM8150
Add Operating State Manager (OSM) L3 interconnect provider support on SM8150 SoCs. Change-Id: I0e6c48fd04c16711dfc9a29ad27471e7f5464efc Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
This commit is contained in:
parent
81a716faf0
commit
29c930cf57
1 changed files with 33 additions and 1 deletions
|
|
@ -25,7 +25,7 @@
|
|||
#define REG_FREQ_LUT 0x110
|
||||
#define REG_PERF_STATE 0x920
|
||||
|
||||
#define OSM_L3_MAX_LINKS 1
|
||||
#define OSM_L3_MAX_LINKS 6
|
||||
|
||||
#define to_qcom_provider(_provider) \
|
||||
container_of(_provider, struct qcom_osm_l3_icc_provider, provider)
|
||||
|
|
@ -33,6 +33,11 @@
|
|||
enum {
|
||||
OSM_MASTER_L3_APPS = 5000,
|
||||
OSM_SLAVE_L3,
|
||||
OSM_SLAVE_L3_CLUSTER0,
|
||||
OSM_SLAVE_L3_CLUSTER1,
|
||||
OSM_SLAVE_L3_CLUSTER2,
|
||||
OSM_SLAVE_L3_GPU,
|
||||
OSM_SLAVE_L3_MISC,
|
||||
};
|
||||
|
||||
struct qcom_osm_l3_icc_provider {
|
||||
|
|
@ -85,6 +90,32 @@ const static struct qcom_icc_desc sdm845_icc_osm_l3 = {
|
|||
.num_nodes = ARRAY_SIZE(sdm845_osm_l3_nodes),
|
||||
};
|
||||
|
||||
DEFINE_QNODE(sm8150_osm_apps_l3, OSM_MASTER_L3_APPS, 1,
|
||||
OSM_SLAVE_L3, OSM_SLAVE_L3_CLUSTER0,
|
||||
OSM_SLAVE_L3_CLUSTER1, OSM_SLAVE_L3_CLUSTER2,
|
||||
OSM_SLAVE_L3_MISC, OSM_SLAVE_L3_GPU);
|
||||
DEFINE_QNODE(sm8150_osm_l3, OSM_SLAVE_L3, 1);
|
||||
DEFINE_QNODE(sm8150_osm_l3_cluster0, OSM_SLAVE_L3_CLUSTER0, 1);
|
||||
DEFINE_QNODE(sm8150_osm_l3_cluster1, OSM_SLAVE_L3_CLUSTER1, 1);
|
||||
DEFINE_QNODE(sm8150_osm_l3_cluster2, OSM_SLAVE_L3_CLUSTER2, 1);
|
||||
DEFINE_QNODE(sm8150_osm_l3_misc, OSM_SLAVE_L3_MISC, 1);
|
||||
DEFINE_QNODE(sm8150_osm_l3_gpu, OSM_SLAVE_L3_GPU, 1);
|
||||
|
||||
static struct qcom_icc_node *sm8150_osm_l3_nodes[] = {
|
||||
[MASTER_OSM_L3_APPS] = &sm8150_osm_apps_l3,
|
||||
[SLAVE_OSM_L3] = &sm8150_osm_l3,
|
||||
[SLAVE_OSM_L3_CLUSTER0] = &sm8150_osm_l3_cluster0,
|
||||
[SLAVE_OSM_L3_CLUSTER1] = &sm8150_osm_l3_cluster1,
|
||||
[SLAVE_OSM_L3_CLUSTER2] = &sm8150_osm_l3_cluster2,
|
||||
[SLAVE_OSM_L3_MISC] = &sm8150_osm_l3_misc,
|
||||
[SLAVE_OSM_L3_GPU] = &sm8150_osm_l3_gpu,
|
||||
};
|
||||
|
||||
static const struct qcom_icc_desc sm8150_icc_osm_l3 = {
|
||||
.nodes = sm8150_osm_l3_nodes,
|
||||
.num_nodes = ARRAY_SIZE(sm8150_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)
|
||||
{
|
||||
|
|
@ -253,6 +284,7 @@ err:
|
|||
|
||||
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 },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, osm_l3_of_match);
|
||||
|
|
|
|||
Loading…
Reference in a new issue