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