Staging
v0.7.0
https://github.com/torvalds/linux
Raw File
Tip revision: 7e364e56293bb98cae1b55fd835f5991c4e96e7d authored by Linus Torvalds on 02 April 2023, 21:29:29 UTC
Linux 6.3-rc5
Tip revision: 7e364e5
qcom,bcm-voter.yaml
# 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>;
    };
...
back to top