Skip to content

Commit 9512433

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: "There's one large change in the core clk framework here. We change how clk_set_rate_range() works so that the frequency is re-evaulated each time the rate is changed. Previously we wouldn't let clk providers see a rate that was different if it was still within the range, which could be bad for power if the clk could run slower when a range expands. Now the clk provider can decide to do something differently when the constraints change. This broke Nvidia's clk driver so we had to wait for the fix for that to bake a little more in -next. The rate range patch series also introduced a kunit suite for the clk framework that we're going to extend in the next release. It already made it easy to find corner cases in the rate range patches so I'm excited to see it cover more clk code and increase our confidence in core framework patches in the future. I also added a kunit test for the basic clk gate code and that work will continue to cover more basic clk types: muxes, dividers, etc. Beyond the core code we have the usual set of clk driver updates and additions. Qualcomm again dominates the diffstat here with lots more SoCs being supported and i.MX follows afer that with a similar number of SoCs gaining clk drivers. Beyond those large additions there's drivers being modernized to use clk_parent_data so we can move away from global string names for all the clks in an SoC. Finally there's lots of little fixes all over the clk drivers for typos, warnings, and missing clks that aren't critical and get batched up waiting for the next merge window to open. Nothing super big stands out in the driver pile. Full details are below. Core: - Make clk_set_rate_range() re-evaluate the limits each time - Introduce various clk_set_rate_range() tests - Add clk_drop_range() to drop a previously set range New Drivers: - i.MXRT1050 clock driver and bindings - i.MX8DXL clock driver and bindings - i.MX93 clock driver and bindings - NCO blocks on Apple SoCs - Audio clks on StarFive JH7100 RISC-V SoC - Add support for the new Renesas RZ/V2L SoC - Qualcomm SDX65 A7 PLL - Qualcomm SM6350 GPU clks - Qualcomm SM6125, SM6350, QCS2290 display clks - Qualcomm MSM8226 multimedia clks Updates: - Kunit tests for clk-gate implementation - Terminate arrays with sentinels and make that clearer - Cleanup SPDX tags - Fix typos in comments - Mark mux table as const in clk-mux - Make the all_lists array const - Convert Cirrus Logic CS2000P driver to regmap, yamlify DT binding and add support for dynamic mode - Clock configuration on Microchip PolarFire SoCs - Free allocations on probe error in Mediatek clk driver - Modernize Mediatek clk driver by consolidating code - Add watchdog (WDT), I2C, and pin function controller (PFC) clocks on Renesas R-Car S4-8 - Improve the clocks for the Rockchip rk3568 display outputs (parenting, pll-rates) - Use of_device_get_match_data() instead of open-coding on Rockchip rk3568 - Reintroduce the expected fractional-divider behaviour that disappeared with the addition of CLK_FRAC_DIVIDER_POWER_OF_TWO_PS - Remove SYS PLL 1/2 clock gates for i.MX8M* - Remove AUDIO MCLK ROOT from i.MX7D - Add fracn gppll clock type used by i.MX93 - Add new composite clock for i.MX93 - Add missing media mipi phy ref clock for i.MX8MP - Fix off by one in imx_lpcg_parse_clks_from_dt() - Rework for the imx pll14xx - sama7g5: One low priority fix for GCLK of PDMC - Add DMA engine (SYS-DMAC) clocks on Renesas R-Car S4-8 - Add MOST (MediaLB I/F) clocks on Renesas R-Car E3 and D3 - Add CAN-FD clocks on Renesas R-Car V3U - Qualcomm SC8280XP RPMCC - Add some missing clks on Qualcomm MSM8992/MSM8994/MSM8998 SoCs - Rework Qualcomm GCC bindings and convert SDM845 camera bindig to YAML - Convert various Qualcomm drivers to use clk_parent_data - Remove test clocks from various Qualcomm drivers - Crypto engine clks on Qualcomm IPQ806x + more freqs for SDCC/NSS - Qualcomm SM8150 EMAC, PCIe, UFS GDSCs - Better pixel clk frequency support on Qualcomm RCG2 clks" * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (227 commits) clk: zynq: Update the parameters to zynq_clk_register_periph_clk clk: zynq: trivial warning fix clk: Drop the rate range on clk_put() clk: test: Test clk_set_rate_range on orphan mux clk: Initialize orphan req_rate dt-bindings: clock: drop useless consumer example dt-bindings: clock: renesas: Make example 'clocks' parsable clk: qcom: gcc-msm8994: Fix gpll4 width dt-bindings: clock: fix dt_binding_check error for qcom,gcc-other.yaml clk: rs9: Add Renesas 9-series PCIe clock generator driver clk: fixed-factor: Introduce devm_clk_hw_register_fixed_factor_index() clk: visconti: prevent array overflow in visconti_clk_register_gates() dt-bindings: clk: rs9: Add Renesas 9-series I2C PCIe clock generator clk: sifive: Move all stuff into SoCs header files from C files clk: sifive: Add SoCs prefix in each SoCs-dependent data riscv: dts: Change the macro name of prci in each device node dt-bindings: change the macro name of prci in header files and example clk: sifive: duplicate the macro definitions for the time being clk: qcom: sm6125-gcc: fix typos in comments clk: ti: clkctrl: fix typos in comments ...
2 parents ee96dd9 + cf683ab commit 9512433

File tree

259 files changed

+12276
-4331
lines changed

Some content is hidden

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

259 files changed

+12276
-4331
lines changed

Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ This binding uses the common clock binding[1].
8686

8787
Required properties:
8888
- compatible: Should be one of:
89+
"fsl,imx8dxl-clk"
8990
"fsl,imx8qm-clk"
9091
"fsl,imx8qxp-clk"
9192
followed by "fsl,scu-clk"
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/apple,nco.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Apple SoCs' NCO block
8+
9+
maintainers:
10+
- Martin Povišer <povik+lin@cutebit.org>
11+
12+
description: |
13+
The NCO (Numerically Controlled Oscillator) block found on Apple SoCs
14+
such as the t8103 (M1) is a programmable clock generator performing
15+
fractional division of a high frequency input clock.
16+
17+
It carries a number of independent channels and is typically used for
18+
generation of audio bitclocks.
19+
20+
properties:
21+
compatible:
22+
items:
23+
- enum:
24+
- apple,t6000-nco
25+
- apple,t8103-nco
26+
- const: apple,nco
27+
28+
clocks:
29+
description:
30+
Specifies the reference clock from which the output clocks
31+
are derived through fractional division.
32+
maxItems: 1
33+
34+
'#clock-cells':
35+
const: 1
36+
37+
reg:
38+
maxItems: 1
39+
40+
required:
41+
- compatible
42+
- clocks
43+
- '#clock-cells'
44+
- reg
45+
46+
additionalProperties: false
47+
48+
examples:
49+
- |
50+
nco_clkref: clock-ref {
51+
compatible = "fixed-clock";
52+
#clock-cells = <0>;
53+
clock-frequency = <900000000>;
54+
clock-output-names = "nco-ref";
55+
};
56+
57+
nco: clock-controller@23b044000 {
58+
compatible = "apple,t8103-nco", "apple,nco";
59+
reg = <0x3b044000 0x14000>;
60+
#clock-cells = <1>;
61+
clocks = <&nco_clkref>;
62+
};

Documentation/devicetree/bindings/clock/bitmain,bm1880-clk.yaml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,4 @@ examples:
6161
#clock-cells = <1>;
6262
};
6363
64-
# Example UART controller node that consumes clock generated by the clock controller:
65-
- |
66-
uart0: serial@58018000 {
67-
compatible = "snps,dw-apb-uart";
68-
reg = <0x58018000 0x2000>;
69-
clocks = <&clk 45>, <&clk 46>;
70-
clock-names = "baudclk", "apb_pclk";
71-
interrupts = <0 9 4>;
72-
reg-shift = <2>;
73-
reg-io-width = <4>;
74-
};
75-
7664
...
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/cirrus,cs2000-cp.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Binding CIRRUS LOGIC Fractional-N Clock Synthesizer & Clock Multiplier
8+
9+
maintainers:
10+
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
11+
12+
description: |
13+
The CS2000-CP is an extremely versatile system clocking device that
14+
utilizes a programmable phase lock loop.
15+
16+
Link: https://www.cirrus.com/products/cs2000/
17+
18+
properties:
19+
compatible:
20+
enum:
21+
- cirrus,cs2000-cp
22+
23+
clocks:
24+
description:
25+
Common clock binding for CLK_IN, XTI/REF_CLK
26+
minItems: 2
27+
maxItems: 2
28+
29+
clock-names:
30+
items:
31+
- const: clk_in
32+
- const: ref_clk
33+
34+
'#clock-cells':
35+
const: 0
36+
37+
reg:
38+
maxItems: 1
39+
40+
cirrus,aux-output-source:
41+
description:
42+
Specifies the function of the auxiliary clock output pin
43+
$ref: /schemas/types.yaml#/definitions/uint32
44+
enum:
45+
- 0 # CS2000CP_AUX_OUTPUT_REF_CLK: ref_clk input
46+
- 1 # CS2000CP_AUX_OUTPUT_CLK_IN: clk_in input
47+
- 2 # CS2000CP_AUX_OUTPUT_CLK_OUT: clk_out output
48+
- 3 # CS2000CP_AUX_OUTPUT_PLL_LOCK: pll lock status
49+
default: 0
50+
51+
cirrus,clock-skip:
52+
description:
53+
This mode allows the PLL to maintain lock even when CLK_IN
54+
has missing pulses for up to 20 ms.
55+
$ref: /schemas/types.yaml#/definitions/flag
56+
57+
cirrus,dynamic-mode:
58+
description:
59+
In dynamic mode, the CLK_IN input is used to drive the
60+
digital PLL of the silicon.
61+
If not given, the static mode shall be used to derive the
62+
output signal directly from the REF_CLK input.
63+
$ref: /schemas/types.yaml#/definitions/flag
64+
65+
required:
66+
- compatible
67+
- reg
68+
- clocks
69+
- clock-names
70+
- '#clock-cells'
71+
72+
additionalProperties: false
73+
74+
examples:
75+
- |
76+
#include <dt-bindings/clock/cirrus,cs2000-cp.h>
77+
78+
i2c@0 {
79+
reg = <0x0 0x100>;
80+
#address-cells = <1>;
81+
#size-cells = <0>;
82+
83+
clock-controller@4f {
84+
#clock-cells = <0>;
85+
compatible = "cirrus,cs2000-cp";
86+
reg = <0x4f>;
87+
clocks = <&rcar_sound 0>, <&x12_clk>;
88+
clock-names = "clk_in", "ref_clk";
89+
cirrus,aux-output-source = <CS2000CP_AUX_OUTPUT_CLK_OUT>;
90+
};
91+
};

Documentation/devicetree/bindings/clock/cs2000-cp.txt

Lines changed: 0 additions & 22 deletions
This file was deleted.

Documentation/devicetree/bindings/clock/idt,versaclock5.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,4 @@ examples:
191191
};
192192
};
193193
194-
/* Consumer referencing the 5P49V5923 pin OUT1 */
195-
consumer {
196-
/* ... */
197-
clocks = <&vc5 1>;
198-
/* ... */
199-
};
200-
201194
...

Documentation/devicetree/bindings/clock/imx1-clock.yaml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,3 @@ examples:
4040
compatible = "fsl,imx1-ccm";
4141
reg = <0x0021b000 0x1000>;
4242
};
43-
44-
pwm@208000 {
45-
#pwm-cells = <2>;
46-
compatible = "fsl,imx1-pwm";
47-
reg = <0x00208000 0x1000>;
48-
interrupts = <34>;
49-
clocks = <&clks IMX1_CLK_DUMMY>, <&clks IMX1_CLK_PER1>;
50-
clock-names = "ipg", "per";
51-
};

Documentation/devicetree/bindings/clock/imx21-clock.yaml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,3 @@ examples:
4040
reg = <0x10027000 0x800>;
4141
#clock-cells = <1>;
4242
};
43-
44-
serial@1000a000 {
45-
compatible = "fsl,imx21-uart";
46-
reg = <0x1000a000 0x1000>;
47-
interrupts = <20>;
48-
clocks = <&clks IMX21_CLK_UART1_IPG_GATE>,
49-
<&clks IMX21_CLK_PER1>;
50-
clock-names = "ipg", "per";
51-
};

Documentation/devicetree/bindings/clock/imx23-clock.yaml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,3 @@ examples:
8383
reg = <0x80040000 0x2000>;
8484
#clock-cells = <1>;
8585
};
86-
87-
serial@8006c000 {
88-
compatible = "fsl,imx23-auart";
89-
reg = <0x8006c000 0x2000>;
90-
interrupts = <24>;
91-
clocks = <&clks 32>;
92-
dmas = <&dma_apbx 6>, <&dma_apbx 7>;
93-
dma-names = "rx", "tx";
94-
};

Documentation/devicetree/bindings/clock/imx25-clock.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,3 @@ examples:
176176
interrupts = <31>;
177177
#clock-cells = <1>;
178178
};
179-
180-
serial@43f90000 {
181-
compatible = "fsl,imx25-uart", "fsl,imx21-uart";
182-
reg = <0x43f90000 0x4000>;
183-
interrupts = <45>;
184-
clocks = <&clks 79>, <&clks 50>;
185-
clock-names = "ipg", "per";
186-
};

0 commit comments

Comments
 (0)