xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,bcm-voter.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
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