Skip to content

Commit 4afd2a9

Browse files
committed
Merge branches 'clk-ingenic' and 'clk-mediatek' into clk-next
- Add MDMA and BDMA clks to Ingenic JZ4760 and JZ4770 - MediaTek mt7986 SoC basic support * clk-ingenic: clk: ingenic: Add MDMA and BDMA clocks dt-bindings: clk/ingenic: Add MDMA and BDMA clocks * clk-mediatek: clk: mediatek: add mt7986 clock support clk: mediatek: add mt7986 clock IDs dt-bindings: clock: mediatek: document clk bindings for mediatek mt7986 SoC clk: mediatek: clk-gate: Use regmap_{set/clear}_bits helpers clk: mediatek: clk-gate: Shrink by adding clockgating bit check helper
3 parents 1d0bd12 + b5bc83b + ec97d23 commit 4afd2a9

File tree

17 files changed

+1021
-15
lines changed

17 files changed

+1021
-15
lines changed

Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Required Properties:
1414
- "mediatek,mt7622-apmixedsys"
1515
- "mediatek,mt7623-apmixedsys", "mediatek,mt2701-apmixedsys"
1616
- "mediatek,mt7629-apmixedsys"
17+
- "mediatek,mt7986-apmixedsys"
1718
- "mediatek,mt8135-apmixedsys"
1819
- "mediatek,mt8167-apmixedsys", "syscon"
1920
- "mediatek,mt8173-apmixedsys"

Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Required Properties:
1010
- "mediatek,mt7622-ethsys", "syscon"
1111
- "mediatek,mt7623-ethsys", "mediatek,mt2701-ethsys", "syscon"
1212
- "mediatek,mt7629-ethsys", "syscon"
13+
- "mediatek,mt7986-ethsys", "syscon"
1314
- #clock-cells: Must be 1
1415
- #reset-cells: Must be 1
1516

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Required Properties:
1515
- "mediatek,mt7622-infracfg", "syscon"
1616
- "mediatek,mt7623-infracfg", "mediatek,mt2701-infracfg", "syscon"
1717
- "mediatek,mt7629-infracfg", "syscon"
18+
- "mediatek,mt7986-infracfg", "syscon"
1819
- "mediatek,mt8135-infracfg", "syscon"
1920
- "mediatek,mt8167-infracfg", "syscon"
2021
- "mediatek,mt8173-infracfg", "syscon"

Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Required Properties:
88
- compatible: Should be:
99
- "mediatek,mt7622-sgmiisys", "syscon"
1010
- "mediatek,mt7629-sgmiisys", "syscon"
11+
- "mediatek,mt7986-sgmiisys_0", "syscon"
12+
- "mediatek,mt7986-sgmiisys_1", "syscon"
1113
- #clock-cells: Must be 1
1214

1315
The SGMIISYS controller uses the common clk binding from

Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Required Properties:
1414
- "mediatek,mt7622-topckgen"
1515
- "mediatek,mt7623-topckgen", "mediatek,mt2701-topckgen"
1616
- "mediatek,mt7629-topckgen"
17+
- "mediatek,mt7986-topckgen", "syscon"
1718
- "mediatek,mt8135-topckgen"
1819
- "mediatek,mt8167-topckgen", "syscon"
1920
- "mediatek,mt8173-topckgen"

drivers/clk/ingenic/jz4760-cgu.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,16 @@ static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
313313
.parents = { JZ4760_CLK_H2CLK, },
314314
.gate = { CGU_REG_CLKGR0, 21 },
315315
},
316+
[JZ4760_CLK_MDMA] = {
317+
"mdma", CGU_CLK_GATE,
318+
.parents = { JZ4760_CLK_HCLK, },
319+
.gate = { CGU_REG_CLKGR0, 25 },
320+
},
321+
[JZ4760_CLK_BDMA] = {
322+
"bdma", CGU_CLK_GATE,
323+
.parents = { JZ4760_CLK_HCLK, },
324+
.gate = { CGU_REG_CLKGR1, 0 },
325+
},
316326
[JZ4760_CLK_I2C0] = {
317327
"i2c0", CGU_CLK_GATE,
318328
.parents = { JZ4760_CLK_EXT, },

drivers/clk/ingenic/jz4770-cgu.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,11 @@ static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
329329
.parents = { JZ4770_CLK_H2CLK, },
330330
.gate = { CGU_REG_CLKGR0, 21 },
331331
},
332+
[JZ4770_CLK_BDMA] = {
333+
"bdma", CGU_CLK_GATE,
334+
.parents = { JZ4770_CLK_H2CLK, },
335+
.gate = { CGU_REG_CLKGR1, 0 },
336+
},
332337
[JZ4770_CLK_I2C0] = {
333338
"i2c0", CGU_CLK_GATE,
334339
.parents = { JZ4770_CLK_EXT, },

drivers/clk/mediatek/Kconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,23 @@ config COMMON_CLK_MT7629_HIFSYS
344344
This driver supports MediaTek MT7629 HIFSYS clocks providing
345345
to PCI-E and USB.
346346

347+
config COMMON_CLK_MT7986
348+
bool "Clock driver for MediaTek MT7986"
349+
depends on ARCH_MEDIATEK || COMPILE_TEST
350+
select COMMON_CLK_MEDIATEK
351+
default ARCH_MEDIATEK
352+
help
353+
This driver supports MediaTek MT7986 basic clocks and clocks
354+
required for various peripherals found on MediaTek.
355+
356+
config COMMON_CLK_MT7986_ETHSYS
357+
bool "Clock driver for MediaTek MT7986 ETHSYS"
358+
depends on COMMON_CLK_MT7986
359+
default COMMON_CLK_MT7986
360+
help
361+
This driver adds support for clocks for Ethernet and SGMII
362+
required on MediaTek MT7986 SoC.
363+
347364
config COMMON_CLK_MT8135
348365
bool "Clock driver for MediaTek MT8135"
349366
depends on (ARCH_MEDIATEK && ARM) || COMPILE_TEST

drivers/clk/mediatek/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ obj-$(CONFIG_COMMON_CLK_MT7622_AUDSYS) += clk-mt7622-aud.o
4646
obj-$(CONFIG_COMMON_CLK_MT7629) += clk-mt7629.o
4747
obj-$(CONFIG_COMMON_CLK_MT7629_ETHSYS) += clk-mt7629-eth.o
4848
obj-$(CONFIG_COMMON_CLK_MT7629_HIFSYS) += clk-mt7629-hif.o
49+
obj-$(CONFIG_COMMON_CLK_MT7986) += clk-mt7986-apmixed.o
50+
obj-$(CONFIG_COMMON_CLK_MT7986) += clk-mt7986-topckgen.o
51+
obj-$(CONFIG_COMMON_CLK_MT7986) += clk-mt7986-infracfg.o
52+
obj-$(CONFIG_COMMON_CLK_MT7986_ETHSYS) += clk-mt7986-eth.o
4953
obj-$(CONFIG_COMMON_CLK_MT8135) += clk-mt8135.o
5054
obj-$(CONFIG_COMMON_CLK_MT8167) += clk-mt8167.o
5155
obj-$(CONFIG_COMMON_CLK_MT8167_AUDSYS) += clk-mt8167-aud.o

drivers/clk/mediatek/clk-gate.c

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,24 @@
1616
#include "clk-mtk.h"
1717
#include "clk-gate.h"
1818

19-
static int mtk_cg_bit_is_cleared(struct clk_hw *hw)
19+
static u32 mtk_get_clockgating(struct clk_hw *hw)
2020
{
2121
struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
2222
u32 val;
2323

2424
regmap_read(cg->regmap, cg->sta_ofs, &val);
2525

26-
val &= BIT(cg->bit);
26+
return val & BIT(cg->bit);
27+
}
2728

28-
return val == 0;
29+
static int mtk_cg_bit_is_cleared(struct clk_hw *hw)
30+
{
31+
return mtk_get_clockgating(hw) == 0;
2932
}
3033

3134
static int mtk_cg_bit_is_set(struct clk_hw *hw)
3235
{
33-
struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
34-
u32 val;
35-
36-
regmap_read(cg->regmap, cg->sta_ofs, &val);
37-
38-
val &= BIT(cg->bit);
39-
40-
return val != 0;
36+
return mtk_get_clockgating(hw) != 0;
4137
}
4238

4339
static void mtk_cg_set_bit(struct clk_hw *hw)
@@ -57,17 +53,15 @@ static void mtk_cg_clr_bit(struct clk_hw *hw)
5753
static void mtk_cg_set_bit_no_setclr(struct clk_hw *hw)
5854
{
5955
struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
60-
u32 cgbit = BIT(cg->bit);
6156

62-
regmap_update_bits(cg->regmap, cg->sta_ofs, cgbit, cgbit);
57+
regmap_set_bits(cg->regmap, cg->sta_ofs, BIT(cg->bit));
6358
}
6459

6560
static void mtk_cg_clr_bit_no_setclr(struct clk_hw *hw)
6661
{
6762
struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
68-
u32 cgbit = BIT(cg->bit);
6963

70-
regmap_update_bits(cg->regmap, cg->sta_ofs, cgbit, 0);
64+
regmap_clear_bits(cg->regmap, cg->sta_ofs, BIT(cg->bit));
7165
}
7266

7367
static int mtk_cg_enable(struct clk_hw *hw)

0 commit comments

Comments
 (0)