162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interconnect/qcom,bcm-voter.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Qualcomm BCM-Voter Interconnect 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Georgi Djakov <georgi.djakov@linaro.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci The Bus Clock Manager (BCM) is a dedicated hardware accelerator that manages 1462306a36Sopenharmony_ci shared system resources by aggregating requests from multiple Resource State 1562306a36Sopenharmony_ci Coordinators (RSC). Interconnect providers are able to vote for aggregated 1662306a36Sopenharmony_ci thresholds values from consumers by communicating through their respective 1762306a36Sopenharmony_ci RSCs. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciproperties: 2062306a36Sopenharmony_ci compatible: 2162306a36Sopenharmony_ci enum: 2262306a36Sopenharmony_ci - qcom,bcm-voter 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci qcom,tcs-wait: 2562306a36Sopenharmony_ci description: | 2662306a36Sopenharmony_ci Optional mask of which TCSs (Triggered Command Sets) wait for completion 2762306a36Sopenharmony_ci upon triggering. If not specified, then the AMC and WAKE sets wait for 2862306a36Sopenharmony_ci completion. The mask bits are available in the QCOM_ICC_TAG_* defines. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci The AMC TCS is triggered immediately when icc_set_bw() is called. The 3162306a36Sopenharmony_ci WAKE/SLEEP TCSs are triggered when the RSC transitions between active and 3262306a36Sopenharmony_ci sleep modes. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci In most cases, it's necessary to wait in both the AMC and WAKE sets to 3562306a36Sopenharmony_ci ensure resources are available before use. If a specific RSC and its use 3662306a36Sopenharmony_ci cases can ensure sufficient delay by other means, then this can be 3762306a36Sopenharmony_ci overridden to reduce latencies. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cirequired: 4262306a36Sopenharmony_ci - compatible 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciadditionalProperties: false 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciexamples: 4762306a36Sopenharmony_ci # Example 1: apps bcm_voter on SDM845 SoC should be defined inside &apps_rsc node 4862306a36Sopenharmony_ci # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml 4962306a36Sopenharmony_ci - | 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci apps_bcm_voter: bcm-voter { 5262306a36Sopenharmony_ci compatible = "qcom,bcm-voter"; 5362306a36Sopenharmony_ci }; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci # Example 2: disp bcm_voter on SDM845 should be defined inside &disp_rsc node 5662306a36Sopenharmony_ci # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml 5762306a36Sopenharmony_ci - | 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci #include <dt-bindings/interconnect/qcom,icc.h> 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci disp_bcm_voter: bcm-voter { 6262306a36Sopenharmony_ci compatible = "qcom,bcm-voter"; 6362306a36Sopenharmony_ci qcom,tcs-wait = <QCOM_ICC_TAG_AMC>; 6462306a36Sopenharmony_ci }; 6562306a36Sopenharmony_ci... 66