Skip to content

Commit c0f1cbf

Browse files
Luo Jieandersson
authored andcommitted
dt-bindings: clock: qcom: Add CMN PLL clock controller for IPQ SoC
The CMN PLL controller provides clocks to networking hardware blocks and to GCC on Qualcomm IPQ9574 SoC. It receives input clock from the on-chip Wi-Fi, and produces output clocks at fixed rates. These output rates are predetermined, and are unrelated to the input clock rate. The primary purpose of CMN PLL is to supply clocks to the networking hardware such as PPE (packet process engine), PCS and the externally connected switch or PHY device. The CMN PLL block also outputs fixed rate clocks to GCC, such as 24 MHZ as XO clock and 32 KHZ as sleep clock supplied to GCC. Signed-off-by: Luo Jie <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Andersson <[email protected]>
1 parent 40384c8 commit c0f1cbf

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/qcom,ipq9574-cmn-pll.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm CMN PLL Clock Controller on IPQ SoC
8+
9+
maintainers:
10+
- Bjorn Andersson <[email protected]>
11+
- Luo Jie <[email protected]>
12+
13+
description:
14+
The CMN (or common) PLL clock controller expects a reference
15+
input clock. This reference clock is from the on-board Wi-Fi.
16+
The CMN PLL supplies a number of fixed rate output clocks to
17+
the devices providing networking functions and to GCC. These
18+
networking hardware include PPE (packet process engine), PCS
19+
and the externally connected switch or PHY devices. The CMN
20+
PLL block also outputs fixed rate clocks to GCC. The PLL's
21+
primary function is to enable fixed rate output clocks for
22+
networking hardware functions used with the IPQ SoC.
23+
24+
properties:
25+
compatible:
26+
enum:
27+
- qcom,ipq9574-cmn-pll
28+
29+
reg:
30+
maxItems: 1
31+
32+
clocks:
33+
items:
34+
- description: The reference clock. The supported clock rates include
35+
25000000, 31250000, 40000000, 48000000, 50000000 and 96000000 HZ.
36+
- description: The AHB clock
37+
- description: The SYS clock
38+
description:
39+
The reference clock is the source clock of CMN PLL, which is from the
40+
Wi-Fi. The AHB and SYS clocks must be enabled to access CMN PLL
41+
clock registers.
42+
43+
clock-names:
44+
items:
45+
- const: ref
46+
- const: ahb
47+
- const: sys
48+
49+
"#clock-cells":
50+
const: 1
51+
52+
required:
53+
- compatible
54+
- reg
55+
- clocks
56+
- clock-names
57+
- "#clock-cells"
58+
59+
additionalProperties: false
60+
61+
examples:
62+
- |
63+
#include <dt-bindings/clock/qcom,ipq-cmn-pll.h>
64+
#include <dt-bindings/clock/qcom,ipq9574-gcc.h>
65+
66+
cmn_pll: clock-controller@9b000 {
67+
compatible = "qcom,ipq9574-cmn-pll";
68+
reg = <0x0009b000 0x800>;
69+
clocks = <&cmn_pll_ref_clk>,
70+
<&gcc GCC_CMN_12GPLL_AHB_CLK>,
71+
<&gcc GCC_CMN_12GPLL_SYS_CLK>;
72+
clock-names = "ref", "ahb", "sys";
73+
#clock-cells = <1>;
74+
assigned-clocks = <&cmn_pll CMN_PLL_CLK>;
75+
assigned-clock-rates-u64 = /bits/ 64 <12000000000>;
76+
};
77+
...
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2+
/*
3+
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
4+
*/
5+
6+
#ifndef _DT_BINDINGS_CLK_QCOM_IPQ_CMN_PLL_H
7+
#define _DT_BINDINGS_CLK_QCOM_IPQ_CMN_PLL_H
8+
9+
/* CMN PLL core clock. */
10+
#define CMN_PLL_CLK 0
11+
12+
/* The output clocks from CMN PLL of IPQ9574. */
13+
#define XO_24MHZ_CLK 1
14+
#define SLEEP_32KHZ_CLK 2
15+
#define PCS_31P25MHZ_CLK 3
16+
#define NSS_1200MHZ_CLK 4
17+
#define PPE_353MHZ_CLK 5
18+
#define ETH0_50MHZ_CLK 6
19+
#define ETH1_50MHZ_CLK 7
20+
#define ETH2_50MHZ_CLK 8
21+
#define ETH_25MHZ_CLK 9
22+
#endif

0 commit comments

Comments
 (0)