Skip to content

Commit d75c26a

Browse files
committed
Merge branches 'clk-rockchip', 'clk-ingenic', 'clk-bindings', 'clk-samsung' and 'clk-stm' into clk-next
- Mark some clks critical on Ingenic X1000 - Add STM32MP13 RCC driver (Reset Clock Controller) * clk-rockchip: dt-bindings: clock: convert rockchip,rk3368-cru.txt to YAML dt-bindings: clock: convert rockchip,rk3228-cru.txt to YAML dt-bindings: clock: convert rockchip,rk3036-cru.txt to YAML dt-bindings: clock: convert rockchip,rk3308-cru.txt to YAML dt-bindings: clock: convert rockchip,px30-cru.txt to YAML dt-bindings: clock: convert rockchip,rk3188-cru.txt to YAML dt-bindings: clock: convert rockchip,rk3288-cru.txt to YAML dt-bindings: clock: convert rockchip,rv1108-cru.txt to YAML dt-binding: clock: Add missing rk3568 cru bindings clk: rockchip: Mark hclk_vo as critical on rk3568 dt-bindings: clock: fix rk3399 cru clock issues dt-bindings: clock: use generic node name for pmucru example in rockchip,rk3399-cru.yaml dt-bindings: clock: replace a maintainer for rockchip,rk3399-cru.yaml dt-bindings: clock: fix some conversion style issues for rockchip,rk3399-cru.yaml * clk-ingenic: clk: ingenic-tcu: Fix missing TCU clock for X1000 SoCs mips: ingenic: Do not manually reference the CPU clock clk: ingenic: Mark critical clocks in Ingenic SoCs clk: ingenic: Allow specifying common clock flags * clk-bindings: dt-bindings: clock: Replace common binding with link to schema * clk-samsung: dt-bindings: clock: exynosautov9: correct count of NR_CLK clk: samsung: exynosautov9: add cmu_peric1 clock support clk: samsung: exynosautov9: add cmu_peric0 clock support clk: samsung: exynosautov9: add cmu_fsys2 clock support clk: samsung: exynosautov9: add cmu_busmc clock support clk: samsung: exynosautov9: add cmu_peris clock support clk: samsung: exynosautov9: add cmu_core clock support clk: samsung: add top clock support for Exynos Auto v9 SoC dt-bindings: clock: add Exynos Auto v9 SoC CMU bindings dt-bindings: clock: add clock binding definitions for Exynos Auto v9 * clk-stm: clk: stm32mp13: add safe mux management clk: stm32mp13: add multi mux function clk: stm32mp13: add all STM32MP13 kernel clocks clk: stm32mp13: add all STM32MP13 peripheral clocks clk: stm32mp13: manage secured clocks clk: stm32mp13: add composite clock clk: stm32mp13: add stm32 divider clock clk: stm32mp13: add stm32_gate management clk: stm32mp13: add stm32_mux clock management clk: stm32: Introduce STM32MP13 RCC drivers (Reset Clock Controller) dt-bindings: rcc: stm32: add new compatible for STM32MP13 SoC
6 parents d3d8871 + 7337342 + e98839f + f538ce1 + 538101d + 83ce035 commit d75c26a

47 files changed

Lines changed: 7761 additions & 736 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -1,186 +1,2 @@
1-
This binding is a work-in-progress, and are based on some experimental
2-
work by benh[1].
3-
4-
Sources of clock signal can be represented by any node in the device
5-
tree. Those nodes are designated as clock providers. Clock consumer
6-
nodes use a phandle and clock specifier pair to connect clock provider
7-
outputs to clock inputs. Similar to the gpio specifiers, a clock
8-
specifier is an array of zero, one or more cells identifying the clock
9-
output on a device. The length of a clock specifier is defined by the
10-
value of a #clock-cells property in the clock provider node.
11-
12-
[1] https://patchwork.ozlabs.org/patch/31551/
13-
14-
==Clock providers==
15-
16-
Required properties:
17-
#clock-cells: Number of cells in a clock specifier; Typically 0 for nodes
18-
with a single clock output and 1 for nodes with multiple
19-
clock outputs.
20-
21-
Optional properties:
22-
clock-output-names: Recommended to be a list of strings of clock output signal
23-
names indexed by the first cell in the clock specifier.
24-
However, the meaning of clock-output-names is domain
25-
specific to the clock provider, and is only provided to
26-
encourage using the same meaning for the majority of clock
27-
providers. This format may not work for clock providers
28-
using a complex clock specifier format. In those cases it
29-
is recommended to omit this property and create a binding
30-
specific names property.
31-
32-
Clock consumer nodes must never directly reference
33-
the provider's clock-output-names property.
34-
35-
For example:
36-
37-
oscillator {
38-
#clock-cells = <1>;
39-
clock-output-names = "ckil", "ckih";
40-
};
41-
42-
- this node defines a device with two clock outputs, the first named
43-
"ckil" and the second named "ckih". Consumer nodes always reference
44-
clocks by index. The names should reflect the clock output signal
45-
names for the device.
46-
47-
clock-indices: If the identifying number for the clocks in the node
48-
is not linear from zero, then this allows the mapping of
49-
identifiers into the clock-output-names array.
50-
51-
For example, if we have two clocks <&oscillator 1> and <&oscillator 3>:
52-
53-
oscillator {
54-
compatible = "myclocktype";
55-
#clock-cells = <1>;
56-
clock-indices = <1>, <3>;
57-
clock-output-names = "clka", "clkb";
58-
}
59-
60-
This ensures we do not have any empty strings in clock-output-names
61-
62-
63-
==Clock consumers==
64-
65-
Required properties:
66-
clocks: List of phandle and clock specifier pairs, one pair
67-
for each clock input to the device. Note: if the
68-
clock provider specifies '0' for #clock-cells, then
69-
only the phandle portion of the pair will appear.
70-
71-
Optional properties:
72-
clock-names: List of clock input name strings sorted in the same
73-
order as the clocks property. Consumers drivers
74-
will use clock-names to match clock input names
75-
with clocks specifiers.
76-
clock-ranges: Empty property indicating that child nodes can inherit named
77-
clocks from this node. Useful for bus nodes to provide a
78-
clock to their children.
79-
80-
For example:
81-
82-
device {
83-
clocks = <&osc 1>, <&ref 0>;
84-
clock-names = "baud", "register";
85-
};
86-
87-
88-
This represents a device with two clock inputs, named "baud" and "register".
89-
The baud clock is connected to output 1 of the &osc device, and the register
90-
clock is connected to output 0 of the &ref.
91-
92-
==Example==
93-
94-
/* external oscillator */
95-
osc: oscillator {
96-
compatible = "fixed-clock";
97-
#clock-cells = <0>;
98-
clock-frequency = <32678>;
99-
clock-output-names = "osc";
100-
};
101-
102-
/* phase-locked-loop device, generates a higher frequency clock
103-
* from the external oscillator reference */
104-
pll: pll@4c000 {
105-
compatible = "vendor,some-pll-interface"
106-
#clock-cells = <1>;
107-
clocks = <&osc 0>;
108-
clock-names = "ref";
109-
reg = <0x4c000 0x1000>;
110-
clock-output-names = "pll", "pll-switched";
111-
};
112-
113-
/* UART, using the low frequency oscillator for the baud clock,
114-
* and the high frequency switched PLL output for register
115-
* clocking */
116-
uart@a000 {
117-
compatible = "fsl,imx-uart";
118-
reg = <0xa000 0x1000>;
119-
interrupts = <33>;
120-
clocks = <&osc 0>, <&pll 1>;
121-
clock-names = "baud", "register";
122-
};
123-
124-
This DT fragment defines three devices: an external oscillator to provide a
125-
low-frequency reference clock, a PLL device to generate a higher frequency
126-
clock signal, and a UART.
127-
128-
* The oscillator is fixed-frequency, and provides one clock output, named "osc".
129-
* The PLL is both a clock provider and a clock consumer. It uses the clock
130-
signal generated by the external oscillator, and provides two output signals
131-
("pll" and "pll-switched").
132-
* The UART has its baud clock connected the external oscillator and its
133-
register clock connected to the PLL clock (the "pll-switched" signal)
134-
135-
==Assigned clock parents and rates==
136-
137-
Some platforms may require initial configuration of default parent clocks
138-
and clock frequencies. Such a configuration can be specified in a device tree
139-
node through assigned-clocks, assigned-clock-parents and assigned-clock-rates
140-
properties. The assigned-clock-parents property should contain a list of parent
141-
clocks in the form of a phandle and clock specifier pair and the
142-
assigned-clock-rates property should contain a list of frequencies in Hz. Both
143-
these properties should correspond to the clocks listed in the assigned-clocks
144-
property.
145-
146-
To skip setting parent or rate of a clock its corresponding entry should be
147-
set to 0, or can be omitted if it is not followed by any non-zero entry.
148-
149-
uart@a000 {
150-
compatible = "fsl,imx-uart";
151-
reg = <0xa000 0x1000>;
152-
...
153-
clocks = <&osc 0>, <&pll 1>;
154-
clock-names = "baud", "register";
155-
156-
assigned-clocks = <&clkcon 0>, <&pll 2>;
157-
assigned-clock-parents = <&pll 2>;
158-
assigned-clock-rates = <0>, <460800>;
159-
};
160-
161-
In this example the <&pll 2> clock is set as parent of clock <&clkcon 0> and
162-
the <&pll 2> clock is assigned a frequency value of 460800 Hz.
163-
164-
Configuring a clock's parent and rate through the device node that consumes
165-
the clock can be done only for clocks that have a single user. Specifying
166-
conflicting parent or rate configuration in multiple consumer nodes for
167-
a shared clock is forbidden.
168-
169-
Configuration of common clocks, which affect multiple consumer devices can
170-
be similarly specified in the clock provider node.
171-
172-
==Protected clocks==
173-
174-
Some platforms or firmwares may not fully expose all the clocks to the OS, such
175-
as in situations where those clks are used by drivers running in ARM secure
176-
execution levels. Such a configuration can be specified in device tree with the
177-
protected-clocks property in the form of a clock specifier list. This property should
178-
only be specified in the node that is providing the clocks being protected:
179-
180-
clock-controller@a000f000 {
181-
compatible = "vendor,clk95;
182-
reg = <0xa000f000 0x1000>
183-
#clocks-cells = <1>;
184-
...
185-
protected-clocks = <UART3_CLK>, <SPI5_CLK>;
186-
};
1+
This file has moved to the clock binding schema:
2+
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/clock/clock.yaml

Documentation/devicetree/bindings/clock/rockchip,px30-cru.txt

Lines changed: 0 additions & 70 deletions
This file was deleted.
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/rockchip,px30-cru.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Rockchip PX30 Clock and Reset Unit (CRU)
8+
9+
maintainers:
10+
- Elaine Zhang <zhangqing@rock-chips.com>
11+
- Heiko Stuebner <heiko@sntech.de>
12+
13+
description: |
14+
The PX30 clock controller generates and supplies clocks to various
15+
controllers within the SoC and also implements a reset controller for SoC
16+
peripherals.
17+
Each clock is assigned an identifier and client nodes can use this identifier
18+
to specify the clock which they consume. All available clocks are defined as
19+
preprocessor macros in the dt-bindings/clock/px30-cru.h headers and can be
20+
used in device tree sources. Similar macros exist for the reset sources in
21+
these files.
22+
There are several clocks that are generated outside the SoC. It is expected
23+
that they are defined using standard clock bindings with following
24+
clock-output-names:
25+
- "xin24m" - crystal input - required
26+
- "xin32k" - rtc clock - optional
27+
- "i2sx_clkin" - external I2S clock - optional
28+
- "gmac_clkin" - external GMAC clock - optional
29+
30+
properties:
31+
compatible:
32+
enum:
33+
- rockchip,px30-cru
34+
- rockchip,px30-pmucru
35+
36+
reg:
37+
maxItems: 1
38+
39+
"#clock-cells":
40+
const: 1
41+
42+
"#reset-cells":
43+
const: 1
44+
45+
clocks:
46+
minItems: 1
47+
items:
48+
- description: Clock for both PMUCRU and CRU
49+
- description: Clock for CRU (sourced from PMUCRU)
50+
51+
clock-names:
52+
minItems: 1
53+
items:
54+
- const: xin24m
55+
- const: gpll
56+
57+
rockchip,grf:
58+
$ref: /schemas/types.yaml#/definitions/phandle
59+
description:
60+
Phandle to the syscon managing the "general register files" (GRF),
61+
if missing pll rates are not changeable, due to the missing pll
62+
lock status.
63+
64+
required:
65+
- compatible
66+
- reg
67+
- clocks
68+
- clock-names
69+
- "#clock-cells"
70+
- "#reset-cells"
71+
72+
allOf:
73+
- if:
74+
properties:
75+
compatible:
76+
contains:
77+
const: rockchip,px30-cru
78+
79+
then:
80+
properties:
81+
clocks:
82+
minItems: 2
83+
84+
clock-names:
85+
minItems: 2
86+
87+
else:
88+
properties:
89+
clocks:
90+
maxItems: 1
91+
92+
clock-names:
93+
maxItems: 1
94+
95+
additionalProperties: false
96+
97+
examples:
98+
- |
99+
#include <dt-bindings/clock/px30-cru.h>
100+
101+
pmucru: clock-controller@ff2bc000 {
102+
compatible = "rockchip,px30-pmucru";
103+
reg = <0xff2bc000 0x1000>;
104+
clocks = <&xin24m>;
105+
clock-names = "xin24m";
106+
rockchip,grf = <&grf>;
107+
#clock-cells = <1>;
108+
#reset-cells = <1>;
109+
};
110+
111+
cru: clock-controller@ff2b0000 {
112+
compatible = "rockchip,px30-cru";
113+
reg = <0xff2b0000 0x1000>;
114+
clocks = <&xin24m>, <&pmucru PLL_GPLL>;
115+
clock-names = "xin24m", "gpll";
116+
rockchip,grf = <&grf>;
117+
#clock-cells = <1>;
118+
#reset-cells = <1>;
119+
};

0 commit comments

Comments
 (0)