Skip to content

Commit 2283f9e

Browse files
aff-tarbebarino
authored andcommitted
dt-bindings: clk: qcom: Add bindings for CPU clock for msm8996
Each of the CPU clusters (Power and Perf) on msm8996 are clocked via 2 PLLs, a primary and alternate. There are also 2 Mux'es, a primary and secondary all connected together as shown below +-------+ XO | | +------------------>0 | | | PLL/2 | SMUX +----+ +------->1 | | | | | | | +-------+ | +-------+ | +---->0 | | | | +---------------+ | +----------->1 | CPU clk |Primary PLL +----+ PLL_EARLY | | +------> | +------+-----------+ +------>2 PMUX | +---------------+ | | | | | +------+ | +-->3 | +--^+ ACD +-----+ | +-------+ +---------------+ +------+ | |Alt PLL | | | +---------------------------+ +---------------+ PLL_EARLY The primary PLL is what drives the CPU clk, except for times when we are reprogramming the PLL itself (for rate changes) when we temporarily switch to an alternate PLL. A subsequent patch adds support to switch between primary and alternate PLL during rate changes. The primary PLL operates on a single VCO range, between 600MHz and 3GHz. However the CPUs do support OPPs with frequencies between 300MHz and 600MHz. In order to support running the CPUs at those frequencies we end up having to lock the PLL at twice the rate and drive the CPU clk via the PLL/2 output and SMUX. Signed-off-by: Ilia Lin <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Stephen Boyd <[email protected]>
1 parent 6d0efeb commit 2283f9e

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/qcom,kryocc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm clock controller for MSM8996 CPUs
8+
9+
maintainers:
10+
- Loic Poulain <[email protected]>
11+
12+
description: |
13+
Qualcomm CPU clock controller for MSM8996 CPUs, clock 0 is for Power cluster
14+
and clock 1 is for Perf cluster.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- qcom,msm8996-apcc
20+
21+
reg:
22+
maxItems: 1
23+
24+
'#clock-cells':
25+
const: 1
26+
27+
clocks:
28+
items:
29+
- description: Primary PLL clock for power cluster (little)
30+
- description: Primary PLL clock for perf cluster (big)
31+
- description: Alternate PLL clock for power cluster (little)
32+
- description: Alternate PLL clock for perf cluster (big)
33+
34+
clock-names:
35+
items:
36+
- const: pwrcl_pll
37+
- const: perfcl_pll
38+
- const: pwrcl_alt_pll
39+
- const: perfcl_alt_pll
40+
41+
required:
42+
- compatible
43+
- reg
44+
- '#clock-cells'
45+
46+
additionalProperties: false
47+
48+
examples:
49+
# Example for msm8996
50+
- |
51+
kryocc: clock-controller@6400000 {
52+
compatible = "qcom,msm8996-apcc";
53+
reg = <0x6400000 0x90000>;
54+
#clock-cells = <1>;
55+
};
56+
...

0 commit comments

Comments
 (0)