Skip to content

Commit 5debcd0

Browse files
committed
Merge branches 'clk-mmp', 'clk-intel', 'clk-ingenic', 'clk-qcom' and 'clk-silabs' into clk-next
- Start making audio and GPU clks work on Marvell MMP2/MMP3 SoCs - Add support for X1830 and X1000 Ingenic SoC clk controllers - Add support for Qualcomm's MSM8939 Generic Clock Controller - Add some GPU, NPU, and UFS clks to Qualcomm SM8150 driver - Enable supply regulators for GPU gdscs on Qualcomm SoCs - Add support for Si5342, Si5344 and Si5345 chips * clk-mmp: clk: mmp2: Add audio clock controller driver dt-bindings: clock: Add Marvell MMP Audio Clock Controller binding clk: mmp2: Add support for power islands dt-bindings: marvell,mmp2: Add ids for the power domains dt-bindings: clock: Make marvell,mmp2-clock a power controller clk: mmp2: Add the audio clock clk: mmp2: Add the I2S clocks clk: mmp2: Rename mmp2_pll_init() to mmp2_main_clk_init() clk: mmp2: Move thermal register defines up a bit dt-bindings: marvell,mmp2: Add clock id for the Audio clock dt-bindings: marvell,mmp2: Add clock id for the I2S clocks clk: mmp: frac: Allow setting bits other than the numerator/denominator clk: mmp: frac: Do not lose last 4 digits of precision * clk-intel: clk: intel: remove redundant initialization of variable rate64 clk: intel: Add CGU clock driver for a new SoC dt-bindings: clk: intel: Add bindings document & header file for CGU * clk-ingenic: clk: ingenic: Mark ingenic_tcu_of_match as __maybe_unused clk: X1000: Add FIXDIV for SSI clock of X1000. dt-bindings: clock: Add and reorder ABI for X1000. clk: Ingenic: Add CGU driver for X1830. dt-bindings: clock: Add X1830 clock bindings. clk: Ingenic: Adjust cgu code to make it compatible with X1830. clk: Ingenic: Remove unnecessary spinlock when reading registers. * clk-qcom: clk: qcom: Add missing msm8998 ufs_unipro_core_clk_src dt-bindings: clock: Add YAML schemas for QCOM A53 PLL clk: qcom: gcc-msm8939: Add MSM8939 Generic Clock Controller clk: qcom: gcc: Add support for Secure control source clock dt-bindings: clock: Add gcc_sec_ctrl_clk_src clock ID clk: qcom: gcc: Add support for a new frequency for SC7180 clk: qcom: Add DT bindings for MSM8939 GCC clk: qcom: gcc: Add missing UFS clocks for SM8150 clk: qcom: gcc: Add GPU and NPU clocks for SM8150 clk: qcom: mmcc-msm8996: Properly describe GPU_GX gdsc clk: qcom: gdsc: Handle GDSC regulator supplies clk: qcom: msm8916: Fix the address location of pll->config_reg * clk-silabs: clk: clk-si5341: Add support for the Si5345 series
6 parents b6f3162 + 725262d + d036466 + e480fe1 + b1e8d71 + f9eec2e commit 5debcd0

Some content is hidden

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

54 files changed

+8026
-133
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/intel,cgu-lgm.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Intel Lightning Mountain SoC's Clock Controller(CGU) Binding
8+
9+
maintainers:
10+
- Rahul Tanwar <[email protected]>
11+
12+
description: |
13+
Lightning Mountain(LGM) SoC's Clock Generation Unit(CGU) driver provides
14+
all means to access the CGU hardware module in order to generate a series
15+
of clocks for the whole system and individual peripherals.
16+
17+
Please refer to include/dt-bindings/clock/intel,lgm-clk.h header file, it
18+
defines all available clocks as macros. These macros can be used in device
19+
tree sources.
20+
21+
properties:
22+
compatible:
23+
const: intel,cgu-lgm
24+
25+
reg:
26+
maxItems: 1
27+
28+
'#clock-cells':
29+
const: 1
30+
31+
required:
32+
- compatible
33+
- reg
34+
- '#clock-cells'
35+
36+
examples:
37+
- |
38+
cgu: clock-controller@e0200000 {
39+
compatible = "intel,cgu-lgm";
40+
reg = <0xe0200000 0x33c>;
41+
#clock-cells = <1>;
42+
};
43+
44+
...
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/marvell,mmp2-audio-clock.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Marvell MMP2 Audio Clock Controller
8+
9+
maintainers:
10+
- Lubomir Rintel <[email protected]>
11+
12+
description: |
13+
The audio clock controller generates and supplies the clocks to the audio
14+
codec.
15+
16+
Each clock is assigned an identifier and client nodes use this identifier
17+
to specify the clock which they consume.
18+
19+
All these identifiers could be found in
20+
<dt-bindings/clock/marvell,mmp2-audio.h>.
21+
22+
properties:
23+
compatible:
24+
enum:
25+
- marvell,mmp2-audio-clock
26+
27+
reg:
28+
maxItems: 1
29+
30+
clocks:
31+
items:
32+
- description: Audio subsystem clock
33+
- description: The crystal oscillator clock
34+
- description: First I2S clock
35+
- description: Second I2S clock
36+
37+
clock-names:
38+
items:
39+
- const: audio
40+
- const: vctcxo
41+
- const: i2s0
42+
- const: i2s1
43+
44+
'#clock-cells':
45+
const: 1
46+
47+
power-domains:
48+
maxItems: 1
49+
50+
required:
51+
- compatible
52+
- reg
53+
- clocks
54+
- clock-names
55+
- '#clock-cells'
56+
57+
additionalProperties: false
58+
59+
examples:
60+
- |
61+
#include <dt-bindings/clock/marvell,mmp2-audio.h>
62+
#include <dt-bindings/power/marvell,mmp2.h>
63+
64+
clock-controller@d42a0c30 {
65+
compatible = "marvell,mmp2-audio-clock";
66+
reg = <0xd42a0c30 0x10>;
67+
clock-names = "audio", "vctcxo", "i2s0", "i2s1";
68+
clocks = <&soc_clocks MMP2_CLK_AUDIO>,
69+
<&soc_clocks MMP2_CLK_VCTCXO>,
70+
<&soc_clocks MMP2_CLK_I2S0>,
71+
<&soc_clocks MMP2_CLK_I2S1>;
72+
power-domains = <&soc_clocks MMP2_POWER_DOMAIN_AUDIO>;
73+
#clock-cells = <1>;
74+
};

Documentation/devicetree/bindings/clock/marvell,mmp2-clock.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,16 @@ properties:
4242
'#reset-cells':
4343
const: 1
4444

45+
'#power-domain-cells':
46+
const: 1
47+
4548
required:
4649
- compatible
4750
- reg
4851
- reg-names
4952
- '#clock-cells'
5053
- '#reset-cells'
54+
- '#power-domain-cells'
5155

5256
additionalProperties: false
5357

@@ -61,4 +65,5 @@ examples:
6165
reg-names = "mpmu", "apmu", "apbc";
6266
#clock-cells = <1>;
6367
#reset-cells = <1>;
68+
#power-domain-cells = <1>;
6469
};

Documentation/devicetree/bindings/clock/qcom,a53pll.txt

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/qcom,a53pll.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm A53 PLL Binding
8+
9+
maintainers:
10+
- Sivaprakash Murugesan <[email protected]>
11+
12+
description:
13+
The A53 PLL on few Qualcomm platforms is the main CPU PLL used used for
14+
frequencies above 1GHz.
15+
16+
properties:
17+
compatible:
18+
const: qcom,msm8916-a53pll
19+
20+
reg:
21+
maxItems: 1
22+
23+
'#clock-cells':
24+
const: 0
25+
26+
required:
27+
- compatible
28+
- reg
29+
- '#clock-cells'
30+
31+
additionalProperties: false
32+
33+
examples:
34+
#Example 1 - A53 PLL found on MSM8916 devices
35+
- |
36+
a53pll: clock@b016000 {
37+
compatible = "qcom,msm8916-a53pll";
38+
reg = <0xb016000 0x40>;
39+
#clock-cells = <0>;
40+
};

Documentation/devicetree/bindings/clock/qcom,gcc.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ description: |
2222
- dt-bindings/reset/qcom,gcc-ipq6018.h
2323
- dt-bindings/clock/qcom,gcc-ipq806x.h (qcom,gcc-ipq8064)
2424
- dt-bindings/reset/qcom,gcc-ipq806x.h (qcom,gcc-ipq8064)
25+
- dt-bindings/clock/qcom,gcc-msm8939.h
26+
- dt-bindings/reset/qcom,gcc-msm8939.h
2527
- dt-bindings/clock/qcom,gcc-msm8660.h
2628
- dt-bindings/reset/qcom,gcc-msm8660.h
2729
- dt-bindings/clock/qcom,gcc-msm8974.h
@@ -41,6 +43,7 @@ properties:
4143
- qcom,gcc-ipq8064
4244
- qcom,gcc-msm8660
4345
- qcom,gcc-msm8916
46+
- qcom,gcc-msm8939
4447
- qcom,gcc-msm8960
4548
- qcom,gcc-msm8974
4649
- qcom,gcc-msm8974pro

Documentation/devicetree/bindings/clock/qcom,mmcc.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ properties:
6767
description:
6868
Protected clock specifier list as per common clock binding
6969

70+
vdd-gfx-supply:
71+
description:
72+
Regulator supply for the GPU_GX GDSC
73+
7074
required:
7175
- compatible
7276
- reg

Documentation/devicetree/bindings/clock/silabs,si5341.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
Binding for Silicon Labs Si5341 and Si5340 programmable i2c clock generator.
1+
Binding for Silicon Labs Si5340, Si5341 Si5342, Si5344 and Si5345 programmable
2+
i2c clock generator.
23

34
Reference
45
[1] Si5341 Data Sheet
56
https://www.silabs.com/documents/public/data-sheets/Si5341-40-D-DataSheet.pdf
67
[2] Si5341 Reference Manual
78
https://www.silabs.com/documents/public/reference-manuals/Si5341-40-D-RM.pdf
9+
[3] Si5345 Reference Manual
10+
https://www.silabs.com/documents/public/reference-manuals/Si5345-44-42-D-RM.pdf
811

912
The Si5341 and Si5340 are programmable i2c clock generators with up to 10 output
1013
clocks. The chip contains a PLL that sources 5 (or 4) multisynth clocks, which
1114
in turn can be directed to any of the 10 (or 4) outputs through a divider.
1215
The internal structure of the clock generators can be found in [2].
16+
The Si5345 is similar to the Si5341 with the addition of fractional input
17+
dividers and automatic input selection, as described in [3].
18+
The Si5342 and Si5344 are smaller versions of the Si5345, with 2 or 4 outputs.
1319

1420
The driver can be used in "as is" mode, reading the current settings from the
1521
chip at boot, in case you have a (pre-)programmed device. If the PLL is not
@@ -28,6 +34,9 @@ Required properties:
2834
- compatible: shall be one of the following:
2935
"silabs,si5340" - Si5340 A/B/C/D
3036
"silabs,si5341" - Si5341 A/B/C/D
37+
"silabs,si5342" - Si5342 A/B/C/D
38+
"silabs,si5344" - Si5344 A/B/C/D
39+
"silabs,si5345" - Si5345 A/B/C/D
3140
- reg: i2c device address, usually 0x74
3241
- #clock-cells: from common clock binding; shall be set to 2.
3342
The first value is "0" for outputs, "1" for synthesizers.

arch/arm/mach-mmp/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ config MACH_MMP2_DT
124124
select PINCTRL_SINGLE
125125
select ARCH_HAS_RESET_CONTROLLER
126126
select CPU_PJ4
127+
select PM_GENERIC_DOMAINS if PM
128+
select PM_GENERIC_DOMAINS_OF if PM && OF
127129
help
128130
Include support for Marvell MMP2 based platforms using
129131
the device tree.

drivers/clk/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,12 @@ config COMMON_CLK_MMP2
341341
help
342342
Support for Marvell MMP2 and MMP3 SoC clocks
343343

344+
config COMMON_CLK_MMP2_AUDIO
345+
tristate "Clock driver for MMP2 Audio subsystem"
346+
depends on COMMON_CLK_MMP2 || COMPILE_TEST
347+
help
348+
This driver supports clocks for Audio subsystem on MMP2 SoC.
349+
344350
config COMMON_CLK_BD718XX
345351
tristate "Clock driver for 32K clk gates on ROHM PMICs"
346352
depends on MFD_ROHM_BD718XX || MFD_ROHM_BD70528 || MFD_ROHM_BD71828
@@ -375,6 +381,7 @@ source "drivers/clk/sunxi-ng/Kconfig"
375381
source "drivers/clk/tegra/Kconfig"
376382
source "drivers/clk/ti/Kconfig"
377383
source "drivers/clk/uniphier/Kconfig"
384+
source "drivers/clk/x86/Kconfig"
378385
source "drivers/clk/zynqmp/Kconfig"
379386

380387
endif

0 commit comments

Comments
 (0)