From a06ae4889c940267a73bf214515c21f26f18d5b1 Mon Sep 17 00:00:00 2001 From: Mike Tipton Date: Mon, 31 Oct 2022 10:51:14 -0700 Subject: [PATCH] ANDROID: dt-bindings: interconnect: Add generic PWR_ST tags Add generic PWR_ST tags that can be used when there are more logical aggregation buckets than just AMC, WAKE, and SLEEP. Also add binding for QCOM_ICC_TAG_PERF_MODE, which can be used with icc_set_tag() to indicate that the path should use latency-optimized settings for each node in the path if supported. Bug: 338086214 Change-Id: I26c9bb5bcba24963b6c7cf527c3a13a532aeffe3 Signed-off-by: Mike Tipton Signed-off-by: Xubin Bai Signed-off-by: Vivek Aknurwar --- include/dt-bindings/interconnect/qcom,icc.h | 27 ++++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/include/dt-bindings/interconnect/qcom,icc.h b/include/dt-bindings/interconnect/qcom,icc.h index cd34f36daaaa..f7f11a1e7dff 100644 --- a/include/dt-bindings/interconnect/qcom,icc.h +++ b/include/dt-bindings/interconnect/qcom,icc.h @@ -1,20 +1,27 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef __DT_BINDINGS_INTERCONNECT_QCOM_ICC_H #define __DT_BINDINGS_INTERCONNECT_QCOM_ICC_H +#define QCOM_ICC_BUCKET_0 0 +#define QCOM_ICC_BUCKET_1 1 +#define QCOM_ICC_BUCKET_2 2 +#define QCOM_ICC_BUCKET_3 3 +#define QCOM_ICC_BUCKET_4 4 +#define QCOM_ICC_NUM_BUCKETS 5 + /* * The AMC bucket denotes constraints that are applied to hardware when * icc_set_bw() completes, whereas the WAKE and SLEEP constraints are applied * when the execution environment transitions between active and low power mode. */ -#define QCOM_ICC_BUCKET_AMC 0 -#define QCOM_ICC_BUCKET_WAKE 1 -#define QCOM_ICC_BUCKET_SLEEP 2 -#define QCOM_ICC_NUM_BUCKETS 3 +#define QCOM_ICC_BUCKET_AMC QCOM_ICC_BUCKET_0 +#define QCOM_ICC_BUCKET_WAKE QCOM_ICC_BUCKET_1 +#define QCOM_ICC_BUCKET_SLEEP QCOM_ICC_BUCKET_2 #define QCOM_ICC_TAG_AMC (1 << QCOM_ICC_BUCKET_AMC) #define QCOM_ICC_TAG_WAKE (1 << QCOM_ICC_BUCKET_WAKE) @@ -23,4 +30,16 @@ #define QCOM_ICC_TAG_ALWAYS (QCOM_ICC_TAG_AMC | QCOM_ICC_TAG_WAKE |\ QCOM_ICC_TAG_SLEEP) +#define QCOM_ICC_TAG_PWR_ST_0 (1 << QCOM_ICC_BUCKET_0) +#define QCOM_ICC_TAG_PWR_ST_1 (1 << QCOM_ICC_BUCKET_1) +#define QCOM_ICC_TAG_PWR_ST_2 (1 << QCOM_ICC_BUCKET_2) +#define QCOM_ICC_TAG_PWR_ST_3 (1 << QCOM_ICC_BUCKET_3) +#define QCOM_ICC_TAG_PWR_ST_4 (1 << QCOM_ICC_BUCKET_4) + +/* + * PERF_MODE indicates that each node in the requested path should use + * performance-optimized settings if supported by the node. + */ +#define QCOM_ICC_TAG_PERF_MODE (1 << 8) + #endif