Skip to content

Commit f60a2ab

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 diff is dominated by the Allwinner A10/A20 SoCs getting converted to the sunxi-ng framework. Otherwise, the heavy hitters are various drivers for SoCs like AT91, Amlogic, Renesas, and Rockchip. There are some other new clk drivers in here too but overall this is just a bunch of clk drivers for various different pieces of hardware and a collection of non-critical fixes for clk drivers. New Drivers: - Allwinner R40 SoCs - Renesas R-Car Gen3 USB 2.0 clock selector PHY - Atmel AT91 audio PLL - Uniphier PXs3 SoCs - ARC HSDK Board PLLs - AXS10X Board PLLs - STMicroelectronics STM32H743 SoCs Removed Drivers: - Non-compiling mb86s7x support Updates: - Allwinner A10/A20 SoCs converted to sunxi-ng framework - Allwinner H3 CPU clk fixes - Renesas R-Car D3 SoC - Renesas V2H and M3-W modules - Samsung Exynos5420/5422/5800 audio fixes - Rockchip fractional clk approximation fixes - Rockchip rk3126 SoC support within the rk3128 driver - Amlogic gxbb CEC32 and sd_emmc clks - Amlogic meson8b reset controller support - IDT VersaClock 5P49V5925/5P49V6901 support - Qualcomm MSM8996 SMMU clks - Various 'const' applications for struct clk_ops - si5351 PLL reset bugfix - Uniphier audio on LD11/LD20 and ethernet support on LD11/LD20/Pro4/PXs2 - Assorted Tegra clk driver fixes" * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (120 commits) clk: si5351: fix PLL reset ASoC: atmel-classd: remove aclk clock ASoC: atmel-classd: remove aclk clock from DT binding clk: at91: clk-generated: make gclk determine audio_pll rate clk: at91: clk-generated: create function to find best_diff clk: at91: add audio pll clock drivers dt-bindings: clk: at91: add audio plls to the compatible list clk: at91: clk-generated: remove useless divisor loop clk: mb86s7x: Drop non-building driver clk: ti: check for null return in strrchr to avoid null dereferencing clk: Don't write error code into divider register clk: uniphier: add video input subsystem clock clk: uniphier: add audio system clock clk: stm32h7: Add stm32h743 clock driver clk: gate: expose clk_gate_ops::is_enabled clk: nxp: clk-lpc32xx: rename clk_gate_is_enabled() clk: uniphier: add PXs3 clock data clk: hi6220: change watchdog clock source clk: Kconfig: Name RK805 in Kconfig for COMMON_CLK_RK808 clk: cs2000: Add cs2000_set_saved_rate ...
2 parents 561a8eb + 73c950d commit f60a2ab

File tree

142 files changed

+9354
-1101
lines changed

Some content is hidden

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

142 files changed

+9354
-1101
lines changed

Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt

+16-6
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ controllers within the Always-On part of the SoC.
55

66
Required Properties:
77

8-
- compatible: should be "amlogic,gxbb-aoclkc"
9-
- reg: physical base address of the clock controller and length of memory
10-
mapped region.
8+
- compatible: value should be different for each SoC family as :
9+
- GXBB (S905) : "amlogic,meson-gxbb-aoclkc"
10+
- GXL (S905X, S905D) : "amlogic,meson-gxl-aoclkc"
11+
- GXM (S912) : "amlogic,meson-gxm-aoclkc"
12+
followed by the common "amlogic,meson-gx-aoclkc"
1113

1214
- #clock-cells: should be 1.
1315

@@ -23,14 +25,22 @@ to specify the reset which they consume. All available resets are defined as
2325
preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
2426
used in device tree sources.
2527

28+
Parent node should have the following properties :
29+
- compatible: "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"
30+
- reg: base address and size of the AO system control register space.
31+
2632
Example: AO Clock controller node:
2733

28-
clkc_AO: clock-controller@040 {
29-
compatible = "amlogic,gxbb-aoclkc";
30-
reg = <0x0 0x040 0x0 0x4>;
34+
ao_sysctrl: sys-ctrl@0 {
35+
compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
36+
reg = <0x0 0x0 0x0 0x100>;
37+
38+
clkc_AO: clock-controller {
39+
compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
3140
#clock-cells = <1>;
3241
#reset-cells = <1>;
3342
};
43+
};
3444

3545
Example: UART controller node that consumes the clock and reset generated
3646
by the clock controller:

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

+10
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,16 @@ Required properties:
8181
"atmel,sama5d2-clk-generated":
8282
at91 generated clock
8383

84+
"atmel,sama5d2-clk-audio-pll-frac":
85+
at91 audio fractional pll
86+
87+
"atmel,sama5d2-clk-audio-pll-pad":
88+
at91 audio pll CLK_AUDIO output pin
89+
90+
"atmel,sama5d2-clk-audio-pll-pmc"
91+
at91 audio pll output on AUDIOPLLCLK that feeds the PMC
92+
and can be used by peripheral clock or generic clock
93+
8494
Required properties for SCKC node:
8595
- reg : defines the IO memory reserved for the SCKC.
8696
- #size-cells : shall be 0 (reg is used to encode clk id).

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

+23-7
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
1-
Binding for IDT VersaClock5 programmable i2c clock generator.
1+
Binding for IDT VersaClock 5,6 programmable i2c clock generators.
22

3-
The IDT VersaClock5 are programmable i2c clock generators providing
4-
from 3 to 12 output clocks.
3+
The IDT VersaClock 5 and VersaClock 6 are programmable i2c clock
4+
generators providing from 3 to 12 output clocks.
55

66
==I2C device node==
77

88
Required properties:
9-
- compatible: shall be one of "idt,5p49v5923" , "idt,5p49v5933" ,
10-
"idt,5p49v5935".
9+
- compatible: shall be one of
10+
"idt,5p49v5923"
11+
"idt,5p49v5925"
12+
"idt,5p49v5933"
13+
"idt,5p49v5935"
14+
"idt,5p49v6901"
1115
- reg: i2c device address, shall be 0x68 or 0x6a.
1216
- #clock-cells: from common clock binding; shall be set to 1.
1317
- clocks: from common clock binding; list of parent clock handles,
14-
- 5p49v5923: (required) either or both of XTAL or CLKIN
18+
- 5p49v5923 and
19+
5p49v5925 and
20+
5p49v6901: (required) either or both of XTAL or CLKIN
1521
reference clock.
1622
- 5p49v5933 and
1723
- 5p49v5935: (optional) property not present (internal
1824
Xtal used) or CLKIN reference
1925
clock.
2026
- clock-names: from common clock binding; clock input names, can be
21-
- 5p49v5923: (required) either or both of "xin", "clkin".
27+
- 5p49v5923 and
28+
5p49v5925 and
29+
5p49v6901: (required) either or both of "xin", "clkin".
2230
- 5p49v5933 and
2331
- 5p49v5935: (optional) property not present or "clkin".
2432

@@ -37,13 +45,21 @@ clock specifier, the following mapping applies:
3745
1 -- OUT1
3846
2 -- OUT4
3947

48+
5P49V5925 and
4049
5P49V5935:
4150
0 -- OUT0_SEL_I2CB
4251
1 -- OUT1
4352
2 -- OUT2
4453
3 -- OUT3
4554
4 -- OUT4
4655

56+
5P49V6901:
57+
0 -- OUT0_SEL_I2CB
58+
1 -- OUT1
59+
2 -- OUT2
60+
3 -- OUT3
61+
4 -- OUT4
62+
4763
==Example==
4864

4965
/* 25MHz reference crystal */

Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Required Properties:
2222
- "renesas,r8a7794-cpg-mssr" for the r8a7794 SoC (R-Car E2)
2323
- "renesas,r8a7795-cpg-mssr" for the r8a7795 SoC (R-Car H3)
2424
- "renesas,r8a7796-cpg-mssr" for the r8a7796 SoC (R-Car M3-W)
25+
- "renesas,r8a77995-cpg-mssr" for the r8a77995 SoC (R-Car D3)
2526

2627
- reg: Base address and length of the memory resource used by the CPG/MSSR
2728
block
@@ -30,7 +31,7 @@ Required Properties:
3031
clock-names
3132
- clock-names: List of external parent clock names. Valid names are:
3233
- "extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7792, r8a7793, r8a7794,
33-
r8a7795, r8a7796)
34+
r8a7795, r8a7796, r8a77995)
3435
- "extalr" (r8a7795, r8a7796)
3536
- "usb_extal" (r8a7743, r8a7745, r8a7790, r8a7791, r8a7793, r8a7794)
3637

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
* Renesas R-Car USB 2.0 clock selector
2+
3+
This file provides information on what the device node for the R-Car USB 2.0
4+
clock selector.
5+
6+
If you connect an external clock to the USB_EXTAL pin only, you should set
7+
the clock rate to "usb_extal" node only.
8+
If you connect an oscillator to both the USB_XTAL and USB_EXTAL, this module
9+
is not needed because this is default setting. (Of course, you can set the
10+
clock rates to both "usb_extal" and "usb_xtal" nodes.
11+
12+
Case 1: An external clock connects to R-Car SoC
13+
+----------+ +--- R-Car ---------------------+
14+
|External |---|USB_EXTAL ---> all usb channels|
15+
|clock | |USB_XTAL |
16+
+----------+ +-------------------------------+
17+
In this case, we need this driver with "usb_extal" clock.
18+
19+
Case 2: An oscillator connects to R-Car SoC
20+
+----------+ +--- R-Car ---------------------+
21+
|Oscillator|---|USB_EXTAL -+-> all usb channels|
22+
| |---|USB_XTAL --+ |
23+
+----------+ +-------------------------------+
24+
In this case, we don't need this selector.
25+
26+
Required properties:
27+
- compatible: "renesas,r8a7795-rcar-usb2-clock-sel" if the device is a part of
28+
an R8A7795 SoC.
29+
"renesas,r8a7796-rcar-usb2-clock-sel" if the device if a part of
30+
an R8A7796 SoC.
31+
"renesas,rcar-gen3-usb2-clock-sel" for a generic R-Car Gen3
32+
compatible device.
33+
34+
When compatible with the generic version, nodes must list the
35+
SoC-specific version corresponding to the platform first
36+
followed by the generic version.
37+
38+
- reg: offset and length of the USB 2.0 clock selector register block.
39+
- clocks: A list of phandles and specifier pairs.
40+
- clock-names: Name of the clocks.
41+
- The functional clock must be "ehci_ohci"
42+
- The USB_EXTAL clock pin must be "usb_extal"
43+
- The USB_XTAL clock pin must be "usb_xtal"
44+
- #clock-cells: Must be 0
45+
46+
Example (R-Car H3):
47+
48+
usb2_clksel: clock-controller@e6590630 {
49+
compatible = "renesas,r8a77950-rcar-usb2-clock-sel",
50+
"renesas,rcar-gen3-usb2-clock-sel";
51+
reg = <0 0xe6590630 0 0x02>;
52+
clocks = <&cpg CPG_MOD 703>, <&usb_extal>, <&usb_xtal>;
53+
clock-names = "ehci_ohci", "usb_extal", "usb_xtal";
54+
#clock-cells = <0>;
55+
};

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
* Rockchip RK3128 Clock and Reset Unit
1+
* Rockchip RK3126/RK3128 Clock and Reset Unit
22

3-
The RK3128 clock controller generates and supplies clock to various
3+
The RK3126/RK3128 clock controller generates and supplies clock to various
44
controllers within the SoC and also implements a reset controller for SoC
55
peripherals.
66

77
Required Properties:
88

9-
- compatible: should be "rockchip,rk3128-cru"
9+
- compatible: should be "rockchip,rk3126-cru" or "rockchip,rk3128-cru"
10+
"rockchip,rk3126-cru" - controller compatible with RK3126 SoC.
11+
"rockchip,rk3128-cru" - controller compatible with RK3128 SoC.
1012
- reg: physical base address of the controller and length of memory mapped
1113
region.
1214
- #clock-cells: should be 1.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Binding for the HSDK Generic PLL clock
2+
3+
This binding uses the common clock binding[1].
4+
5+
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6+
7+
Required properties:
8+
- compatible: should be "snps,hsdk-<name>-pll-clock"
9+
"snps,hsdk-core-pll-clock"
10+
"snps,hsdk-gp-pll-clock"
11+
"snps,hsdk-hdmi-pll-clock"
12+
- reg : should contain base register location and length.
13+
- clocks: shall be the input parent clock phandle for the PLL.
14+
- #clock-cells: from common clock binding; Should always be set to 0.
15+
16+
Example:
17+
input_clk: input-clk {
18+
clock-frequency = <33333333>;
19+
compatible = "fixed-clock";
20+
#clock-cells = <0>;
21+
};
22+
23+
cpu_clk: cpu-clk@0 {
24+
compatible = "snps,hsdk-core-pll-clock";
25+
reg = <0x00 0x10>;
26+
#clock-cells = <0>;
27+
clocks = <&input_clk>;
28+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Binding for the AXS10X Generic PLL clock
2+
3+
This binding uses the common clock binding[1].
4+
5+
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6+
7+
Required properties:
8+
- compatible: should be "snps,axs10x-<name>-pll-clock"
9+
"snps,axs10x-arc-pll-clock"
10+
"snps,axs10x-pgu-pll-clock"
11+
- reg: should always contain 2 pairs address - length: first for PLL config
12+
registers and second for corresponding LOCK CGU register.
13+
- clocks: shall be the input parent clock phandle for the PLL.
14+
- #clock-cells: from common clock binding; Should always be set to 0.
15+
16+
Example:
17+
input-clk: input-clk {
18+
clock-frequency = <33333333>;
19+
compatible = "fixed-clock";
20+
#clock-cells = <0>;
21+
};
22+
23+
core-clk: core-clk@80 {
24+
compatible = "snps,axs10x-arc-pll-clock";
25+
reg = <0x80 0x10>, <0x100 0x10>;
26+
#clock-cells = <0>;
27+
clocks = <&input-clk>;
28+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
STMicroelectronics STM32H7 Reset and Clock Controller
2+
=====================================================
3+
4+
The RCC IP is both a reset and a clock controller.
5+
6+
Please refer to clock-bindings.txt for common clock controller binding usage.
7+
Please also refer to reset.txt for common reset controller binding usage.
8+
9+
Required properties:
10+
- compatible: Should be:
11+
"st,stm32h743-rcc"
12+
13+
- reg: should be register base and length as documented in the
14+
datasheet
15+
16+
- #reset-cells: 1, see below
17+
18+
- #clock-cells : from common clock binding; shall be set to 1
19+
20+
- clocks: External oscillator clock phandle
21+
- high speed external clock signal (HSE)
22+
- low speed external clock signal (LSE)
23+
- external I2S clock (I2S_CKIN)
24+
25+
Optional properties:
26+
- st,syscfg: phandle for pwrcfg, mandatory to disable/enable backup domain
27+
write protection (RTC clock).
28+
29+
Example:
30+
31+
rcc: reset-clock-controller@58024400 {
32+
compatible = "st,stm32h743-rcc", "st,stm32-rcc";
33+
reg = <0x58024400 0x400>;
34+
#reset-cells = <1>;
35+
#clock-cells = <2>;
36+
clocks = <&clk_hse>, <&clk_lse>, <&clk_i2s_ckin>;
37+
38+
st,syscfg = <&pwrcfg>;
39+
};
40+
41+
The peripheral clock consumer should specify the desired clock by
42+
having the clock ID in its "clocks" phandle cell.
43+
44+
Example:
45+
46+
timer5: timer@40000c00 {
47+
compatible = "st,stm32-timer";
48+
reg = <0x40000c00 0x400>;
49+
interrupts = <50>;
50+
clocks = <&rcc TIM5_CK>;
51+
};
52+
53+
Specifying softreset control of devices
54+
=======================================
55+
56+
Device nodes should specify the reset channel required in their "resets"
57+
property, containing a phandle to the reset device node and an index specifying
58+
which channel to use.
59+
The index is the bit number within the RCC registers bank, starting from RCC
60+
base address.
61+
It is calculated as: index = register_offset / 4 * 32 + bit_offset.
62+
Where bit_offset is the bit offset within the register.
63+
64+
For example, for CRC reset:
65+
crc = AHB4RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x88 / 4 * 32 + 19 = 1107
66+
67+
Example:
68+
69+
timer2 {
70+
resets = <&rcc STM32H7_APB1L_RESET(TIM2)>;
71+
};

Documentation/devicetree/bindings/clock/sunxi-ccu.txt

+6
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,24 @@ Allwinner Clock Control Unit Binding
33

44
Required properties :
55
- compatible: must contain one of the following compatibles:
6+
- "allwinner,sun4i-a10-ccu"
7+
- "allwinner,sun5i-a10s-ccu"
8+
- "allwinner,sun5i-a13-ccu"
69
- "allwinner,sun6i-a31-ccu"
10+
- "allwinner,sun7i-a20-ccu"
711
- "allwinner,sun8i-a23-ccu"
812
- "allwinner,sun8i-a33-ccu"
913
- "allwinner,sun8i-a83t-ccu"
1014
- "allwinner,sun8i-a83t-r-ccu"
1115
- "allwinner,sun8i-h3-ccu"
1216
- "allwinner,sun8i-h3-r-ccu"
17+
+ - "allwinner,sun8i-r40-ccu"
1318
- "allwinner,sun8i-v3s-ccu"
1419
- "allwinner,sun9i-a80-ccu"
1520
- "allwinner,sun50i-a64-ccu"
1621
- "allwinner,sun50i-a64-r-ccu"
1722
- "allwinner,sun50i-h5-ccu"
23+
- "nextthing,gr8-ccu"
1824

1925
- reg: Must contain the registers base address and length
2026
- clocks: phandle to the oscillators feeding the CCU. Two are needed:

0 commit comments

Comments
 (0)