Skip to content

Commit d915611

Browse files
committed
Merge branches 'clk-qcom', 'clk-versatile', 'clk-renesas', 'clk-sifive' and 'clk-ti' into clk-next
- duty cycle setting support on qcom clks - qcom MDM9607 GCC - qcom sc8180x display clks - qcom SM6125 GCC - Add TI am33xx spread spectrum clock support * clk-qcom: (22 commits) clk: qcom: clk-alpha-pll: fix CAL_L write in alpha_pll_fabia_prepare clk: qcom: Add camera clock controller driver for SM8250 dt-bindings: clock: add QCOM SM8250 camera clock bindings clk: qcom: clk-alpha-pll: add support for zonda pll clk/qcom: Remove unused variables clk: qcom: smd-rpmcc: Add support for MSM8226 rpm clocks clk: qcom: gcc: Add support for Global Clock controller found on MSM8226 dt-bindings: clock: qcom: Add MSM8226 GCC clock bindings clk: qcom: Add SM6125 (TRINKET) GCC driver dt-bindings: clk: qcom: gcc-sm6125: Document SM6125 GCC driver clk: qcom: gcc: Add support for a new frequency for SC7280 clk: qcom: smd-rpm: Fix wrongly assigned RPM_SMD_PNOC_CLK dt-bindings: clock: qcom: rpmcc: Document MSM8226 compatible clk: qcom: dispcc-sm8250: Add EDP clocks clk: qcom: dispcc-sm8250: Add sc8180x support clk: qcom: smd-rpm: De-duplicate identical entries clk: qcom: smd-rpm: Switch to parent_data clk: qcom: Add MDM9607 GCC driver dt-bindings: clock: Add MDM9607 GCC clock bindings clk: qcom: cleanup some dev_err_probe() calls ... * clk-versatile: clk: versatile: Depend on HAS_IOMEM clk: versatile: remove dependency on ARCH_* * clk-renesas: (22 commits) clk: renesas: Add support for R9A07G044 SoC clk: renesas: Add CPG core wrapper for RZ/G2L SoC dt-bindings: clock: renesas: Document RZ/G2L SoC CPG driver dt-bindings: clock: Add r9a07g044 CPG Clock Definitions clk: renesas: r8a77995: Add ZA2 clock clk: renesas: cpg-mssr: Make srstclr[] comment block consistent clk: renesas: cpg-mssr: Remove unused [RM]MSTPCR() definitions clk: renesas: r9a06g032: Switch to .determine_rate() clk: renesas: div6: Implement range checking clk: renesas: div6: Consider all parents for requested rate clk: renesas: div6: Switch to .determine_rate() clk: renesas: div6: Simplify src mask handling clk: renesas: div6: Use clamp() instead of clamp_t() clk: renesas: rcar-usb2-clock-sel: Fix error handling in .probe() clk: renesas: r8a779a0: Add ISPCS clocks clk: renesas: rcar-gen3: Add boost support to Z clocks clk: renesas: rcar-gen3: Add custom clock for PLLs clk: renesas: rcar-gen3: Increase Z clock accuracy clk: renesas: rcar-gen3: Grammar s/dependent of/dependent on/ clk: renesas: rcar-gen3: Remove superfluous masking in cpg_z_clk_set_rate() ... * clk-sifive: clk: analogbits: fix doc warning in wrpll-cln28hpc.c clk: sifive: Fix kernel-doc * clk-ti: drivers: ti: remove redundant error message in adpll.c clk: keystone: syscon-clk: Add support for AM64 specific epwm-tbclk dt-bindings: clock: ehrpwm: Add support for AM64 specific compatible clk: ti: add am33xx/am43xx spread spectrum clock support ARM: dts: am43xx-clocks: add spread spectrum support ARM: dts: am33xx-clocks: add spread spectrum support dt-bindings: ti: dpll: add spread spectrum support clk: ti: fix typo in routine description
5 parents 7f54bf2 + 51c8b49 + 7f8a37a + 06abc75 + 9ba98c0 commit d915611

26 files changed

+1642
-104
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/clock/renesas,rzg2l-cpg.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Renesas RZ/G2L Clock Pulse Generator / Module Standby Mode
8+
9+
maintainers:
10+
- Geert Uytterhoeven <[email protected]>
11+
12+
description: |
13+
On Renesas RZ/G2L SoC, the CPG (Clock Pulse Generator) and Module
14+
Standby Mode share the same register block.
15+
16+
They provide the following functionalities:
17+
- The CPG block generates various core clocks,
18+
- The Module Standby Mode block provides two functions:
19+
1. Module Standby, providing a Clock Domain to control the clock supply
20+
to individual SoC devices,
21+
2. Reset Control, to perform a software reset of individual SoC devices.
22+
23+
properties:
24+
compatible:
25+
const: renesas,r9a07g044-cpg # RZ/G2{L,LC}
26+
27+
reg:
28+
maxItems: 1
29+
30+
clocks:
31+
maxItems: 1
32+
33+
clock-names:
34+
description:
35+
Clock source to CPG can be either from external clock input (EXCLK) or
36+
crystal oscillator (XIN/XOUT).
37+
const: extal
38+
39+
'#clock-cells':
40+
description: |
41+
- For CPG core clocks, the two clock specifier cells must be "CPG_CORE"
42+
and a core clock reference, as defined in
43+
<dt-bindings/clock/r9a07g044-cpg.h>
44+
- For module clocks, the two clock specifier cells must be "CPG_MOD" and
45+
a module number, as defined in the <dt-bindings/clock/r9a07g044-cpg.h>.
46+
const: 2
47+
48+
'#power-domain-cells':
49+
description:
50+
SoC devices that are part of the CPG/Module Standby Mode Clock Domain and
51+
can be power-managed through Module Standby should refer to the CPG device
52+
node in their "power-domains" property, as documented by the generic PM
53+
Domain bindings in Documentation/devicetree/bindings/power/power-domain.yaml.
54+
const: 0
55+
56+
'#reset-cells':
57+
description:
58+
The single reset specifier cell must be the module number, as defined in
59+
the <dt-bindings/clock/r9a07g044-cpg.h>.
60+
const: 1
61+
62+
required:
63+
- compatible
64+
- reg
65+
- clocks
66+
- clock-names
67+
- '#clock-cells'
68+
- '#power-domain-cells'
69+
- '#reset-cells'
70+
71+
additionalProperties: false
72+
73+
examples:
74+
- |
75+
cpg: clock-controller@11010000 {
76+
compatible = "renesas,r9a07g044-cpg";
77+
reg = <0x11010000 0x10000>;
78+
clocks = <&extal_clk>;
79+
clock-names = "extal";
80+
#clock-cells = <2>;
81+
#power-domain-cells = <0>;
82+
#reset-cells = <1>;
83+
};

Documentation/devicetree/bindings/clock/ti,am654-ehrpwm-tbclk.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ maintainers:
1212
properties:
1313
compatible:
1414
items:
15-
- const: ti,am654-ehrpwm-tbclk
15+
- enum:
16+
- ti,am654-ehrpwm-tbclk
17+
- ti,am64-epwm-tbclk
1618
- const: syscon
1719

1820
"#clock-cells":

Documentation/devicetree/bindings/clock/ti/dpll.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ Required properties:
4242
"idlest" - contains the idle status register base address
4343
"mult-div1" - contains the multiplier / divider register base address
4444
"autoidle" - contains the autoidle register base address (optional)
45+
"ssc-deltam" - DPLL supports spread spectrum clocking (SSC), contains
46+
the frequency spreading register base address (optional)
47+
"ssc-modfreq" - DPLL supports spread spectrum clocking (SSC), contains
48+
the modulation frequency register base address
49+
(optional)
4550
ti,am3-* dpll types do not have autoidle register
4651
ti,omap2-* dpll type does not support idlest / autoidle registers
4752

@@ -51,6 +56,14 @@ Optional properties:
5156
- ti,low-power-stop : DPLL supports low power stop mode, gating output
5257
- ti,low-power-bypass : DPLL output matches rate of parent bypass clock
5358
- ti,lock : DPLL locks in programmed rate
59+
- ti,min-div : the minimum divisor to start from to round the DPLL
60+
target rate
61+
- ti,ssc-deltam : DPLL supports spread spectrum clocking, frequency
62+
spreading in permille (10th of a percent)
63+
- ti,ssc-modfreq-hz : DPLL supports spread spectrum clocking, spread
64+
spectrum modulation frequency
65+
- ti,ssc-downspread : DPLL supports spread spectrum clocking, boolean
66+
to enable the downspread feature
5467

5568
Examples:
5669
dpll_core_ck: dpll_core_ck@44e00490 {
@@ -83,3 +96,10 @@ Examples:
8396
clocks = <&sys_ck>, <&sys_ck>;
8497
reg = <0x0500>, <0x0540>;
8598
};
99+
100+
dpll_disp_ck: dpll_disp_ck {
101+
#clock-cells = <0>;
102+
compatible = "ti,am3-dpll-no-gate-clock";
103+
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
104+
reg = <0x0498>, <0x0448>, <0x0454>, <0x044c>, <0x0450>;
105+
};

arch/arm/boot/dts/am33xx-clocks.dtsi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@
164164
#clock-cells = <0>;
165165
compatible = "ti,am3-dpll-core-clock";
166166
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
167-
reg = <0x0490>, <0x045c>, <0x0468>;
167+
reg = <0x0490>, <0x045c>, <0x0468>, <0x0460>, <0x0464>;
168168
};
169169

170170
dpll_core_x2_ck: dpll_core_x2_ck {
@@ -204,7 +204,7 @@
204204
#clock-cells = <0>;
205205
compatible = "ti,am3-dpll-clock";
206206
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
207-
reg = <0x0488>, <0x0420>, <0x042c>;
207+
reg = <0x0488>, <0x0420>, <0x042c>, <0x0424>, <0x0428>;
208208
};
209209

210210
dpll_mpu_m2_ck: dpll_mpu_m2_ck@4a8 {
@@ -220,7 +220,7 @@
220220
#clock-cells = <0>;
221221
compatible = "ti,am3-dpll-no-gate-clock";
222222
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
223-
reg = <0x0494>, <0x0434>, <0x0440>;
223+
reg = <0x0494>, <0x0434>, <0x0440>, <0x0438>, <0x043c>;
224224
};
225225

226226
dpll_ddr_m2_ck: dpll_ddr_m2_ck@4a0 {
@@ -244,7 +244,7 @@
244244
#clock-cells = <0>;
245245
compatible = "ti,am3-dpll-no-gate-clock";
246246
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
247-
reg = <0x0498>, <0x0448>, <0x0454>;
247+
reg = <0x0498>, <0x0448>, <0x0454>, <0x044c>, <0x0450>;
248248
};
249249

250250
dpll_disp_m2_ck: dpll_disp_m2_ck@4a4 {
@@ -261,7 +261,7 @@
261261
#clock-cells = <0>;
262262
compatible = "ti,am3-dpll-no-gate-j-type-clock";
263263
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
264-
reg = <0x048c>, <0x0470>, <0x049c>;
264+
reg = <0x048c>, <0x0470>, <0x049c>, <0x0474>, <0x0478>;
265265
};
266266

267267
dpll_per_m2_ck: dpll_per_m2_ck@4ac {

arch/arm/boot/dts/am43xx-clocks.dtsi

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204
#clock-cells = <0>;
205205
compatible = "ti,am3-dpll-core-clock";
206206
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
207-
reg = <0x2d20>, <0x2d24>, <0x2d2c>;
207+
reg = <0x2d20>, <0x2d24>, <0x2d2c>, <0x2d48>, <0x2d4c>;
208208
};
209209

210210
dpll_core_x2_ck: dpll_core_x2_ck {
@@ -250,7 +250,7 @@
250250
#clock-cells = <0>;
251251
compatible = "ti,am3-dpll-clock";
252252
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
253-
reg = <0x2d60>, <0x2d64>, <0x2d6c>;
253+
reg = <0x2d60>, <0x2d64>, <0x2d6c>, <0x2d88>, <0x2d8c>;
254254
};
255255

256256
dpll_mpu_m2_ck: dpll_mpu_m2_ck@2d70 {
@@ -276,7 +276,7 @@
276276
#clock-cells = <0>;
277277
compatible = "ti,am3-dpll-clock";
278278
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
279-
reg = <0x2da0>, <0x2da4>, <0x2dac>;
279+
reg = <0x2da0>, <0x2da4>, <0x2dac>, <0x2dc8>, <0x2dcc>;
280280
};
281281

282282
dpll_ddr_m2_ck: dpll_ddr_m2_ck@2db0 {
@@ -294,7 +294,7 @@
294294
#clock-cells = <0>;
295295
compatible = "ti,am3-dpll-clock";
296296
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
297-
reg = <0x2e20>, <0x2e24>, <0x2e2c>;
297+
reg = <0x2e20>, <0x2e24>, <0x2e2c>, <0x2e48>, <0x2e4c>;
298298
};
299299

300300
dpll_disp_m2_ck: dpll_disp_m2_ck@2e30 {
@@ -313,7 +313,7 @@
313313
#clock-cells = <0>;
314314
compatible = "ti,am3-dpll-j-type-clock";
315315
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
316-
reg = <0x2de0>, <0x2de4>, <0x2dec>;
316+
reg = <0x2de0>, <0x2de4>, <0x2dec>, <0x2e08>, <0x2e0c>;
317317
};
318318

319319
dpll_per_m2_ck: dpll_per_m2_ck@2df0 {
@@ -557,7 +557,7 @@
557557
#clock-cells = <0>;
558558
compatible = "ti,am3-dpll-clock";
559559
clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
560-
reg = <0x2e60>, <0x2e64>, <0x2e6c>;
560+
reg = <0x2e60>, <0x2e64>, <0x2e6c>, <0x2e88>, <0x2e8c>;
561561
};
562562

563563
dpll_extdev_m2_ck: dpll_extdev_m2_ck@2e70 {

drivers/clk/analogbits/wrpll-cln28hpc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ static int __wrpll_update_parent_rate(struct wrpll_cfg *c,
198198
}
199199

200200
/**
201-
* wrpll_configure() - compute PLL configuration for a target rate
201+
* wrpll_configure_for_rate() - compute PLL configuration for a target rate
202202
* @c: ptr to a struct wrpll_cfg record to write into
203203
* @target_rate: target PLL output clock rate (post-Q-divider)
204204
* @parent_rate: PLL input refclk rate (pre-R-divider)

drivers/clk/keystone/syscon-clk.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,28 @@ static const struct ti_syscon_gate_clk_data am654_clk_data[] = {
149149
{ /* Sentinel */ },
150150
};
151151

152+
static const struct ti_syscon_gate_clk_data am64_clk_data[] = {
153+
TI_SYSCON_CLK_GATE("epwm_tbclk0", 0x0, 0),
154+
TI_SYSCON_CLK_GATE("epwm_tbclk1", 0x0, 1),
155+
TI_SYSCON_CLK_GATE("epwm_tbclk2", 0x0, 2),
156+
TI_SYSCON_CLK_GATE("epwm_tbclk3", 0x0, 3),
157+
TI_SYSCON_CLK_GATE("epwm_tbclk4", 0x0, 4),
158+
TI_SYSCON_CLK_GATE("epwm_tbclk5", 0x0, 5),
159+
TI_SYSCON_CLK_GATE("epwm_tbclk6", 0x0, 6),
160+
TI_SYSCON_CLK_GATE("epwm_tbclk7", 0x0, 7),
161+
TI_SYSCON_CLK_GATE("epwm_tbclk8", 0x0, 8),
162+
{ /* Sentinel */ },
163+
};
164+
152165
static const struct of_device_id ti_syscon_gate_clk_ids[] = {
153166
{
154167
.compatible = "ti,am654-ehrpwm-tbclk",
155168
.data = &am654_clk_data,
156169
},
170+
{
171+
.compatible = "ti,am64-epwm-tbclk",
172+
.data = &am64_clk_data,
173+
},
157174
{ }
158175
};
159176
MODULE_DEVICE_TABLE(of, ti_syscon_gate_clk_ids);

drivers/clk/renesas/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ config CLK_RENESAS
3232
select CLK_R8A77995 if ARCH_R8A77995
3333
select CLK_R8A779A0 if ARCH_R8A779A0
3434
select CLK_R9A06G032 if ARCH_R9A06G032
35+
select CLK_R9A07G044 if ARCH_R9A07G044
3536
select CLK_SH73A0 if ARCH_SH73A0
3637

3738
if CLK_RENESAS
@@ -156,6 +157,10 @@ config CLK_R9A06G032
156157
help
157158
This is a driver for R9A06G032 clocks
158159

160+
config CLK_R9A07G044
161+
bool "RZ/G2L clock support" if COMPILE_TEST
162+
select CLK_RZG2L
163+
159164
config CLK_SH73A0
160165
bool "SH-Mobile AG5 clock support" if COMPILE_TEST
161166
select CLK_RENESAS_CPG_MSTP
@@ -182,6 +187,10 @@ config CLK_RCAR_USB2_CLOCK_SEL
182187
help
183188
This is a driver for R-Car USB2 clock selector
184189

190+
config CLK_RZG2L
191+
bool "Renesas RZ/G2L family clock support" if COMPILE_TEST
192+
select RESET_CONTROLLER
193+
185194
# Generic
186195
config CLK_RENESAS_CPG_MSSR
187196
bool "CPG/MSSR clock support" if COMPILE_TEST

drivers/clk/renesas/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@ obj-$(CONFIG_CLK_R8A77990) += r8a77990-cpg-mssr.o
2929
obj-$(CONFIG_CLK_R8A77995) += r8a77995-cpg-mssr.o
3030
obj-$(CONFIG_CLK_R8A779A0) += r8a779a0-cpg-mssr.o
3131
obj-$(CONFIG_CLK_R9A06G032) += r9a06g032-clocks.o
32+
obj-$(CONFIG_CLK_R9A07G044) += r9a07g044-cpg.o
3233
obj-$(CONFIG_CLK_SH73A0) += clk-sh73a0.o
3334

3435
# Family
3536
obj-$(CONFIG_CLK_RCAR_CPG_LIB) += rcar-cpg-lib.o
3637
obj-$(CONFIG_CLK_RCAR_GEN2_CPG) += rcar-gen2-cpg.o
3738
obj-$(CONFIG_CLK_RCAR_GEN3_CPG) += rcar-gen3-cpg.o
3839
obj-$(CONFIG_CLK_RCAR_USB2_CLOCK_SEL) += rcar-usb2-clock-sel.o
40+
obj-$(CONFIG_CLK_RZG2L) += renesas-rzg2l-cpg.o
3941

4042
# Generic
4143
obj-$(CONFIG_CLK_RENESAS_CPG_MSSR) += renesas-cpg-mssr.o

0 commit comments

Comments
 (0)