mirror of https://gitee.com/openkylin/linux.git
dt-bindings: clock: Add YAML schemas for the QCOM GCC clock bindings
The GCC clock provider have a bunch of generic properties that are needed in a device tree. Add a YAML schemas for those. Signed-off-by: Taniya Das <tdas@codeaurora.org> Link: https://lkml.kernel.org/r/20191014102308.27441-4-tdas@codeaurora.org Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
parent
ffe37ede0a
commit
9de7269e97
|
@ -1,94 +0,0 @@
|
||||||
Qualcomm Global Clock & Reset Controller Binding
|
|
||||||
------------------------------------------------
|
|
||||||
|
|
||||||
Required properties :
|
|
||||||
- compatible : shall contain only one of the following:
|
|
||||||
|
|
||||||
"qcom,gcc-apq8064"
|
|
||||||
"qcom,gcc-apq8084"
|
|
||||||
"qcom,gcc-ipq8064"
|
|
||||||
"qcom,gcc-ipq4019"
|
|
||||||
"qcom,gcc-ipq8074"
|
|
||||||
"qcom,gcc-msm8660"
|
|
||||||
"qcom,gcc-msm8916"
|
|
||||||
"qcom,gcc-msm8960"
|
|
||||||
"qcom,gcc-msm8974"
|
|
||||||
"qcom,gcc-msm8974pro"
|
|
||||||
"qcom,gcc-msm8974pro-ac"
|
|
||||||
"qcom,gcc-msm8994"
|
|
||||||
"qcom,gcc-msm8996"
|
|
||||||
"qcom,gcc-msm8998"
|
|
||||||
"qcom,gcc-mdm9615"
|
|
||||||
"qcom,gcc-qcs404"
|
|
||||||
"qcom,gcc-sdm630"
|
|
||||||
"qcom,gcc-sdm660"
|
|
||||||
"qcom,gcc-sdm845"
|
|
||||||
"qcom,gcc-sm8150"
|
|
||||||
|
|
||||||
- reg : shall contain base register location and length
|
|
||||||
- #clock-cells : shall contain 1
|
|
||||||
- #reset-cells : shall contain 1
|
|
||||||
|
|
||||||
Optional properties :
|
|
||||||
- #power-domain-cells : shall contain 1
|
|
||||||
- Qualcomm TSENS (thermal sensor device) on some devices can
|
|
||||||
be part of GCC and hence the TSENS properties can also be
|
|
||||||
part of the GCC/clock-controller node.
|
|
||||||
For more details on the TSENS properties please refer
|
|
||||||
Documentation/devicetree/bindings/thermal/qcom-tsens.txt
|
|
||||||
- protected-clocks : Protected clock specifier list as per common clock
|
|
||||||
binding.
|
|
||||||
|
|
||||||
For SM8150 only:
|
|
||||||
- clocks: a list of phandles and clock-specifier pairs,
|
|
||||||
one for each entry in clock-names.
|
|
||||||
- clock-names: "bi_tcxo" (required)
|
|
||||||
"sleep_clk" (optional)
|
|
||||||
"aud_ref_clock" (optional)
|
|
||||||
|
|
||||||
Example:
|
|
||||||
clock-controller@900000 {
|
|
||||||
compatible = "qcom,gcc-msm8960";
|
|
||||||
reg = <0x900000 0x4000>;
|
|
||||||
#clock-cells = <1>;
|
|
||||||
#reset-cells = <1>;
|
|
||||||
#power-domain-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
Example of GCC with TSENS properties:
|
|
||||||
clock-controller@900000 {
|
|
||||||
compatible = "qcom,gcc-apq8064";
|
|
||||||
reg = <0x00900000 0x4000>;
|
|
||||||
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
|
|
||||||
nvmem-cell-names = "calib", "calib_backup";
|
|
||||||
#clock-cells = <1>;
|
|
||||||
#reset-cells = <1>;
|
|
||||||
#thermal-sensor-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
Example of GCC with protected-clocks properties:
|
|
||||||
clock-controller@100000 {
|
|
||||||
compatible = "qcom,gcc-sdm845";
|
|
||||||
reg = <0x100000 0x1f0000>;
|
|
||||||
#clock-cells = <1>;
|
|
||||||
#reset-cells = <1>;
|
|
||||||
#power-domain-cells = <1>;
|
|
||||||
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
|
||||||
<GCC_QSPI_CORE_CLK_SRC>,
|
|
||||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
|
|
||||||
<GCC_LPASS_Q6_AXI_CLK>,
|
|
||||||
<GCC_LPASS_SWAY_CLK>;
|
|
||||||
};
|
|
||||||
|
|
||||||
Example of GCC with clocks
|
|
||||||
gcc: clock-controller@100000 {
|
|
||||||
compatible = "qcom,gcc-sm8150";
|
|
||||||
reg = <0x00100000 0x1f0000>;
|
|
||||||
#clock-cells = <1>;
|
|
||||||
#reset-cells = <1>;
|
|
||||||
#power-domain-cells = <1>;
|
|
||||||
clock-names = "bi_tcxo",
|
|
||||||
"sleep_clk";
|
|
||||||
clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
|
|
||||||
<&sleep_clk>;
|
|
||||||
};
|
|
|
@ -0,0 +1,174 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/bindings/clock/qcom,gcc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Qualcomm Global Clock & Reset Controller Binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Stephen Boyd <sboyd@kernel.org>
|
||||||
|
- Taniya Das <tdas@codeaurora.org>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Qualcomm global clock control module which supports the clocks, resets and
|
||||||
|
power domains.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible :
|
||||||
|
enum:
|
||||||
|
- qcom,gcc-apq8064
|
||||||
|
- qcom,gcc-apq8084
|
||||||
|
- qcom,gcc-ipq8064
|
||||||
|
- qcom,gcc-ipq4019
|
||||||
|
- qcom,gcc-ipq8074
|
||||||
|
- qcom,gcc-msm8660
|
||||||
|
- qcom,gcc-msm8916
|
||||||
|
- qcom,gcc-msm8960
|
||||||
|
- qcom,gcc-msm8974
|
||||||
|
- qcom,gcc-msm8974pro
|
||||||
|
- qcom,gcc-msm8974pro-ac
|
||||||
|
- qcom,gcc-msm8994
|
||||||
|
- qcom,gcc-msm8996
|
||||||
|
- qcom,gcc-msm8998
|
||||||
|
- qcom,gcc-mdm9615
|
||||||
|
- qcom,gcc-qcs404
|
||||||
|
- qcom,gcc-sdm630
|
||||||
|
- qcom,gcc-sdm660
|
||||||
|
- qcom,gcc-sdm845
|
||||||
|
- qcom,gcc-sm8150
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
items:
|
||||||
|
- description: Board XO source
|
||||||
|
- description: Board active XO source
|
||||||
|
- description: Sleep clock source
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
items:
|
||||||
|
- const: bi_tcxo
|
||||||
|
- const: bi_tcxo_ao
|
||||||
|
- const: sleep_clk
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
'#reset-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
'#power-domain-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
nvmem-cells:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
description:
|
||||||
|
Qualcomm TSENS (thermal sensor device) on some devices can
|
||||||
|
be part of GCC and hence the TSENS properties can also be part
|
||||||
|
of the GCC/clock-controller node.
|
||||||
|
For more details on the TSENS properties please refer
|
||||||
|
Documentation/devicetree/bindings/thermal/qcom-tsens.txt
|
||||||
|
|
||||||
|
nvmem-cell-names:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
description:
|
||||||
|
Names for each nvmem-cells specified.
|
||||||
|
items:
|
||||||
|
- const: calib
|
||||||
|
- const: calib_backup
|
||||||
|
|
||||||
|
'thermal-sensor-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
protected-clocks:
|
||||||
|
description:
|
||||||
|
Protected clock specifier list as per common clock binding
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- '#clock-cells'
|
||||||
|
- '#reset-cells'
|
||||||
|
- '#power-domain-cells'
|
||||||
|
|
||||||
|
if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: qcom,gcc-apq8064
|
||||||
|
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- nvmem-cells
|
||||||
|
- nvmem-cell-names
|
||||||
|
- '#thermal-sensor-cells'
|
||||||
|
|
||||||
|
else:
|
||||||
|
if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- qcom,gcc-sm8150
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
|
||||||
|
|
||||||
|
examples:
|
||||||
|
# Example for GCC for MSM8960:
|
||||||
|
- |
|
||||||
|
clock-controller@900000 {
|
||||||
|
compatible = "qcom,gcc-msm8960";
|
||||||
|
reg = <0x900000 0x4000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
#power-domain-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Example of GCC with TSENS properties:
|
||||||
|
- |
|
||||||
|
clock-controller@900000 {
|
||||||
|
compatible = "qcom,gcc-apq8064";
|
||||||
|
reg = <0x00900000 0x4000>;
|
||||||
|
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
|
||||||
|
nvmem-cell-names = "calib", "calib_backup";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
#power-domain-cells = <1>;
|
||||||
|
#thermal-sensor-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Example of GCC with protected-clocks properties:
|
||||||
|
- |
|
||||||
|
clock-controller@100000 {
|
||||||
|
compatible = "qcom,gcc-sdm845";
|
||||||
|
reg = <0x100000 0x1f0000>;
|
||||||
|
protected-clocks = <187>, <188>, <189>, <190>, <191>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
#power-domain-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Example of GCC with clock node properties for SM8150:
|
||||||
|
- |
|
||||||
|
clock-controller@100000 {
|
||||||
|
compatible = "qcom,gcc-sm8150";
|
||||||
|
reg = <0x00100000 0x1f0000>;
|
||||||
|
clocks = <&rpmhcc 0>, <&rpmhcc 1>, <&sleep_clk>;
|
||||||
|
clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
#power-domain-cells = <1>;
|
||||||
|
};
|
||||||
|
...
|
Loading…
Reference in New Issue