Skip to content

Commit 06498d5

Browse files
taniyadas20andersson
authored andcommitted
dt-bindings: clock: qcom: Add Nord Global Clock Controller
Add device tree bindings for the global clock controller on Qualcomm Nord platform. The global clock controller on Nord SoC is divided into multiple clock controllers (GCC,SE_GCC,NE_GCC and NW_GCC). Add each of the bindings to define the clock controllers. Signed-off-by: Taniya Das <[email protected]> Signed-off-by: Bartosz Golaszewski <[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 8a10804 commit 06498d5

7 files changed

Lines changed: 611 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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,nord-gcc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller on Nord SoC
8+
9+
maintainers:
10+
- Taniya Das <[email protected]>
11+
12+
description: |
13+
Qualcomm global clock control module provides the clocks, resets and power
14+
domains on Nord SoC.
15+
16+
See also: include/dt-bindings/clock/qcom,nord-gcc.h
17+
18+
properties:
19+
compatible:
20+
const: qcom,nord-gcc
21+
22+
clocks:
23+
items:
24+
- description: Board XO source
25+
- description: Sleep clock source
26+
- description: PCIE A Pipe clock source
27+
- description: PCIE B Pipe clock source
28+
- description: PCIE C Pipe clock source
29+
- description: PCIE D Pipe clock source
30+
31+
required:
32+
- compatible
33+
- clocks
34+
- '#power-domain-cells'
35+
36+
allOf:
37+
- $ref: qcom,gcc.yaml#
38+
39+
unevaluatedProperties: false
40+
41+
examples:
42+
- |
43+
#include <dt-bindings/clock/qcom,rpmh.h>
44+
clock-controller@100000 {
45+
compatible = "qcom,nord-gcc";
46+
reg = <0x00100000 0x1f4200>;
47+
clocks = <&rpmhcc RPMH_CXO_CLK>,
48+
<&sleep_clk>,
49+
<&pcie_a_pipe_clk>,
50+
<&pcie_b_pipe_clk>,
51+
<&pcie_c_pipe_clk>,
52+
<&pcie_d_pipe_clk>;
53+
#clock-cells = <1>;
54+
#reset-cells = <1>;
55+
#power-domain-cells = <1>;
56+
};
57+
58+
...
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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,nord-negcc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global North East Clock & Reset Controller on Nord SoC
8+
9+
maintainers:
10+
- Taniya Das <[email protected]>
11+
12+
description: |
13+
Qualcomm global clock control (NE) module provides the clocks, resets
14+
and power domains on Nord SoC.
15+
16+
See also: include/dt-bindings/clock/qcom,nord-negcc.h
17+
18+
properties:
19+
compatible:
20+
const: qcom,nord-negcc
21+
22+
clocks:
23+
items:
24+
- description: Board XO source
25+
- description: Sleep clock source
26+
- description: UFS Phy Rx symbol 0 clock source
27+
- description: UFS Phy Rx symbol 1 clock source
28+
- description: UFS Phy Tx symbol 0 clock source
29+
- description: USB3 Phy sec wrapper pipe clock source
30+
- description: USB3 Phy wrapper pipe clock source
31+
32+
required:
33+
- compatible
34+
- clocks
35+
- '#power-domain-cells'
36+
37+
allOf:
38+
- $ref: qcom,gcc.yaml#
39+
40+
unevaluatedProperties: false
41+
42+
examples:
43+
- |
44+
#include <dt-bindings/clock/qcom,rpmh.h>
45+
clock-controller@8900000 {
46+
compatible = "qcom,nord-negcc";
47+
reg = <0x08900000 0xf4200>;
48+
clocks = <&rpmhcc RPMH_CXO_CLK>,
49+
<&sleep_clk>,
50+
<&ufs_phy_rx_symbol_0_clk>,
51+
<&ufs_phy_rx_symbol_1_clk>,
52+
<&ufs_phy_tx_symbol_0_clk>,
53+
<&usb3_phy_sec_pipe_clk>,
54+
<&usb3_phy_pipe_clk>;
55+
#clock-cells = <1>;
56+
#reset-cells = <1>;
57+
#power-domain-cells = <1>;
58+
};
59+
60+
...
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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,nord-nwgcc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global North West and South East Clock & Reset Controller
8+
on Nord SoC
9+
10+
maintainers:
11+
- Taniya Das <[email protected]>
12+
13+
description: |
14+
Qualcomm global clock control (NW, SE) module provides the clocks, resets
15+
and power domains on Nord SoC.
16+
17+
See also:
18+
include/dt-bindings/clock/qcom,nord-nwgcc.h
19+
include/dt-bindings/clock/qcom,nord-segcc.h
20+
21+
properties:
22+
compatible:
23+
enum:
24+
- qcom,nord-nwgcc
25+
- qcom,nord-segcc
26+
27+
clocks:
28+
items:
29+
- description: Board XO source
30+
- description: Sleep clock source
31+
32+
required:
33+
- compatible
34+
- clocks
35+
- '#power-domain-cells'
36+
37+
allOf:
38+
- $ref: qcom,gcc.yaml#
39+
40+
unevaluatedProperties: false
41+
42+
examples:
43+
- |
44+
#include <dt-bindings/clock/qcom,rpmh.h>
45+
clock-controller@8b00000 {
46+
compatible = "qcom,nord-nwgcc";
47+
reg = <0x08b00000 0xf4200>;
48+
clocks = <&rpmhcc RPMH_CXO_CLK>,
49+
<&sleep_clk>;
50+
#clock-cells = <1>;
51+
#reset-cells = <1>;
52+
#power-domain-cells = <1>;
53+
};
54+
55+
...
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2+
/*
3+
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4+
*/
5+
6+
#ifndef _DT_BINDINGS_CLK_QCOM_GCC_NORD_H
7+
#define _DT_BINDINGS_CLK_QCOM_GCC_NORD_H
8+
9+
/* GCC clocks */
10+
#define GCC_BOOT_ROM_AHB_CLK 0
11+
#define GCC_GP1_CLK 1
12+
#define GCC_GP1_CLK_SRC 2
13+
#define GCC_GP2_CLK 3
14+
#define GCC_GP2_CLK_SRC 4
15+
#define GCC_GPLL0 5
16+
#define GCC_GPLL0_OUT_EVEN 6
17+
#define GCC_MMU_0_TCU_VOTE_CLK 7
18+
#define GCC_PCIE_A_AUX_CLK 8
19+
#define GCC_PCIE_A_AUX_CLK_SRC 9
20+
#define GCC_PCIE_A_CFG_AHB_CLK 10
21+
#define GCC_PCIE_A_DTI_QTC_CLK 11
22+
#define GCC_PCIE_A_MSTR_AXI_CLK 12
23+
#define GCC_PCIE_A_PHY_AUX_CLK 13
24+
#define GCC_PCIE_A_PHY_AUX_CLK_SRC 14
25+
#define GCC_PCIE_A_PHY_RCHNG_CLK 15
26+
#define GCC_PCIE_A_PHY_RCHNG_CLK_SRC 16
27+
#define GCC_PCIE_A_PIPE_CLK 17
28+
#define GCC_PCIE_A_PIPE_CLK_SRC 18
29+
#define GCC_PCIE_A_SLV_AXI_CLK 19
30+
#define GCC_PCIE_A_SLV_Q2A_AXI_CLK 20
31+
#define GCC_PCIE_B_AUX_CLK 21
32+
#define GCC_PCIE_B_AUX_CLK_SRC 22
33+
#define GCC_PCIE_B_CFG_AHB_CLK 23
34+
#define GCC_PCIE_B_DTI_QTC_CLK 24
35+
#define GCC_PCIE_B_MSTR_AXI_CLK 25
36+
#define GCC_PCIE_B_PHY_AUX_CLK 26
37+
#define GCC_PCIE_B_PHY_AUX_CLK_SRC 27
38+
#define GCC_PCIE_B_PHY_RCHNG_CLK 28
39+
#define GCC_PCIE_B_PHY_RCHNG_CLK_SRC 29
40+
#define GCC_PCIE_B_PIPE_CLK 30
41+
#define GCC_PCIE_B_PIPE_CLK_SRC 31
42+
#define GCC_PCIE_B_SLV_AXI_CLK 32
43+
#define GCC_PCIE_B_SLV_Q2A_AXI_CLK 33
44+
#define GCC_PCIE_C_AUX_CLK 34
45+
#define GCC_PCIE_C_AUX_CLK_SRC 35
46+
#define GCC_PCIE_C_CFG_AHB_CLK 36
47+
#define GCC_PCIE_C_DTI_QTC_CLK 37
48+
#define GCC_PCIE_C_MSTR_AXI_CLK 38
49+
#define GCC_PCIE_C_PHY_AUX_CLK 39
50+
#define GCC_PCIE_C_PHY_AUX_CLK_SRC 40
51+
#define GCC_PCIE_C_PHY_RCHNG_CLK 41
52+
#define GCC_PCIE_C_PHY_RCHNG_CLK_SRC 42
53+
#define GCC_PCIE_C_PIPE_CLK 43
54+
#define GCC_PCIE_C_PIPE_CLK_SRC 44
55+
#define GCC_PCIE_C_SLV_AXI_CLK 45
56+
#define GCC_PCIE_C_SLV_Q2A_AXI_CLK 46
57+
#define GCC_PCIE_D_AUX_CLK 47
58+
#define GCC_PCIE_D_AUX_CLK_SRC 48
59+
#define GCC_PCIE_D_CFG_AHB_CLK 49
60+
#define GCC_PCIE_D_DTI_QTC_CLK 50
61+
#define GCC_PCIE_D_MSTR_AXI_CLK 51
62+
#define GCC_PCIE_D_PHY_AUX_CLK 52
63+
#define GCC_PCIE_D_PHY_AUX_CLK_SRC 53
64+
#define GCC_PCIE_D_PHY_RCHNG_CLK 54
65+
#define GCC_PCIE_D_PHY_RCHNG_CLK_SRC 55
66+
#define GCC_PCIE_D_PIPE_CLK 56
67+
#define GCC_PCIE_D_PIPE_CLK_SRC 57
68+
#define GCC_PCIE_D_SLV_AXI_CLK 58
69+
#define GCC_PCIE_D_SLV_Q2A_AXI_CLK 59
70+
#define GCC_PCIE_LINK_AHB_CLK 60
71+
#define GCC_PCIE_LINK_XO_CLK 61
72+
#define GCC_PCIE_NOC_ASYNC_BRIDGE_CLK 62
73+
#define GCC_PCIE_NOC_CNOC_SF_QX_CLK 63
74+
#define GCC_PCIE_NOC_M_CFG_CLK 64
75+
#define GCC_PCIE_NOC_M_PDB_CLK 65
76+
#define GCC_PCIE_NOC_MSTR_AXI_CLK 66
77+
#define GCC_PCIE_NOC_PWRCTL_CLK 67
78+
#define GCC_PCIE_NOC_QOSGEN_EXTREF_CLK 68
79+
#define GCC_PCIE_NOC_REFGEN_CLK 69
80+
#define GCC_PCIE_NOC_REFGEN_CLK_SRC 70
81+
#define GCC_PCIE_NOC_S_CFG_CLK 71
82+
#define GCC_PCIE_NOC_S_PDB_CLK 72
83+
#define GCC_PCIE_NOC_SAFETY_CLK 73
84+
#define GCC_PCIE_NOC_SAFETY_CLK_SRC 74
85+
#define GCC_PCIE_NOC_SLAVE_AXI_CLK 75
86+
#define GCC_PCIE_NOC_TSCTR_CLK 76
87+
#define GCC_PCIE_NOC_XO_CLK 77
88+
#define GCC_PDM2_CLK 78
89+
#define GCC_PDM2_CLK_SRC 79
90+
#define GCC_PDM_AHB_CLK 80
91+
#define GCC_PDM_XO4_CLK 81
92+
#define GCC_QUPV3_WRAP3_CORE_2X_CLK 82
93+
#define GCC_QUPV3_WRAP3_CORE_CLK 83
94+
#define GCC_QUPV3_WRAP3_M_CLK 84
95+
#define GCC_QUPV3_WRAP3_QSPI_REF_CLK 85
96+
#define GCC_QUPV3_WRAP3_QSPI_REF_CLK_SRC 86
97+
#define GCC_QUPV3_WRAP3_S0_CLK 87
98+
#define GCC_QUPV3_WRAP3_S0_CLK_SRC 88
99+
#define GCC_QUPV3_WRAP3_S_AHB_CLK 89
100+
#define GCC_SMMU_PCIE_QTC_VOTE_CLK 90
101+
102+
/* GCC power domains */
103+
#define GCC_PCIE_A_GDSC 0
104+
#define GCC_PCIE_A_PHY_GDSC 1
105+
#define GCC_PCIE_B_GDSC 2
106+
#define GCC_PCIE_B_PHY_GDSC 3
107+
#define GCC_PCIE_C_GDSC 4
108+
#define GCC_PCIE_C_PHY_GDSC 5
109+
#define GCC_PCIE_D_GDSC 6
110+
#define GCC_PCIE_D_PHY_GDSC 7
111+
#define GCC_PCIE_NOC_GDSC 8
112+
113+
/* GCC resets */
114+
#define GCC_PCIE_A_BCR 0
115+
#define GCC_PCIE_A_LINK_DOWN_BCR 1
116+
#define GCC_PCIE_A_NOCSR_COM_PHY_BCR 2
117+
#define GCC_PCIE_A_PHY_BCR 3
118+
#define GCC_PCIE_A_PHY_CFG_AHB_BCR 4
119+
#define GCC_PCIE_A_PHY_COM_BCR 5
120+
#define GCC_PCIE_A_PHY_NOCSR_COM_PHY_BCR 6
121+
#define GCC_PCIE_B_BCR 7
122+
#define GCC_PCIE_B_LINK_DOWN_BCR 8
123+
#define GCC_PCIE_B_NOCSR_COM_PHY_BCR 9
124+
#define GCC_PCIE_B_PHY_BCR 10
125+
#define GCC_PCIE_B_PHY_CFG_AHB_BCR 11
126+
#define GCC_PCIE_B_PHY_COM_BCR 12
127+
#define GCC_PCIE_B_PHY_NOCSR_COM_PHY_BCR 13
128+
#define GCC_PCIE_C_BCR 14
129+
#define GCC_PCIE_C_LINK_DOWN_BCR 15
130+
#define GCC_PCIE_C_NOCSR_COM_PHY_BCR 16
131+
#define GCC_PCIE_C_PHY_BCR 17
132+
#define GCC_PCIE_C_PHY_CFG_AHB_BCR 18
133+
#define GCC_PCIE_C_PHY_COM_BCR 19
134+
#define GCC_PCIE_C_PHY_NOCSR_COM_PHY_BCR 20
135+
#define GCC_PCIE_D_BCR 21
136+
#define GCC_PCIE_D_LINK_DOWN_BCR 22
137+
#define GCC_PCIE_D_NOCSR_COM_PHY_BCR 23
138+
#define GCC_PCIE_D_PHY_BCR 24
139+
#define GCC_PCIE_D_PHY_CFG_AHB_BCR 25
140+
#define GCC_PCIE_D_PHY_COM_BCR 26
141+
#define GCC_PCIE_D_PHY_NOCSR_COM_PHY_BCR 27
142+
#define GCC_PCIE_NOC_BCR 28
143+
#define GCC_PDM_BCR 29
144+
#define GCC_QUPV3_WRAPPER_3_BCR 30
145+
#define GCC_TCSR_PCIE_BCR 31
146+
147+
#endif

0 commit comments

Comments
 (0)