1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/interconnect/qcom,bcm-voter.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Qualcomm BCM-Voter Interconnect 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Georgi Djakov <georgi.djakov@linaro.org> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotdescription: | 13c66ec88fSEmmanuel Vadot The Bus Clock Manager (BCM) is a dedicated hardware accelerator that manages 14c66ec88fSEmmanuel Vadot shared system resources by aggregating requests from multiple Resource State 15c66ec88fSEmmanuel Vadot Coordinators (RSC). Interconnect providers are able to vote for aggregated 16c66ec88fSEmmanuel Vadot thresholds values from consumers by communicating through their respective 17c66ec88fSEmmanuel Vadot RSCs. 18c66ec88fSEmmanuel Vadot 19c66ec88fSEmmanuel Vadotproperties: 20c66ec88fSEmmanuel Vadot compatible: 21c66ec88fSEmmanuel Vadot enum: 22c66ec88fSEmmanuel Vadot - qcom,bcm-voter 23c66ec88fSEmmanuel Vadot 246be33864SEmmanuel Vadot qcom,tcs-wait: 256be33864SEmmanuel Vadot description: | 266be33864SEmmanuel Vadot Optional mask of which TCSs (Triggered Command Sets) wait for completion 276be33864SEmmanuel Vadot upon triggering. If not specified, then the AMC and WAKE sets wait for 286be33864SEmmanuel Vadot completion. The mask bits are available in the QCOM_ICC_TAG_* defines. 296be33864SEmmanuel Vadot 306be33864SEmmanuel Vadot The AMC TCS is triggered immediately when icc_set_bw() is called. The 316be33864SEmmanuel Vadot WAKE/SLEEP TCSs are triggered when the RSC transitions between active and 326be33864SEmmanuel Vadot sleep modes. 336be33864SEmmanuel Vadot 346be33864SEmmanuel Vadot In most cases, it's necessary to wait in both the AMC and WAKE sets to 356be33864SEmmanuel Vadot ensure resources are available before use. If a specific RSC and its use 366be33864SEmmanuel Vadot cases can ensure sufficient delay by other means, then this can be 376be33864SEmmanuel Vadot overridden to reduce latencies. 386be33864SEmmanuel Vadot 396be33864SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 406be33864SEmmanuel Vadot 41c66ec88fSEmmanuel Vadotrequired: 42c66ec88fSEmmanuel Vadot - compatible 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel VadotadditionalProperties: false 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadotexamples: 47c66ec88fSEmmanuel Vadot # Example 1: apps bcm_voter on SDM845 SoC should be defined inside &apps_rsc node 48*d5b0e70fSEmmanuel Vadot # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml 49c66ec88fSEmmanuel Vadot - | 50c66ec88fSEmmanuel Vadot 51*d5b0e70fSEmmanuel Vadot apps_bcm_voter: bcm-voter { 52c66ec88fSEmmanuel Vadot compatible = "qcom,bcm-voter"; 53c66ec88fSEmmanuel Vadot }; 54c66ec88fSEmmanuel Vadot 55c66ec88fSEmmanuel Vadot # Example 2: disp bcm_voter on SDM845 should be defined inside &disp_rsc node 56*d5b0e70fSEmmanuel Vadot # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml 57c66ec88fSEmmanuel Vadot - | 58c66ec88fSEmmanuel Vadot 596be33864SEmmanuel Vadot #include <dt-bindings/interconnect/qcom,icc.h> 606be33864SEmmanuel Vadot 61*d5b0e70fSEmmanuel Vadot disp_bcm_voter: bcm-voter { 62c66ec88fSEmmanuel Vadot compatible = "qcom,bcm-voter"; 636be33864SEmmanuel Vadot qcom,tcs-wait = <QCOM_ICC_TAG_AMC>; 64c66ec88fSEmmanuel Vadot }; 65c66ec88fSEmmanuel Vadot... 66