Commit 05a24414 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Bjorn Andersson
Browse files

dt-bindings: clock: qcom,rpmcc: convert to dtschema



Convert the Qualcomm RPM Clock Controller bindings to DT schema and
include it in parent's schema (SMD RPM).

Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220401201035.189106-10-krzysztof.kozlowski@linaro.org
parent a9dd2663
Loading
Loading
Loading
Loading
+0 −63
Original line number Diff line number Diff line
Qualcomm RPM Clock Controller Binding
------------------------------------------------
The RPM is a dedicated hardware engine for managing the shared
SoC resources in order to keep the lowest power profile. It
communicates with other hardware subsystems via shared memory
and accepts clock requests, aggregates the requests and turns
the clocks on/off or scales them on demand.

Required properties :
- compatible : shall contain only one of the following. The generic
               compatible "qcom,rpmcc" should be also included.

			"qcom,rpmcc-mdm9607", "qcom,rpmcc"
			"qcom,rpmcc-msm8660", "qcom,rpmcc"
			"qcom,rpmcc-apq8060", "qcom,rpmcc"
			"qcom,rpmcc-msm8226", "qcom,rpmcc"
			"qcom,rpmcc-msm8916", "qcom,rpmcc"
			"qcom,rpmcc-msm8936", "qcom,rpmcc"
			"qcom,rpmcc-msm8953", "qcom,rpmcc"
			"qcom,rpmcc-msm8974", "qcom,rpmcc"
			"qcom,rpmcc-msm8976", "qcom,rpmcc"
			"qcom,rpmcc-apq8064", "qcom,rpmcc"
			"qcom,rpmcc-ipq806x", "qcom,rpmcc"
			"qcom,rpmcc-msm8992",·"qcom,rpmcc"
			"qcom,rpmcc-msm8994",·"qcom,rpmcc"
			"qcom,rpmcc-msm8996", "qcom,rpmcc"
			"qcom,rpmcc-msm8998", "qcom,rpmcc"
			"qcom,rpmcc-qcm2290", "qcom,rpmcc"
			"qcom,rpmcc-qcs404", "qcom,rpmcc"
			"qcom,rpmcc-sdm660", "qcom,rpmcc"
			"qcom,rpmcc-sm6115", "qcom,rpmcc"
			"qcom,rpmcc-sm6125", "qcom,rpmcc"

- #clock-cells : shall contain 1

The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h>
and come in pairs: FOO_CLK followed by FOO_A_CLK. The latter clock
is an "active" clock, which means that the consumer only care that the
clock is available when the apps CPU subsystem is active, i.e. not
suspended or in deep idle. If it is important that the clock keeps running
during system suspend, you need to specify the non-active clock, the one
not containing *_A_* in the enumerator name.

Example:
	smd {
		compatible = "qcom,smd";

		rpm {
			interrupts = <0 168 1>;
			qcom,ipc = <&apcs 8 0>;
			qcom,smd-edge = <15>;

			rpm_requests {
				compatible = "qcom,rpm-msm8916";
				qcom,smd-channels = "rpm_requests";

				rpmcc: clock-controller {
					compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
					#clock-cells = <1>;
				};
			};
		};
	};
+69 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/qcom,rpmcc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm RPM Clock Controller

maintainers:
  - Bjorn Andersson <bjorn.andersson@linaro.org>
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description: |
  The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h> and
  come in pairs:: FOO_CLK followed by FOO_A_CLK. The latter clock is
  an "active" clock, which means that the consumer only care that the clock is
  available when the apps CPU subsystem is active, i.e. not suspended or in
  deep idle. If it is important that the clock keeps running during system
  suspend, you need to specify the non-active clock, the one not containing
  *_A_* in the enumerator name.

properties:
  compatible:
    items:
      - enum:
          - qcom,rpmcc-apq8060
          - qcom,rpmcc-apq8064
          - qcom,rpmcc-ipq806x
          - qcom,rpmcc-mdm9607
          - qcom,rpmcc-msm8226
          - qcom,rpmcc-msm8660
          - qcom,rpmcc-msm8916
          - qcom,rpmcc-msm8936
          - qcom,rpmcc-msm8953
          - qcom,rpmcc-msm8974
          - qcom,rpmcc-msm8976
          - qcom,rpmcc-msm8992
          - qcom,rpmcc-msm8994
          - qcom,rpmcc-msm8996
          - qcom,rpmcc-msm8998
          - qcom,rpmcc-qcm2290
          - qcom,rpmcc-qcs404
          - qcom,rpmcc-sdm660
          - qcom,rpmcc-sm6115
          - qcom,rpmcc-sm6125
      - const: qcom,rpmcc

  '#clock-cells':
    const: 1

required:
  - compatible
  - '#clock-cells'

additionalProperties: false

examples:
  - |
    rpm {
        rpm-requests {
            compatible = "qcom,rpm-msm8916";
            qcom,smd-channels = "rpm_requests";

            clock-controller {
                compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
                #clock-cells = <1>;
            };
        };
    };
+4 −0
Original line number Diff line number Diff line
@@ -45,6 +45,10 @@ properties:
      - qcom,rpm-qcm2290
      - qcom,rpm-qcs404

  clock-controller:
    $ref: /schemas/clock/qcom,rpmcc.yaml#
    unevaluatedProperties: false

  qcom,smd-channels:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Channel name used for the RPM communication