qcom,rpmcc describe 2 different kind of device. Currently we have definition for rpm-smd based device but we lack Documentation for simple rpm based device. Add the missing clk for ipq806x, apq8060, msm8660 and apq8064 and provide additional example to describe these new simple rpm based devices. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/20220706225321.26215-2-ansuelsmth@gmail.com
157 lines
3.7 KiB
YAML
157 lines
3.7 KiB
YAML
# 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
|
|
|
|
clocks:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
required:
|
|
- compatible
|
|
- '#clock-cells'
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,rpmcc-apq8060
|
|
- qcom,rpmcc-ipq806x
|
|
- qcom,rpmcc-msm8660
|
|
|
|
then:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: pxo clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: pxo
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: qcom,rpmcc-apq8064
|
|
then:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: pxo clock
|
|
- description: cxo clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: pxo
|
|
- const: cxo
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,rpmcc-mdm9607
|
|
- qcom,rpmcc-msm8226
|
|
- 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
|
|
|
|
then:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: xo clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: xo
|
|
|
|
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>;
|
|
};
|
|
};
|
|
};
|
|
|
|
- |
|
|
rpm {
|
|
clock-controller {
|
|
compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
|
|
#clock-cells = <1>;
|
|
clocks = <&pxo_board>;
|
|
clock-names = "pxo";
|
|
};
|
|
};
|