Skip to content

Commit f882a1e

Browse files
committed
Merge tag 'mtk-clk-for-6.1' of https://git.kernel.org/pub/scm/linux/kernel/git/wens/linux into clk-mtk
Pull MediaTek clk driver updates from Chen-Yu Tsai: A lot of clean up work, as well as new drivers and new functions - New clock drivers for MediaTek Helio X10 MT6795 - Add missing DPI1_HDMI clock in MT8195 VDOSYS1 - Clock driver changes to support GPU DVFS on MT8183, MT8192, MT8195 - Fix GPU clock topology on MT8195 - Propogate rate changes from GPU clock gate up the tree - Clock mux notifiers for GPU-related PLLs - Conversion of more "simple" drivers to mtk_clk_simple_probe() - Hook up mtk_clk_simple_remove() for "simple" MT8192 clock drivers - Fixes to previous |struct clk| to |struct clk_hw| conversion - Shrink MT8192 clock driver by deduplicating clock parent lists * tag 'mtk-clk-for-6.1' of https://git.kernel.org/pub/scm/linux/kernel/git/wens/linux: (31 commits) clk: mediatek: mt8192: deduplicate parent clock lists clk: mediatek: Migrate remaining clk_unregister_*() to clk_hw_unregister_*() clk: mediatek: fix unregister function in mtk_clk_register_dividers cleanup clk: mediatek: clk-mt8192: Add clock mux notifier for mfg_pll_sel clk: mediatek: clk-mt8192-mfg: Propagate rate changes to parent clk: mediatek: clk-mt8195-topckgen: Drop univplls from mfg mux parents clk: mediatek: clk-mt8195-topckgen: Add GPU clock mux notifier clk: mediatek: clk-mt8195-topckgen: Register mfg_ck_fast_ref as generic mux clk: mediatek: clk-mt8195-mfg: Reparent mfg_bg3d and propagate rate changes clk: mediatek: mt8183: Add clk mux notifier for MFG mux clk: mediatek: mux: add clk notifier functions clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent clk: mediatek: Use mtk_clk_register_gates_with_dev in simple probe clk: mediatek: gate: Export mtk_clk_register_gates_with_dev clk: mediatek: add VDOSYS1 clock dt-bindings: clk: mediatek: Add MT8195 DPI clocks clk: mediatek: mt8192: add mtk_clk_simple_remove clk: mediatek: mt8183: use mtk_clk_simple_probe to simplify driver clk: mediatek: mt6797: use mtk_clk_simple_probe to simplify driver clk: mediatek: mt6779: use mtk_clk_simple_probe to simplify driver ...
2 parents 3cc53c5 + 99f3a5e commit f882a1e

Some content is hidden

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

77 files changed

+2509
-858
lines changed

Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ properties:
2323
- mediatek,mt2701-infracfg
2424
- mediatek,mt2712-infracfg
2525
- mediatek,mt6765-infracfg
26+
- mediatek,mt6795-infracfg
2627
- mediatek,mt6779-infracfg_ao
2728
- mediatek,mt6797-infracfg
2829
- mediatek,mt7622-infracfg
@@ -60,6 +61,7 @@ if:
6061
enum:
6162
- mediatek,mt2701-infracfg
6263
- mediatek,mt2712-infracfg
64+
- mediatek,mt6795-infracfg
6365
- mediatek,mt7622-infracfg
6466
- mediatek,mt7986-infracfg
6567
- mediatek,mt8135-infracfg

Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ properties:
2525
- mediatek,mt2712-mmsys
2626
- mediatek,mt6765-mmsys
2727
- mediatek,mt6779-mmsys
28+
- mediatek,mt6795-mmsys
2829
- mediatek,mt6797-mmsys
2930
- mediatek,mt8167-mmsys
3031
- mediatek,mt8173-mmsys

Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ properties:
2121
- mediatek,mt2701-pericfg
2222
- mediatek,mt2712-pericfg
2323
- mediatek,mt6765-pericfg
24+
- mediatek,mt6795-pericfg
2425
- mediatek,mt7622-pericfg
2526
- mediatek,mt7629-pericfg
2627
- mediatek,mt8135-pericfg

Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ properties:
3434
- mediatek,mt2712-apmixedsys
3535
- mediatek,mt6765-apmixedsys
3636
- mediatek,mt6779-apmixedsys
37+
- mediatek,mt6795-apmixedsys
3738
- mediatek,mt7629-apmixedsys
3839
- mediatek,mt8167-apmixedsys
3940
- mediatek,mt8183-apmixedsys
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/mediatek,mt6795-clock.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MediaTek Functional Clock Controller for MT6795
8+
9+
maintainers:
10+
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
11+
- Chun-Jie Chen <chun-jie.chen@mediatek.com>
12+
13+
description: |
14+
The clock architecture in MediaTek like below
15+
PLLs -->
16+
dividers -->
17+
muxes
18+
-->
19+
clock gate
20+
21+
The devices provide clock gate control in different IP blocks.
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- mediatek,mt6795-mfgcfg
27+
- mediatek,mt6795-vdecsys
28+
- mediatek,mt6795-vencsys
29+
30+
reg:
31+
maxItems: 1
32+
33+
'#clock-cells':
34+
const: 1
35+
36+
required:
37+
- compatible
38+
- reg
39+
- '#clock-cells'
40+
41+
additionalProperties: false
42+
43+
examples:
44+
- |
45+
soc {
46+
#address-cells = <2>;
47+
#size-cells = <2>;
48+
49+
mfgcfg: clock-controller@13000000 {
50+
compatible = "mediatek,mt6795-mfgcfg";
51+
reg = <0 0x13000000 0 0x1000>;
52+
#clock-cells = <1>;
53+
};
54+
55+
vdecsys: clock-controller@16000000 {
56+
compatible = "mediatek,mt6795-vdecsys";
57+
reg = <0 0x16000000 0 0x1000>;
58+
#clock-cells = <1>;
59+
};
60+
61+
vencsys: clock-controller@18000000 {
62+
compatible = "mediatek,mt6795-vencsys";
63+
reg = <0 0x18000000 0 0x1000>;
64+
#clock-cells = <1>;
65+
};
66+
};
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/mediatek,mt6795-sys-clock.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MediaTek System Clock Controller for MT6795
8+
9+
maintainers:
10+
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
11+
- Chun-Jie Chen <chun-jie.chen@mediatek.com>
12+
13+
description:
14+
The Mediatek system clock controller provides various clocks and system
15+
configuration like reset and bus protection on MT6795.
16+
17+
properties:
18+
compatible:
19+
items:
20+
- enum:
21+
- mediatek,mt6795-apmixedsys
22+
- mediatek,mt6795-infracfg
23+
- mediatek,mt6795-pericfg
24+
- mediatek,mt6795-topckgen
25+
- const: syscon
26+
27+
reg:
28+
maxItems: 1
29+
30+
'#clock-cells':
31+
const: 1
32+
33+
'#reset-cells':
34+
const: 1
35+
36+
required:
37+
- compatible
38+
- reg
39+
- '#clock-cells'
40+
41+
additionalProperties: false
42+
43+
examples:
44+
- |
45+
soc {
46+
#address-cells = <2>;
47+
#size-cells = <2>;
48+
49+
topckgen: clock-controller@10000000 {
50+
compatible = "mediatek,mt6795-topckgen", "syscon";
51+
reg = <0 0x10000000 0 0x1000>;
52+
#clock-cells = <1>;
53+
};
54+
};

Documentation/devicetree/bindings/clock/mediatek,topckgen.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ properties:
3333
- mediatek,mt2712-topckgen
3434
- mediatek,mt6765-topckgen
3535
- mediatek,mt6779-topckgen
36+
- mediatek,mt6795-topckgen
3637
- mediatek,mt7629-topckgen
3738
- mediatek,mt7986-topckgen
3839
- mediatek,mt8167-topckgen

drivers/clk/mediatek/Kconfig

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,43 @@ config COMMON_CLK_MT6779_AUDSYS
259259
help
260260
This driver supports Mediatek MT6779 audsys clocks.
261261

262+
config COMMON_CLK_MT6795
263+
tristate "Clock driver for MediaTek MT6795"
264+
depends on ARCH_MEDIATEK || COMPILE_TEST
265+
select COMMON_CLK_MEDIATEK
266+
default ARCH_MEDIATEK
267+
help
268+
This driver supports MediaTek MT6795 basic clocks and clocks
269+
required for various peripherals found on MediaTek.
270+
271+
config COMMON_CLK_MT6795_MFGCFG
272+
tristate "Clock driver for MediaTek MT6795 mfgcfg"
273+
depends on COMMON_CLK_MT6795
274+
default COMMON_CLK_MT6795
275+
help
276+
This driver supports MediaTek MT6795 mfgcfg clocks.
277+
278+
config COMMON_CLK_MT6795_MMSYS
279+
tristate "Clock driver for MediaTek MT6795 mmsys"
280+
depends on COMMON_CLK_MT6795
281+
default COMMON_CLK_MT6795
282+
help
283+
This driver supports MediaTek MT6795 mmsys clocks.
284+
285+
config COMMON_CLK_MT6795_VDECSYS
286+
tristate "Clock driver for MediaTek MT6795 VDECSYS"
287+
depends on COMMON_CLK_MT6795
288+
default COMMON_CLK_MT6795
289+
help
290+
This driver supports MediaTek MT6795 vdecsys clocks.
291+
292+
config COMMON_CLK_MT6795_VENCSYS
293+
tristate "Clock driver for MediaTek MT6795 VENCSYS"
294+
depends on COMMON_CLK_MT6795
295+
default COMMON_CLK_MT6795
296+
help
297+
This driver supports MediaTek MT6795 vencsys clocks.
298+
262299
config COMMON_CLK_MT6797
263300
bool "Clock driver for MediaTek MT6797"
264301
depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST

drivers/clk/mediatek/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ obj-$(CONFIG_COMMON_CLK_MT6779_VDECSYS) += clk-mt6779-vdec.o
1717
obj-$(CONFIG_COMMON_CLK_MT6779_VENCSYS) += clk-mt6779-venc.o
1818
obj-$(CONFIG_COMMON_CLK_MT6779_MFGCFG) += clk-mt6779-mfg.o
1919
obj-$(CONFIG_COMMON_CLK_MT6779_AUDSYS) += clk-mt6779-aud.o
20+
obj-$(CONFIG_COMMON_CLK_MT6795) += clk-mt6795-apmixedsys.o clk-mt6795-infracfg.o \
21+
clk-mt6795-pericfg.o clk-mt6795-topckgen.o
22+
obj-$(CONFIG_COMMON_CLK_MT6795_MFGCFG) += clk-mt6795-mfg.o
23+
obj-$(CONFIG_COMMON_CLK_MT6795_MMSYS) += clk-mt6795-mm.o
24+
obj-$(CONFIG_COMMON_CLK_MT6795_VDECSYS) += clk-mt6795-vdecsys.o
25+
obj-$(CONFIG_COMMON_CLK_MT6795_VENCSYS) += clk-mt6795-vencsys.o
2026
obj-$(CONFIG_COMMON_CLK_MT6797) += clk-mt6797.o
2127
obj-$(CONFIG_COMMON_CLK_MT6797_IMGSYS) += clk-mt6797-img.o
2228
obj-$(CONFIG_COMMON_CLK_MT6797_MMSYS) += clk-mt6797-mm.o

drivers/clk/mediatek/clk-apmixed.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ static const struct clk_ops mtk_ref2usb_tx_ops = {
7070
.unprepare = mtk_ref2usb_tx_unprepare,
7171
};
7272

73-
struct clk_hw * __init mtk_clk_register_ref2usb_tx(const char *name,
73+
struct clk_hw *mtk_clk_register_ref2usb_tx(const char *name,
7474
const char *parent_name, void __iomem *reg)
7575
{
7676
struct mtk_ref2usb_tx *tx;
@@ -98,5 +98,15 @@ struct clk_hw * __init mtk_clk_register_ref2usb_tx(const char *name,
9898

9999
return &tx->hw;
100100
}
101+
EXPORT_SYMBOL_GPL(mtk_clk_register_ref2usb_tx);
102+
103+
void mtk_clk_unregister_ref2usb_tx(struct clk_hw *hw)
104+
{
105+
struct mtk_ref2usb_tx *tx = to_mtk_ref2usb_tx(hw);
106+
107+
clk_hw_unregister(hw);
108+
kfree(tx);
109+
}
110+
EXPORT_SYMBOL_GPL(mtk_clk_unregister_ref2usb_tx);
101111

102112
MODULE_LICENSE("GPL");

0 commit comments

Comments
 (0)