Skip to content

Commit 856c798

Browse files
committed
Merge tag 'qcom-clk-for-5.19' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-qcom
Pull Qualcomm clock driver updates from Bjorn Andersson: This introduces the LPASS clock controller driver for sc7280 and the global clock controller for SC8280XP. It adds modem reset, corrects RPM clocks and moves to floor ops for SDCC on MSM8976. It introduces clocks needed to operate the Sensor Subsystem in MSM8998. It enhances the logic for parked shared RCG2s, to avoid problems on recent platforms. And lastly it introduces a new mechanism for handling the PCIe pipe_clk, which also needs to be parked on a safe source when the PHY is turned off. * tag 'qcom-clk-for-5.19' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: clk: qcom: rcg2: Cache CFG register updates for parked RCGs clk: qcom: add sc8280xp GCC driver dt-bindings: clock: Add Qualcomm SC8280XP GCC bindings clk: qcom: gcc-msm8976: Add modem reset dt-bindings: clk: qcom: gcc-msm8976: Add modem reset clk: qcom: gcc-msm8976: Set floor ops for SDCC dt-bindings: clock: qcom,gcc-apq8064: Fix typo in compatible and split apq8084 clk: qcom: smd: Update MSM8976 RPM clocks. clk: qcom: gcc-msm8998: add SSC-related clocks dt-bindings: clock: gcc-msm8998: Add definitions of SSC-related clocks dt-bindings: clock: qcom,rpmcc: add clocks property dt-bindings: clock: qcom,rpmcc: convert to dtschema clk: qcom: lpass: Add support for LPASS clock controller for SC7280 dt-bindings: clock: Add YAML schemas for LPASS clocks on SC7280 clk: qcom: gcc-sc7280: use new clk_regmap_mux_safe_ops for PCIe pipe clocks clk: qcom: gcc-sm8450: use new clk_regmap_mux_safe_ops for PCIe pipe clocks clk: qcom: regmap-mux: add pipe clk implementation
2 parents 3123109 + 703db1f commit 856c798

26 files changed

Lines changed: 10024 additions & 104 deletions

Documentation/devicetree/bindings/clock/qcom,gcc-apq8064.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@ description: |
2020
See also:
2121
- dt-bindings/clock/qcom,gcc-msm8960.h
2222
- dt-bindings/reset/qcom,gcc-msm8960.h
23-
- dt-bindings/clock/qcom,gcc-apq8084.h
24-
- dt-bindings/reset/qcom,gcc-apq8084.h
2523
2624
properties:
2725
compatible:
28-
const: qcom,gcc-apq8084
26+
const: qcom,gcc-apq8064
2927

3028
nvmem-cells:
3129
minItems: 1
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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-apq8084.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller Binding for APQ8084
8+
9+
maintainers:
10+
- Stephen Boyd <sboyd@kernel.org>
11+
- Taniya Das <quic_tdas@quicinc.com>
12+
13+
description: |
14+
Qualcomm global clock control module which supports the clocks, resets and
15+
power domains on APQ8084.
16+
17+
See also::
18+
- dt-bindings/clock/qcom,gcc-apq8084.h
19+
- dt-bindings/reset/qcom,gcc-apq8084.h
20+
21+
allOf:
22+
- $ref: qcom,gcc.yaml#
23+
24+
properties:
25+
compatible:
26+
const: qcom,gcc-apq8084
27+
28+
required:
29+
- compatible
30+
31+
unevaluatedProperties: false
32+
33+
examples:
34+
- |
35+
clock-controller@fc400000 {
36+
compatible = "qcom,gcc-apq8084";
37+
reg = <0xfc400000 0x4000>;
38+
#clock-cells = <1>;
39+
#reset-cells = <1>;
40+
#power-domain-cells = <1>;
41+
};
42+
...
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
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-sc8280xp.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller Binding for SC8280xp
8+
9+
maintainers:
10+
- Bjorn Andersson <bjorn.andersson@linaro.org>
11+
12+
description: |
13+
Qualcomm global clock control module which supports the clocks, resets and
14+
power domains on SC8280xp.
15+
16+
See also:
17+
- include/dt-bindings/clock/qcom,gcc-sc8280xp.h
18+
19+
properties:
20+
compatible:
21+
const: qcom,gcc-sc8280xp
22+
23+
clocks:
24+
items:
25+
- description: XO reference clock
26+
- description: Sleep clock
27+
- description: UFS memory first RX symbol clock
28+
- description: UFS memory second RX symbol clock
29+
- description: UFS memory first TX symbol clock
30+
- description: UFS card first RX symbol clock
31+
- description: UFS card second RX symbol clock
32+
- description: UFS card first TX symbol clock
33+
- description: Primary USB SuperSpeed pipe clock
34+
- description: USB4 PHY pipegmux clock source
35+
- description: USB4 PHY DP gmux clock source
36+
- description: USB4 PHY sys piegmux clock source
37+
- description: USB4 PHY PCIe pipe clock
38+
- description: USB4 PHY router max pipe clock
39+
- description: Primary USB4 RX0 clock
40+
- description: Primary USB4 RX1 clock
41+
- description: Secondary USB SuperSpeed pipe clock
42+
- description: Second USB4 PHY pipegmux clock source
43+
- description: Second USB4 PHY DP gmux clock source
44+
- description: Second USB4 PHY sys pipegmux clock source
45+
- description: Second USB4 PHY PCIe pipe clock
46+
- description: Second USB4 PHY router max pipe clock
47+
- description: Secondary USB4 RX0 clock
48+
- description: Secondary USB4 RX1 clock
49+
- description: Multiport USB first SupserSpeed pipe clock
50+
- description: Multiport USB second SuperSpeed pipe clock
51+
- description: PCIe 2a pipe clock
52+
- description: PCIe 2b pipe clock
53+
- description: PCIe 3a pipe clock
54+
- description: PCIe 3b pipe clock
55+
- description: PCIe 4 pipe clock
56+
- description: First EMAC controller reference clock
57+
- description: Second EMAC controller reference clock
58+
59+
'#clock-cells':
60+
const: 1
61+
62+
'#reset-cells':
63+
const: 1
64+
65+
'#power-domain-cells':
66+
const: 1
67+
68+
reg:
69+
maxItems: 1
70+
71+
protected-clocks:
72+
maxItems: 389
73+
74+
required:
75+
- compatible
76+
- clocks
77+
- reg
78+
- '#clock-cells'
79+
- '#reset-cells'
80+
- '#power-domain-cells'
81+
82+
additionalProperties: false
83+
84+
examples:
85+
- |
86+
#include <dt-bindings/clock/qcom,rpmh.h>
87+
clock-controller@100000 {
88+
compatible = "qcom,gcc-sc8280xp";
89+
reg = <0x00100000 0x1f0000>;
90+
clocks = <&rpmhcc RPMH_CXO_CLK>,
91+
<&sleep_clk>,
92+
<&ufs_phy_rx_symbol_0_clk>,
93+
<&ufs_phy_rx_symbol_1_clk>,
94+
<&ufs_phy_tx_symbol_0_clk>,
95+
<&ufs_card_rx_symbol_0_clk>,
96+
<&ufs_card_rx_symbol_1_clk>,
97+
<&ufs_card_tx_symbol_0_clk>,
98+
<&usb_0_ssphy>,
99+
<&gcc_usb4_phy_pipegmux_clk_src>,
100+
<&gcc_usb4_phy_dp_gmux_clk_src>,
101+
<&gcc_usb4_phy_sys_pipegmux_clk_src>,
102+
<&usb4_phy_gcc_usb4_pcie_pipe_clk>,
103+
<&usb4_phy_gcc_usb4rtr_max_pipe_clk>,
104+
<&qusb4phy_gcc_usb4_rx0_clk>,
105+
<&qusb4phy_gcc_usb4_rx1_clk>,
106+
<&usb_1_ssphy>,
107+
<&gcc_usb4_1_phy_pipegmux_clk_src>,
108+
<&gcc_usb4_1_phy_dp_gmux_clk_src>,
109+
<&gcc_usb4_1_phy_sys_pipegmux_clk_src>,
110+
<&usb4_1_phy_gcc_usb4_pcie_pipe_clk>,
111+
<&usb4_1_phy_gcc_usb4rtr_max_pipe_clk>,
112+
<&qusb4phy_1_gcc_usb4_rx0_clk>,
113+
<&qusb4phy_1_gcc_usb4_rx1_clk>,
114+
<&usb_2_ssphy>,
115+
<&usb_3_ssphy>,
116+
<&pcie2a_lane>,
117+
<&pcie2b_lane>,
118+
<&pcie3a_lane>,
119+
<&pcie3b_lane>,
120+
<&pcie4_lane>,
121+
<&rxc0_ref_clk>,
122+
<&rxc1_ref_clk>;
123+
124+
#clock-cells = <1>;
125+
#reset-cells = <1>;
126+
#power-domain-cells = <1>;
127+
};
128+
...

Documentation/devicetree/bindings/clock/qcom,rpmcc.txt

Lines changed: 0 additions & 63 deletions
This file was deleted.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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,rpmcc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm RPM Clock Controller
8+
9+
maintainers:
10+
- Bjorn Andersson <bjorn.andersson@linaro.org>
11+
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
12+
13+
description: |
14+
The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h> and
15+
come in pairs:: FOO_CLK followed by FOO_A_CLK. The latter clock is
16+
an "active" clock, which means that the consumer only care that the clock is
17+
available when the apps CPU subsystem is active, i.e. not suspended or in
18+
deep idle. If it is important that the clock keeps running during system
19+
suspend, you need to specify the non-active clock, the one not containing
20+
*_A_* in the enumerator name.
21+
22+
properties:
23+
compatible:
24+
items:
25+
- enum:
26+
- qcom,rpmcc-apq8060
27+
- qcom,rpmcc-apq8064
28+
- qcom,rpmcc-ipq806x
29+
- qcom,rpmcc-mdm9607
30+
- qcom,rpmcc-msm8226
31+
- qcom,rpmcc-msm8660
32+
- qcom,rpmcc-msm8916
33+
- qcom,rpmcc-msm8936
34+
- qcom,rpmcc-msm8953
35+
- qcom,rpmcc-msm8974
36+
- qcom,rpmcc-msm8976
37+
- qcom,rpmcc-msm8992
38+
- qcom,rpmcc-msm8994
39+
- qcom,rpmcc-msm8996
40+
- qcom,rpmcc-msm8998
41+
- qcom,rpmcc-qcm2290
42+
- qcom,rpmcc-qcs404
43+
- qcom,rpmcc-sdm660
44+
- qcom,rpmcc-sm6115
45+
- qcom,rpmcc-sm6125
46+
- const: qcom,rpmcc
47+
48+
'#clock-cells':
49+
const: 1
50+
51+
clocks:
52+
maxItems: 1
53+
54+
clock-names:
55+
const: xo
56+
57+
required:
58+
- compatible
59+
- '#clock-cells'
60+
61+
additionalProperties: false
62+
63+
examples:
64+
- |
65+
rpm {
66+
rpm-requests {
67+
compatible = "qcom,rpm-msm8916";
68+
qcom,smd-channels = "rpm_requests";
69+
70+
clock-controller {
71+
compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
72+
#clock-cells = <1>;
73+
};
74+
};
75+
};

0 commit comments

Comments
 (0)