Skip to content

Commit 87e5570

Browse files
committed
Merge tag 'qcom-clk-for-5.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-qcom
Pull qcom clk driver updates from Bjorn Andersson: This introduces bindings and drivers for the global clock controllers found in SDX65, SM8450 and MSM8976, as well as RPMh clock support for SDX65 and SM8450. It cleans up the SMD RPM clock driver and it adds includes for clk-provider.h throughout the clock providers that was lacking this. * tag 'qcom-clk-for-5.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (23 commits) clk: qcom: turingcc-qcs404: explicitly include clk-provider.h clk: qcom: q6sstop-qcs404: explicitly include clk-provider.h clk: qcom: mmcc-apq8084: explicitly include clk-provider.h clk: qcom: lpasscc-sdm845: explicitly include clk-provider.h clk: qcom: lpasscc-sc7280: explicitly include clk-provider.h clk: qcom: gcc-sm6350: explicitly include clk-provider.h clk: qcom: gcc-msm8994: explicitly include clk-provider.h clk: qcom: gcc-sm8350: explicitly include clk-provider.h clk: qcom: Add MSM8976/56 Global Clock Controller (GCC) driver dt-bindings: clk: qcom: Document MSM8976 Global Clock Controller clk: qcom: Add clock driver for SM8450 clk: qcom: Add SDX65 GCC support clk: qcom: Add LUCID_EVO PLL type for SDX65 dt-bindings: clock: Add SM8450 GCC clock bindings dt-bindings: clock: Add SDX65 GCC clock bindings clk: qcom: rpmh: add support for SM8450 rpmh clocks dt-bindings: clock: Add RPMHCC bindings for SM8450 clk: qcom: smd-rpm: Drop binary value handling for buffered clock clk: qcom: smd-rpm: Drop the use of struct rpm_cc clk: qcom: smd-rpm: Drop MFD qcom-rpm reference ...
2 parents 9c33707 + 96ea2a4 commit 87e5570

25 files changed

+10202
-32
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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,gcc-msm8976.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller Binding for MSM8976
8+
9+
maintainers:
10+
- Stephen Boyd <sboyd@kernel.org>
11+
- Taniya Das <tdas@codeaurora.org>
12+
13+
description: |
14+
Qualcomm global clock control module which supports the clocks, resets and
15+
power domains on MSM8976.
16+
17+
See also:
18+
- dt-bindings/clock/qcom,gcc-msm8976.h
19+
20+
properties:
21+
compatible:
22+
enum:
23+
- qcom,gcc-msm8976
24+
- qcom,gcc-msm8976-v1.1
25+
26+
clocks:
27+
items:
28+
- description: XO source
29+
- description: Always-on XO source
30+
- description: Pixel clock from DSI PHY0
31+
- description: Byte clock from DSI PHY0
32+
- description: Pixel clock from DSI PHY1
33+
- description: Byte clock from DSI PHY1
34+
35+
clock-names:
36+
items:
37+
- const: xo
38+
- const: xo_a
39+
- const: dsi0pll
40+
- const: dsi0pllbyte
41+
- const: dsi1pll
42+
- const: dsi1pllbyte
43+
44+
vdd_gfx-supply:
45+
description:
46+
Phandle to voltage regulator providing power to the GX domain.
47+
48+
'#clock-cells':
49+
const: 1
50+
51+
'#reset-cells':
52+
const: 1
53+
54+
'#power-domain-cells':
55+
const: 1
56+
57+
reg:
58+
maxItems: 1
59+
60+
required:
61+
- compatible
62+
- reg
63+
- clocks
64+
- clock-names
65+
- vdd_gfx-supply
66+
- '#clock-cells'
67+
- '#reset-cells'
68+
- '#power-domain-cells'
69+
70+
additionalProperties: false
71+
72+
examples:
73+
- |
74+
clock-controller@1800000 {
75+
compatible = "qcom,gcc-msm8976";
76+
#clock-cells = <1>;
77+
#reset-cells = <1>;
78+
#power-domain-cells = <1>;
79+
reg = <0x1800000 0x80000>;
80+
81+
clocks = <&xo_board>,
82+
<&xo_board>,
83+
<&dsi0_phy 1>,
84+
<&dsi0_phy 0>,
85+
<&dsi1_phy 1>,
86+
<&dsi1_phy 0>;
87+
88+
clock-names = "xo",
89+
"xo_a",
90+
"dsi0pll",
91+
"dsi0pllbyte",
92+
"dsi1pll",
93+
"dsi1pllbyte";
94+
95+
vdd_gfx-supply = <&pm8004_s5>;
96+
};
97+
...
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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,gcc-sdx65.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller Binding for SDX65
8+
9+
maintainers:
10+
- Vamsi krishna Lanka <quic_vamslank@quicinc.com>
11+
12+
description: |
13+
Qualcomm global clock control module which supports the clocks, resets and
14+
power domains on SDX65
15+
16+
See also:
17+
- dt-bindings/clock/qcom,gcc-sdx65.h
18+
19+
properties:
20+
compatible:
21+
const: qcom,gcc-sdx65
22+
23+
reg:
24+
maxItems: 1
25+
26+
clocks:
27+
items:
28+
- description: Board XO source
29+
- description: Board active XO source
30+
- description: Sleep clock source
31+
- description: PCIE Pipe clock source
32+
- description: USB3 phy wrapper pipe clock source
33+
- description: PLL test clock source (Optional clock)
34+
minItems: 5
35+
36+
clock-names:
37+
items:
38+
- const: bi_tcxo
39+
- const: bi_tcxo_ao
40+
- const: sleep_clk
41+
- const: pcie_pipe_clk
42+
- const: usb3_phy_wrapper_gcc_usb30_pipe_clk
43+
- const: core_bi_pll_test_se # Optional clock
44+
minItems: 5
45+
46+
'#clock-cells':
47+
const: 1
48+
49+
'#reset-cells':
50+
const: 1
51+
52+
'#power-domain-cells':
53+
const: 1
54+
55+
required:
56+
- compatible
57+
- reg
58+
- clocks
59+
- clock-names
60+
- '#clock-cells'
61+
- '#reset-cells'
62+
- '#power-domain-cells'
63+
64+
additionalProperties: false
65+
66+
examples:
67+
- |
68+
#include <dt-bindings/clock/qcom,rpmh.h>
69+
clock-controller@100000 {
70+
compatible = "qcom,gcc-sdx65";
71+
reg = <0x100000 0x1f7400>;
72+
clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
73+
<&pcie_pipe_clk>, <&usb3_phy_wrapper_gcc_usb30_pipe_clk>, <&pll_test_clk>;
74+
clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
75+
"pcie_pipe_clk", "usb3_phy_wrapper_gcc_usb30_pipe_clk", "core_bi_pll_test_se";
76+
#clock-cells = <1>;
77+
#reset-cells = <1>;
78+
#power-domain-cells = <1>;
79+
};
80+
...
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
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,gcc-sm8450.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller Binding for SM8450
8+
9+
maintainers:
10+
- Vinod Koul <vkoul@kernel.org>
11+
12+
description: |
13+
Qualcomm global clock control module which supports the clocks, resets and
14+
power domains on SM8450
15+
16+
See also:
17+
- dt-bindings/clock/qcom,gcc-sm8450.h
18+
19+
properties:
20+
compatible:
21+
const: qcom,gcc-sm8450
22+
23+
clocks:
24+
items:
25+
- description: Board XO source
26+
- description: Sleep clock source
27+
- description: PCIE 0 Pipe clock source (Optional clock)
28+
- description: PCIE 1 Pipe clock source (Optional clock)
29+
- description: PCIE 1 Phy Auxillary clock source (Optional clock)
30+
- description: UFS Phy Rx symbol 0 clock source (Optional clock)
31+
- description: UFS Phy Rx symbol 1 clock source (Optional clock)
32+
- description: UFS Phy Tx symbol 0 clock source (Optional clock)
33+
- description: USB3 Phy wrapper pipe clock source (Optional clock)
34+
minItems: 2
35+
36+
clock-names:
37+
items:
38+
- const: bi_tcxo
39+
- const: sleep_clk
40+
- const: pcie_0_pipe_clk # Optional clock
41+
- const: pcie_1_pipe_clk # Optional clock
42+
- const: pcie_1_phy_aux_clk # Optional clock
43+
- const: ufs_phy_rx_symbol_0_clk # Optional clock
44+
- const: ufs_phy_rx_symbol_1_clk # Optional clock
45+
- const: ufs_phy_tx_symbol_0_clk # Optional clock
46+
- const: usb3_phy_wrapper_gcc_usb30_pipe_clk # Optional clock
47+
minItems: 2
48+
49+
'#clock-cells':
50+
const: 1
51+
52+
'#reset-cells':
53+
const: 1
54+
55+
'#power-domain-cells':
56+
const: 1
57+
58+
reg:
59+
maxItems: 1
60+
61+
required:
62+
- compatible
63+
- reg
64+
- clocks
65+
- clock-names
66+
- '#clock-cells'
67+
- '#reset-cells'
68+
- '#power-domain-cells'
69+
70+
additionalProperties: false
71+
72+
examples:
73+
- |
74+
#include <dt-bindings/clock/qcom,rpmh.h>
75+
clock-controller@100000 {
76+
compatible = "qcom,gcc-sm8450";
77+
reg = <0x00100000 0x001f4200>;
78+
clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
79+
clock-names = "bi_tcxo", "sleep_clk";
80+
#clock-cells = <1>;
81+
#reset-cells = <1>;
82+
#power-domain-cells = <1>;
83+
};
84+
85+
...

Documentation/devicetree/bindings/clock/qcom,rpmhcc.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ properties:
2222
- qcom,sc8180x-rpmh-clk
2323
- qcom,sdm845-rpmh-clk
2424
- qcom,sdx55-rpmh-clk
25+
- qcom,sdx65-rpmh-clk
2526
- qcom,sm6350-rpmh-clk
2627
- qcom,sm8150-rpmh-clk
2728
- qcom,sm8250-rpmh-clk
2829
- qcom,sm8350-rpmh-clk
30+
- qcom,sm8450-rpmh-clk
2931

3032
clocks:
3133
maxItems: 1

MAINTAINERS

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15725,6 +15725,15 @@ F: Documentation/admin-guide/media/qcom_camss.rst
1572515725
F: Documentation/devicetree/bindings/media/*camss*
1572615726
F: drivers/media/platform/qcom/camss/
1572715727

15728+
QUALCOMM CLOCK DRIVERS
15729+
M: Bjorn Andersson <bjorn.andersson@linaro.org>
15730+
L: linux-arm-msm@vger.kernel.org
15731+
S: Supported
15732+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
15733+
F: Documentation/devicetree/bindings/clock/qcom,*
15734+
F: drivers/clk/qcom/
15735+
F: include/dt-bindings/clock/qcom,*
15736+
1572815737
QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
1572915738
M: Niklas Cassel <nks@flawful.org>
1573015739
L: linux-pm@vger.kernel.org

drivers/clk/qcom/Kconfig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,14 @@ config MSM_MMCC_8974
265265
Say Y if you want to support multimedia devices such as display,
266266
graphics, video encode/decode, camera, etc.
267267

268+
config MSM_GCC_8976
269+
tristate "MSM8956/76 Global Clock Controller"
270+
select QCOM_GDSC
271+
help
272+
Support for the global clock controller on msm8956/76 devices.
273+
Say Y if you want to use peripheral devices such as UART, SPI,
274+
i2c, USB, SD/eMMC, SATA, PCIe, etc.
275+
268276
config MSM_MMCC_8994
269277
tristate "MSM8994 Multimedia Clock Controller"
270278
select MSM_GCC_8994
@@ -564,6 +572,14 @@ config SM_CAMCC_8250
564572
Support for the camera clock controller on SM8250 devices.
565573
Say Y if you want to support camera devices and camera functionality.
566574

575+
config SDX_GCC_65
576+
tristate "SDX65 Global Clock Controller"
577+
select QCOM_GDSC
578+
help
579+
Support for the global clock controller on SDX65 devices.
580+
Say Y if you want to use peripheral devices such as UART,
581+
SPI, I2C, USB, SD/UFS, PCIe etc.
582+
567583
config SM_DISPCC_8250
568584
tristate "SM8150 and SM8250 Display Clock Controller"
569585
depends on SM_GCC_8150 || SM_GCC_8250
@@ -618,6 +634,14 @@ config SM_GCC_8350
618634
Say Y if you want to use peripheral devices such as UART,
619635
SPI, I2C, USB, SD/UFS, PCIe etc.
620636

637+
config SM_GCC_8450
638+
tristate "SM8450 Global Clock Controller"
639+
select QCOM_GDSC
640+
help
641+
Support for the global clock controller on SM8450 devices.
642+
Say Y if you want to use peripheral devices such as UART,
643+
SPI, I2C, USB, SD/UFS, PCIe etc.
644+
621645
config SM_GPUCC_8150
622646
tristate "SM8150 Graphics Clock Controller"
623647
select SM_GCC_8150

drivers/clk/qcom/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ obj-$(CONFIG_MSM_GCC_8939) += gcc-msm8939.o
3636
obj-$(CONFIG_MSM_GCC_8953) += gcc-msm8953.o
3737
obj-$(CONFIG_MSM_GCC_8960) += gcc-msm8960.o
3838
obj-$(CONFIG_MSM_GCC_8974) += gcc-msm8974.o
39+
obj-$(CONFIG_MSM_GCC_8976) += gcc-msm8976.o
3940
obj-$(CONFIG_MSM_GCC_8994) += gcc-msm8994.o
4041
obj-$(CONFIG_MSM_GCC_8996) += gcc-msm8996.o
4142
obj-$(CONFIG_MSM_LCC_8960) += lcc-msm8960.o
@@ -83,13 +84,15 @@ obj-$(CONFIG_SDM_LPASSCC_845) += lpasscc-sdm845.o
8384
obj-$(CONFIG_SDM_VIDEOCC_845) += videocc-sdm845.o
8485
obj-$(CONFIG_SDX_GCC_55) += gcc-sdx55.o
8586
obj-$(CONFIG_SM_CAMCC_8250) += camcc-sm8250.o
87+
obj-$(CONFIG_SDX_GCC_65) += gcc-sdx65.o
8688
obj-$(CONFIG_SM_DISPCC_8250) += dispcc-sm8250.o
8789
obj-$(CONFIG_SM_GCC_6115) += gcc-sm6115.o
8890
obj-$(CONFIG_SM_GCC_6125) += gcc-sm6125.o
8991
obj-$(CONFIG_SM_GCC_6350) += gcc-sm6350.o
9092
obj-$(CONFIG_SM_GCC_8150) += gcc-sm8150.o
9193
obj-$(CONFIG_SM_GCC_8250) += gcc-sm8250.o
9294
obj-$(CONFIG_SM_GCC_8350) += gcc-sm8350.o
95+
obj-$(CONFIG_SM_GCC_8450) += gcc-sm8450.o
9396
obj-$(CONFIG_SM_GPUCC_8150) += gpucc-sm8150.o
9497
obj-$(CONFIG_SM_GPUCC_8250) += gpucc-sm8250.o
9598
obj-$(CONFIG_SM_VIDEOCC_8150) += videocc-sm8150.o

0 commit comments

Comments
 (0)