1c92cf0b4SDavid Dai# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c92cf0b4SDavid Dai%YAML 1.2
3c92cf0b4SDavid Dai---
4c92cf0b4SDavid Dai$id: http://devicetree.org/schemas/interconnect/qcom,bcm-voter.yaml#
5c92cf0b4SDavid Dai$schema: http://devicetree.org/meta-schemas/core.yaml#
6c92cf0b4SDavid Dai
7c92cf0b4SDavid Daititle: Qualcomm BCM-Voter Interconnect
8c92cf0b4SDavid Dai
9c92cf0b4SDavid Daimaintainers:
10c92cf0b4SDavid Dai  - Georgi Djakov <georgi.djakov@linaro.org>
11c92cf0b4SDavid Dai
12c92cf0b4SDavid Daidescription: |
13c92cf0b4SDavid Dai  The Bus Clock Manager (BCM) is a dedicated hardware accelerator that manages
14c92cf0b4SDavid Dai  shared system resources by aggregating requests from multiple Resource State
15c92cf0b4SDavid Dai  Coordinators (RSC). Interconnect providers are able to vote for aggregated
16c92cf0b4SDavid Dai  thresholds values from consumers by communicating through their respective
17c92cf0b4SDavid Dai  RSCs.
18c92cf0b4SDavid Dai
19c92cf0b4SDavid Daiproperties:
20c92cf0b4SDavid Dai  compatible:
21c92cf0b4SDavid Dai    enum:
22c92cf0b4SDavid Dai      - qcom,bcm-voter
23c92cf0b4SDavid Dai
24ad4bedfcSMike Tipton  qcom,tcs-wait:
25ad4bedfcSMike Tipton    description: |
26ad4bedfcSMike Tipton      Optional mask of which TCSs (Triggered Command Sets) wait for completion
27ad4bedfcSMike Tipton      upon triggering. If not specified, then the AMC and WAKE sets wait for
28ad4bedfcSMike Tipton      completion. The mask bits are available in the QCOM_ICC_TAG_* defines.
29ad4bedfcSMike Tipton
30ad4bedfcSMike Tipton      The AMC TCS is triggered immediately when icc_set_bw() is called. The
31ad4bedfcSMike Tipton      WAKE/SLEEP TCSs are triggered when the RSC transitions between active and
32ad4bedfcSMike Tipton      sleep modes.
33ad4bedfcSMike Tipton
34ad4bedfcSMike Tipton      In most cases, it's necessary to wait in both the AMC and WAKE sets to
35ad4bedfcSMike Tipton      ensure resources are available before use. If a specific RSC and its use
36ad4bedfcSMike Tipton      cases can ensure sufficient delay by other means, then this can be
37ad4bedfcSMike Tipton      overridden to reduce latencies.
38ad4bedfcSMike Tipton
39ad4bedfcSMike Tipton    $ref: /schemas/types.yaml#/definitions/uint32
40ad4bedfcSMike Tipton
41c92cf0b4SDavid Dairequired:
42c92cf0b4SDavid Dai  - compatible
43c92cf0b4SDavid Dai
44c92cf0b4SDavid DaiadditionalProperties: false
45c92cf0b4SDavid Dai
46c92cf0b4SDavid Daiexamples:
47c92cf0b4SDavid Dai  # Example 1: apps bcm_voter on SDM845 SoC should be defined inside &apps_rsc node
48*38d46b0fSKrzysztof Kozlowski  # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml
49c92cf0b4SDavid Dai  - |
50c92cf0b4SDavid Dai
51*38d46b0fSKrzysztof Kozlowski    apps_bcm_voter: bcm-voter {
52c92cf0b4SDavid Dai        compatible = "qcom,bcm-voter";
53c92cf0b4SDavid Dai    };
54c92cf0b4SDavid Dai
55c92cf0b4SDavid Dai  # Example 2: disp bcm_voter on SDM845 should be defined inside &disp_rsc node
56*38d46b0fSKrzysztof Kozlowski  # as defined in Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml
57c92cf0b4SDavid Dai  - |
58c92cf0b4SDavid Dai
59ad4bedfcSMike Tipton    #include <dt-bindings/interconnect/qcom,icc.h>
60ad4bedfcSMike Tipton
61*38d46b0fSKrzysztof Kozlowski    disp_bcm_voter: bcm-voter {
62c92cf0b4SDavid Dai        compatible = "qcom,bcm-voter";
63ad4bedfcSMike Tipton        qcom,tcs-wait = <QCOM_ICC_TAG_AMC>;
64c92cf0b4SDavid Dai    };
65c92cf0b4SDavid Dai...
66