Skip to content

Commit 36001a2

Browse files
committed
Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk updates from Stephen Boyd: "The clk core gains a new set of APIs that allow drivers to both acquire clks and prepare and enable them at the same time. This also comes with devm support so that drivers can make a single call to get and prepare and enable the clk and have that all undone when their driver is removed. Many folks have requested this feature over the years, but we've had disagreements about how to implement it and if it was worthwhile to encourage drivers to use such an API. Now it's here, so let's see how it goes. I hope that by introducing this API we can identify drivers that would benefit from further consolidation of clk API usage, possibly by moving such logic to the bus layer and out of drivers altogether. Outside of that major API update, we have the usual collection of driver updates. A few new SoCs are supported, mostly Qualcomm and Renesas this time around. Then we have the long tail of non-critical fixes and minor feature additions to various clk drivers. And finally more clk provider migration to struct clk_parent_data, reducing boot times in the process. Summary: Core: - devm helpers for clk_get() + clk_prepare() and clk_enable() New Drivers: - Support for the camera clock controller in Qualcomm SM8450 and the display and gpu clock controllers in Qualcomm SM8350 - Add support for the Renesas RZ/Five SoC Updates: - Various fixes, new clocks and USB GDSCs are introduced for Qualcomm IPQ8074 - Fixes to Qualcomm MSM8939 for issues introduced by inheriting the MSM8916 GCC driver - Support for a new type of voteable GDSCs used by Qualcomm SC8280XP PCIe GDSCs - Qualcomm SC8280XP pipe clocks transitioned to the new phy-mux implementation - Qualcomm MSM8996 GCC, RPM clock driver and some clocks in MSM8994 GCC are migrated to use clk_parent_data - Corrected the topology for Titan (camera) GDSCs on Qualcomm SDM845 and SM8250 - Qualcomm MSM8916 gains more possible frequencies for its GP clocks. - The GCC and tsens handling on Qualcomm MSM8960 is reworked to mimic the design in IPQ8074 to allow the GCC driver to probe earlier. - The regulator based mmcx supply for Qualcomm dispcc and videocc is dropped, as the only upstream target that adapted this interface was transitioned several kernel versions ago - Qualcomm GDSCs found to be enabled at boot will now reflect in the enable count of the supply, as was done with the regulator supplies previously - Correct adc1, nic_media and edma1's parents for NXP i.MX93 - rdiv, mfd values, the return rate in recalc_rate and add more frequencies in the table for fracn-gppll on i.MX - Remove Allwinner workaround logic/compatible in fixed factor code - MediaTek clk driver cleanups - Add reset support to more MediaTek clk drivers - deduplicate Allwinner ccu_clks arrays - Allwinner H6 GPU DFS support - Adjust Allwinner Kconfig to limit choice - Fix initconst confusion on Renesas R-Car Gen4 - Add GPT/POEG (PWM) clocks and resets on Renesas RZ/G2L - Add PFC and WDT clocks and resets on Renesas RZ/V2M - Add thermal, SDHI, Z (CPU core), PCIe, and HSCIF (serial) clocks on Renesas R-Car S4-8" * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (124 commits) clk: fixed-factor: Introduce *clk_hw_register_fixed_factor_parent_hw() clk: mux: Introduce devm_clk_hw_register_mux_parent_hws() clk: divider: Introduce devm_clk_hw_register_divider_parent_hw() clk: qcom: gcc-msm8994: use parent_hws for gpll0/4 clk: qcom: clk-rpm: convert to parent_data API dt-bindings: clock: fix wrong clock documentation for qcom,rpmcc clk: qcom: gcc-msm8939: Add missing USB HS system clock frequencies clk: qcom: gcc-msm8939: Add missing MDSS MDP clock frequencies clk: qcom: gcc-msm8939: Add missing CAMSS CPP clock frequencies clk: qcom: gcc-msm8939: Fix venus0_vcodec0_clk frequency definitions clk: qcom: gcc-msm8939: Add missing CAMSS CCI bus clock clk: qcom: gcc-msm8939: Fix weird field spacing in ftbl_gcc_camss_cci_clk clk: qcom: gdsc: Bump parent usage count when GDSC is found enabled clk: qcom: Drop mmcx gdsc supply for dispcc and videocc clk: qcom: fix build error initializer element is not constant clk: sprd: Add dt-bindings include file for UMS512 dt-bindings: clk: sprd: Add bindings for ums512 clock controller clk: sunxi-ng: sun50i: h6: Modify GPU clock configuration to support DFS dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources clk: qcom: add support for SM8350 DISPCC ...
2 parents 37644ca + 08fc500 commit 36001a2

File tree

103 files changed

+6696
-1490
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+6696
-1490
lines changed

Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8186-sys-clock.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ properties:
3939
'#clock-cells':
4040
const: 1
4141

42+
'#reset-cells':
43+
const: 1
44+
4245
required:
4346
- compatible
4447
- reg

Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8192-clock.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ properties:
2424
- mediatek,mt8192-imp_iic_wrap_w
2525
- mediatek,mt8192-imp_iic_wrap_n
2626
- mediatek,mt8192-msdc_top
27-
- mediatek,mt8192-msdc
2827
- mediatek,mt8192-mfgcfg
2928
- mediatek,mt8192-imgsys
3029
- mediatek,mt8192-imgsys2
@@ -107,13 +106,6 @@ examples:
107106
#clock-cells = <1>;
108107
};
109108
110-
- |
111-
msdc: clock-controller@11f60000 {
112-
compatible = "mediatek,mt8192-msdc";
113-
reg = <0x11f60000 0x1000>;
114-
#clock-cells = <1>;
115-
};
116-
117109
- |
118110
mfgcfg: clock-controller@13fbf000 {
119111
compatible = "mediatek,mt8192-mfgcfg";

Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8192-sys-clock.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ properties:
2929
'#clock-cells':
3030
const: 1
3131

32+
'#reset-cells':
33+
const: 1
34+
3235
required:
3336
- compatible
3437
- reg

Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8195-sys-clock.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ properties:
3737
'#clock-cells':
3838
const: 1
3939

40+
'#reset-cells':
41+
const: 1
42+
4043
required:
4144
- compatible
4245
- reg

Documentation/devicetree/bindings/clock/fixed-factor-clock.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ maintainers:
1313
properties:
1414
compatible:
1515
enum:
16-
- allwinner,sun4i-a10-pll3-2x-clk
1716
- fixed-factor-clock
1817

1918
"#clock-cells":

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

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
$id: http://devicetree.org/schemas/clock/qcom,gcc-apq8064.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: Qualcomm Global Clock & Reset Controller Binding for APQ8064
7+
title: Qualcomm Global Clock & Reset Controller Binding for APQ8064/MSM8960
88

99
allOf:
1010
- $ref: qcom,gcc.yaml#
@@ -23,11 +23,25 @@ description: |
2323
2424
properties:
2525
compatible:
26-
const: qcom,gcc-apq8064
26+
oneOf:
27+
- items:
28+
- enum:
29+
- qcom,gcc-apq8064
30+
- qcom,gcc-msm8960
31+
- const: syscon
32+
- enum:
33+
- qcom,gcc-apq8064
34+
- qcom,gcc-msm8960
35+
deprecated: true
36+
37+
thermal-sensor:
38+
description: child tsens device
39+
$ref: /schemas/thermal/qcom-tsens.yaml#
2740

2841
nvmem-cells:
2942
minItems: 1
3043
maxItems: 2
44+
deprecated: true
3145
description:
3246
Qualcomm TSENS (thermal sensor device) on some devices can
3347
be part of GCC and hence the TSENS properties can also be part
@@ -37,31 +51,39 @@ properties:
3751

3852
nvmem-cell-names:
3953
minItems: 1
54+
deprecated: true
4055
items:
4156
- const: calib
4257
- const: calib_backup
4358

4459
'#thermal-sensor-cells':
4560
const: 1
61+
deprecated: true
4662

4763
required:
4864
- compatible
49-
- nvmem-cells
50-
- nvmem-cell-names
51-
- '#thermal-sensor-cells'
5265

5366
unevaluatedProperties: false
5467

5568
examples:
5669
- |
5770
clock-controller@900000 {
58-
compatible = "qcom,gcc-apq8064";
71+
compatible = "qcom,gcc-apq8064", "syscon";
5972
reg = <0x00900000 0x4000>;
60-
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
61-
nvmem-cell-names = "calib", "calib_backup";
6273
#clock-cells = <1>;
6374
#reset-cells = <1>;
6475
#power-domain-cells = <1>;
65-
#thermal-sensor-cells = <1>;
76+
77+
thermal-sensor {
78+
compatible = "qcom,msm8960-tsens";
79+
80+
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
81+
nvmem-cell-names = "calib", "calib_backup";
82+
interrupts = <0 178 4>;
83+
interrupt-names = "uplow";
84+
85+
#qcom,sensors = <11>;
86+
#thermal-sensor-cells = <1>;
87+
};
6688
};
6789
...

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ properties:
2424
'#clock-cells':
2525
const: 1
2626

27+
'#power-domain-cells':
28+
const: 1
29+
2730
'#reset-cells':
2831
const: 1
2932

@@ -38,6 +41,7 @@ required:
3841
- compatible
3942
- reg
4043
- '#clock-cells'
44+
- '#power-domain-cells'
4145
- '#reset-cells'
4246

4347
additionalProperties: false
@@ -48,6 +52,7 @@ examples:
4852
compatible = "qcom,gcc-ipq8074";
4953
reg = <0x01800000 0x80000>;
5054
#clock-cells = <1>;
55+
#power-domain-cells = <1>;
5156
#reset-cells = <1>;
5257
};
5358
...

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,32 @@ properties:
2222
const: qcom,gcc-msm8996
2323

2424
clocks:
25+
minItems: 3
2526
items:
2627
- description: XO source
2728
- description: Second XO source
2829
- description: Sleep clock source
30+
- description: PCIe 0 PIPE clock (optional)
31+
- description: PCIe 1 PIPE clock (optional)
32+
- description: PCIe 2 PIPE clock (optional)
33+
- description: USB3 PIPE clock (optional)
34+
- description: UFS RX symbol 0 clock (optional)
35+
- description: UFS RX symbol 1 clock (optional)
36+
- description: UFS TX symbol 0 clock (optional)
2937

3038
clock-names:
39+
minItems: 3
3140
items:
3241
- const: cxo
3342
- const: cxo2
3443
- const: sleep_clk
44+
- const: pcie_0_pipe_clk_src
45+
- const: pcie_1_pipe_clk_src
46+
- const: pcie_2_pipe_clk_src
47+
- const: usb3_phy_pipe_clk_src
48+
- const: ufs_rx_symbol_0_clk_src
49+
- const: ufs_rx_symbol_1_clk_src
50+
- const: ufs_tx_symbol_0_clk_src
3551

3652
'#clock-cells':
3753
const: 1

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ properties:
4444
- qcom,gcc-msm8916
4545
- qcom,gcc-msm8939
4646
- qcom,gcc-msm8953
47-
- qcom,gcc-msm8960
4847
- qcom,gcc-msm8974
4948
- qcom,gcc-msm8974pro
5049
- qcom,gcc-msm8974pro-ac
@@ -58,10 +57,10 @@ required:
5857
unevaluatedProperties: false
5958

6059
examples:
61-
# Example for GCC for MSM8960:
60+
# Example for GCC for MSM8974:
6261
- |
6362
clock-controller@900000 {
64-
compatible = "qcom,gcc-msm8960";
63+
compatible = "qcom,gcc-msm8974";
6564
reg = <0x900000 0x4000>;
6665
#clock-cells = <1>;
6766
#reset-cells = <1>;

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ properties:
4343
'#reset-cells':
4444
const: 1
4545

46+
power-domains:
47+
maxItems: 1
48+
4649
'#power-domain-cells':
4750
const: 1
4851

0 commit comments

Comments
 (0)