Skip to content

Commit 3476195

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 not much to see in the core framework this time around. Instead the majority of the diff is the normal collection of driver additions for new SoCs and non-critical clk data fixes and updates. The framework must be middle aged. The two biggest directories in the diffstat show that the Qualcomm and Unisoc support added a handful of big drivers for new SoCs but that's not really the whole story because those new drivers tend to add large numbers of lines of clk data. There's a handful of AT91 clk drivers added this time around too and a bunch of improvements to drivers like the i.MX driver. All around lots of updates and fixes in various clk drivers which is good to see. The core framework has only one real major change which has been baking in next for the past couple months. It fixes the framework so that it stops caching a clk's phase when the phase clk_op returns an error. Before this change we would consider some negative errno as a phase and that just doesn't make sense. Core: - Don't show clk phase when it is invalid New Drivers: - Add support for Unisoc SC9863A clks - Qualcomm SM8250 RPMh and MSM8976 RPM clks - Qualcomm SM8250 Global Clock Controller (GCC) support - Qualcomm SC7180 Modem Clock Controller (MSS CC) support - EHRPWM's TimeBase clock(TBCLK) for TI AM654 SoCs - Support PMC clks on at91sam9n12, at91rm9200, sama5d3, and at91sam9g45 SoCs Updates: - GPU GX GDSC support on Qualcomm sc7180 - Fixes and improvements for the Marvell MMP2/MMP3 SoC clk drivers - A series from Anson to convert i.MX8 clock bindings to json-schema - Update i.MX pll14xx driver to include new frequency entries for pll1443x table, and return error for invalid PLL type - Add missing of_node_put() call for a number of i.MX clock drivers - Drop flag CLK_IS_CRITICAL from 'A53_CORE' mux clock, as we already have the flag on its child cpu clock - Fix a53 cpu clock for i.MX8 drivers to get it source from ARM PLL via CORE_SEL slice, and source from A53 CCM clk root when we need to change ARM PLL frequency. Thus, we can support core running above 1GHz safely - Update i.MX pfdv2 driver to check zero rate and use determine_rate for getting the best rate - Add CLKO2 for imx8mm, SNVS clock for imx8mn, and PXP clock for imx7d - Remove PMC clks from Tegra clk driver - Improved clock/reset handling for the Renesas R-Car USB2 Clock Selector - Conversion to json-schema of the Renesas CPG/MSSR DT bindings - Add Crypto clocks on Renesas R-Car M3-W/W+, M3-N, E3, and D3 - Add RPC (QSPI/HyperFLASH) clocks on Renesas R-Car H3, M3-W/W+, and M3-N - Update Amlogic audio clock gate hierarchy for meson8 and gxbb - Update Amlogic g12a spicc clock sources - Support for Ingenic X1000 TCU clks" * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (146 commits) clk: sprd: fix to get a correct ibias of pll dt-bindings: imx8mm-clock: Fix the file path dt-bindings: imx8mq-clock: Fix the file path clk: qcom: rpmh: Drop unnecessary semicolons clk: qcom: rpmh: Simplify clk_rpmh_bcm_send_cmd() clk: tegra: Use NULL for pointer initialization clk: sprd: add clocks support for SC9863A clk: sprd: support to get regmap from parent node clk: sprd: Add macros for referencing parents without strings clk: sprd: Add dt-bindings include file for SC9863A dt-bindings: clk: sprd: add bindings for sc9863a clock controller dt-bindings: clk: sprd: rename the common file name sprd.txt to SoC specific clk: sprd: add gate for pll clocks MAINTAINERS: dt: update reference for arm-integrator.txt clk: mmp2: Fix bit masks for LCDC I/O and pixel clocks clk: mmp2: Add clock for fifth SD HCI on MMP3 dt-bindings: marvell,mmp2: Add clock id for the fifth SD HCI on MMP3 clk: mmp2: Add clocks for the thermal sensors dt-bindings: marvell,mmp2: Add clock ids for the thermal sensors clk: mmp2: add the GPU clocks ...
2 parents aa1a8ce + 28ecaf1 commit 3476195

File tree

131 files changed

+10333
-1131
lines changed

Some content is hidden

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

131 files changed

+10333
-1131
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/arm,syscon-icst.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: ARM System Controller ICST Clocks
8+
9+
maintainers:
10+
- Linus Walleij <[email protected]>
11+
12+
description: |
13+
The ICS525 and ICS307 oscillators are produced by Integrated
14+
Devices Technology (IDT). ARM integrated these oscillators deeply into their
15+
reference designs by adding special control registers that manage such
16+
oscillators to their system controllers.
17+
18+
The various ARM system controllers contain logic to serialize and initialize
19+
an ICST clock request after a write to the 32 bit register at an offset
20+
into the system controller. Furthermore, to even be able to alter one of
21+
these frequencies, the system controller must first be unlocked by
22+
writing a special token to another offset in the system controller.
23+
24+
Some ARM hardware contain special versions of the serial interface that only
25+
connects the low 8 bits of the VDW (missing one bit), hard-wires RDW to
26+
different values and sometimes also hard-wires the output divider. They
27+
therefore have special compatible strings as per this table (the OD value is
28+
the value on the pins, not the resulting output divider).
29+
30+
In the core modules and logic tiles, the ICST is a configurable clock fed
31+
from a 24 MHz clock on the motherboard (usually the main crystal) used for
32+
generating e.g. video clocks. It is located on the core module and there is
33+
only one of these. This clock node must be a subnode of the core module.
34+
35+
Hardware variant RDW OD VDW
36+
37+
Integrator/AP 22 1 Bit 8 0, rest variable
38+
integratorap-cm
39+
40+
Integrator/AP 46 3 Bit 8 0, rest variable
41+
integratorap-sys
42+
43+
Integrator/AP 22 or 1 17 or (33 or 25 MHz)
44+
integratorap-pci 14 1 14
45+
46+
Integrator/CP 22 variable Bit 8 0, rest variable
47+
integratorcp-cm-core
48+
49+
Integrator/CP 22 variable Bit 8 0, rest variable
50+
integratorcp-cm-mem
51+
52+
The ICST oscillator must be provided inside a system controller node.
53+
54+
properties:
55+
"#clock-cells":
56+
const: 0
57+
58+
compatible:
59+
enum:
60+
- arm,syscon-icst525
61+
- arm,syscon-icst307
62+
- arm,syscon-icst525-integratorap-cm
63+
- arm,syscon-icst525-integratorap-sys
64+
- arm,syscon-icst525-integratorap-pci
65+
- arm,syscon-icst525-integratorcp-cm-core
66+
- arm,syscon-icst525-integratorcp-cm-mem
67+
- arm,integrator-cm-auxosc
68+
- arm,versatile-cm-auxosc
69+
- arm,impd-vco1
70+
- arm,impd-vco2
71+
72+
clocks:
73+
description: Parent clock for the ICST VCO
74+
maxItems: 1
75+
76+
clock-output-names:
77+
maxItems: 1
78+
79+
lock-offset:
80+
$ref: '/schemas/types.yaml#/definitions/uint32'
81+
description: Offset to the unlocking register for the oscillator
82+
83+
vco-offset:
84+
$ref: '/schemas/types.yaml#/definitions/uint32'
85+
description: Offset to the VCO register for the oscillator
86+
87+
required:
88+
- "#clock-cells"
89+
- compatible
90+
- clocks
91+
92+
examples:
93+
- |
94+
vco1: clock@00 {
95+
compatible = "arm,impd1-vco1";
96+
#clock-cells = <0>;
97+
lock-offset = <0x08>;
98+
vco-offset = <0x00>;
99+
clocks = <&sysclk>;
100+
clock-output-names = "IM-PD1-VCO1";
101+
};
102+
103+
...

Documentation/devicetree/bindings/clock/arm-integrator.txt

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

Documentation/devicetree/bindings/clock/arm-syscon-icst.txt

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

Documentation/devicetree/bindings/clock/imx8mm-clock.txt

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/imx8mm-clock.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NXP i.MX8M Mini Clock Control Module Binding
8+
9+
maintainers:
10+
- Anson Huang <[email protected]>
11+
12+
description: |
13+
NXP i.MX8M Mini clock control module is an integrated clock controller, which
14+
generates and supplies to all modules.
15+
16+
properties:
17+
compatible:
18+
const: fsl,imx8mm-ccm
19+
20+
reg:
21+
maxItems: 1
22+
23+
clocks:
24+
items:
25+
- description: 32k osc
26+
- description: 24m osc
27+
- description: ext1 clock input
28+
- description: ext2 clock input
29+
- description: ext3 clock input
30+
- description: ext4 clock input
31+
32+
clock-names:
33+
items:
34+
- const: osc_32k
35+
- const: osc_24m
36+
- const: clk_ext1
37+
- const: clk_ext2
38+
- const: clk_ext3
39+
- const: clk_ext4
40+
41+
'#clock-cells':
42+
const: 1
43+
description:
44+
The clock consumer should specify the desired clock by having the clock
45+
ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mm-clock.h
46+
for the full list of i.MX8M Mini clock IDs.
47+
48+
required:
49+
- compatible
50+
- reg
51+
- clocks
52+
- clock-names
53+
- '#clock-cells'
54+
55+
examples:
56+
# Clock Control Module node:
57+
- |
58+
clk: clock-controller@30380000 {
59+
compatible = "fsl,imx8mm-ccm";
60+
reg = <0x30380000 0x10000>;
61+
#clock-cells = <1>;
62+
clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
63+
<&clk_ext3>, <&clk_ext4>;
64+
clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
65+
"clk_ext3", "clk_ext4";
66+
};
67+
68+
...

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

Lines changed: 2 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ properties:
4040

4141
'#clock-cells':
4242
const: 1
43-
description: |
43+
description:
4444
The clock consumer should specify the desired clock by having the clock
4545
ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mn-clock.h
4646
for the full list of i.MX8M Nano clock IDs.
@@ -59,56 +59,12 @@ examples:
5959
- |
6060
clk: clock-controller@30380000 {
6161
compatible = "fsl,imx8mn-ccm";
62-
reg = <0x0 0x30380000 0x0 0x10000>;
62+
reg = <0x30380000 0x10000>;
6363
#clock-cells = <1>;
6464
clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>,
6565
<&clk_ext2>, <&clk_ext3>, <&clk_ext4>;
6666
clock-names = "osc_32k", "osc_24m", "clk_ext1",
6767
"clk_ext2", "clk_ext3", "clk_ext4";
6868
};
6969
70-
# Required external clocks for Clock Control Module node:
71-
- |
72-
osc_32k: clock-osc-32k {
73-
compatible = "fixed-clock";
74-
#clock-cells = <0>;
75-
clock-frequency = <32768>;
76-
clock-output-names = "osc_32k";
77-
};
78-
79-
osc_24m: clock-osc-24m {
80-
compatible = "fixed-clock";
81-
#clock-cells = <0>;
82-
clock-frequency = <24000000>;
83-
clock-output-names = "osc_24m";
84-
};
85-
86-
clk_ext1: clock-ext1 {
87-
compatible = "fixed-clock";
88-
#clock-cells = <0>;
89-
clock-frequency = <133000000>;
90-
clock-output-names = "clk_ext1";
91-
};
92-
93-
clk_ext2: clock-ext2 {
94-
compatible = "fixed-clock";
95-
#clock-cells = <0>;
96-
clock-frequency = <133000000>;
97-
clock-output-names = "clk_ext2";
98-
};
99-
100-
clk_ext3: clock-ext3 {
101-
compatible = "fixed-clock";
102-
#clock-cells = <0>;
103-
clock-frequency = <133000000>;
104-
clock-output-names = "clk_ext3";
105-
};
106-
107-
clk_ext4: clock-ext4 {
108-
compatible = "fixed-clock";
109-
#clock-cells = <0>;
110-
clock-frequency= <133000000>;
111-
clock-output-names = "clk_ext4";
112-
};
113-
11470
...

Documentation/devicetree/bindings/clock/imx8mq-clock.txt

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

0 commit comments

Comments
 (0)