| # 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>; |
| }; |
| ... |