# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/interconnect/qcom,bcm-voter.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm BCM-Voter Interconnect maintainers: - Georgi Djakov <georgi.djakov@linaro.org> description: | The Bus Clock Manager (BCM) is a dedicated hardware accelerator that manages shared system resources by aggregating requests from multiple Resource State Coordinators (RSC). Interconnect providers are able to vote for aggregated thresholds values from consumers by communicating through their respective RSCs. properties: compatible: enum: - qcom,bcm-voter qcom,tcs-wait: description: | Optional mask of which TCSs (Triggered Command Sets) wait for completion upon triggering. If not specified, then the AMC and WAKE sets wait for completion. The mask bits are available in the QCOM_ICC_TAG_* defines. The AMC TCS is triggered immediately when icc_set_bw() is called. The WAKE/SLEEP TCSs are triggered when the RSC transitions between active and sleep modes. In most cases, it's necessary to wait in both the AMC and WAKE sets to ensure resources are available before use. If a specific RSC and its use cases can ensure sufficient delay by other means, then this can be overridden to reduce latencies. $ref: /schemas/types.yaml#/definitions/uint32 required: - compatible additionalProperties: false examples: # Example 1: apps bcm_voter on SDM845 SoC should be defined inside &apps_rsc node # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml - | apps_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; }; # Example 2: disp bcm_voter on SDM845 should be defined inside &disp_rsc node # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml - | #include <dt-bindings/interconnect/qcom,icc.h> disp_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; qcom,tcs-wait = <QCOM_ICC_TAG_AMC>; }; ...