-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Taniya Das
authored and
Stephen Boyd
committed
Nov 7, 2019
1 parent
ffe37ed
commit 9de7269
Showing
2 changed files
with
174 additions
and
94 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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>; | ||
}; | ||
... |