Skip to content

Commit 2d2a290

Browse files
mtk-rex-bc-chenbebarino
authored andcommitted
clk: mediatek: reset: Revise structure to control reset register
To declare the reset data easier, we add a strucure to do this instead of using many input variables to mtk_register_reset_controller(). - Add mtk_clk_rst_desc to define the reset description when registering the reset controller. - Rename "mtk_reset" to "mtk_clk_rst_data". We use it to store data of reset controller. - Document mtk_clk_rst_desc and mtk_clk_rst_data. - Modify the documentation of mtk_register_reset_controller. - Extract container_of in update functions to to_mtk_clk_rst_data(). Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Link: https://lore.kernel.org/r/20220523093346.28493-7-rex-bc.chen@mediatek.com Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent 370bf62 commit 2d2a290

15 files changed

Lines changed: 186 additions & 40 deletions

drivers/clk/mediatek/clk-mt2701-eth.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ static const struct mtk_gate eth_clks[] = {
3636
GATE_ETH(CLK_ETHSYS_CRYPTO, "crypto_clk", "ethif_sel", 29),
3737
};
3838

39+
static const struct mtk_clk_rst_desc clk_rst_desc = {
40+
.version = MTK_RST_SIMPLE,
41+
.rst_bank_nr = 1,
42+
.reg_ofs = 0x34,
43+
};
44+
3945
static const struct of_device_id of_match_clk_mt2701_eth[] = {
4046
{ .compatible = "mediatek,mt2701-ethsys", },
4147
{}
@@ -58,7 +64,7 @@ static int clk_mt2701_eth_probe(struct platform_device *pdev)
5864
"could not register clock provider: %s: %d\n",
5965
pdev->name, r);
6066

61-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
67+
mtk_register_reset_controller(node, &clk_rst_desc);
6268

6369
return r;
6470
}

drivers/clk/mediatek/clk-mt2701-g3d.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ static const struct mtk_gate g3d_clks[] = {
3535
GATE_G3D(CLK_G3DSYS_CORE, "g3d_core", "mfg_sel", 0),
3636
};
3737

38+
static const struct mtk_clk_rst_desc clk_rst_desc = {
39+
.version = MTK_RST_SIMPLE,
40+
.rst_bank_nr = 1,
41+
.reg_ofs = 0xc,
42+
};
43+
3844
static int clk_mt2701_g3dsys_init(struct platform_device *pdev)
3945
{
4046
struct clk_hw_onecell_data *clk_data;
@@ -52,7 +58,7 @@ static int clk_mt2701_g3dsys_init(struct platform_device *pdev)
5258
"could not register clock provider: %s: %d\n",
5359
pdev->name, r);
5460

55-
mtk_register_reset_controller(node, 1, 0xc, MTK_RST_SIMPLE);
61+
mtk_register_reset_controller(node, &clk_rst_desc);
5662

5763
return r;
5864
}

drivers/clk/mediatek/clk-mt2701-hif.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ static const struct mtk_gate hif_clks[] = {
3333
GATE_HIF(CLK_HIFSYS_PCIE2, "pcie2_clk", "ethpll_500m_ck", 26),
3434
};
3535

36+
static const struct mtk_clk_rst_desc clk_rst_desc = {
37+
.version = MTK_RST_SIMPLE,
38+
.rst_bank_nr = 1,
39+
.reg_ofs = 0x34,
40+
};
41+
3642
static const struct of_device_id of_match_clk_mt2701_hif[] = {
3743
{ .compatible = "mediatek,mt2701-hifsys", },
3844
{}
@@ -57,7 +63,7 @@ static int clk_mt2701_hif_probe(struct platform_device *pdev)
5763
return r;
5864
}
5965

60-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
66+
mtk_register_reset_controller(node, &clk_rst_desc);
6167

6268
return 0;
6369
}

drivers/clk/mediatek/clk-mt2701.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,21 @@ static const struct mtk_fixed_factor infra_fixed_divs[] = {
735735
FACTOR(CLK_INFRA_CLK_13M, "clk13m", "clk26m", 1, 2),
736736
};
737737

738+
static const struct mtk_clk_rst_desc clk_rst_desc[] = {
739+
/* infrasys */
740+
{
741+
.version = MTK_RST_SIMPLE,
742+
.rst_bank_nr = 2,
743+
.reg_ofs = 0x30,
744+
},
745+
/* pericfg */
746+
{
747+
.version = MTK_RST_SIMPLE,
748+
.rst_bank_nr = 2,
749+
.reg_ofs = 0x0,
750+
},
751+
};
752+
738753
static struct clk_hw_onecell_data *infra_clk_data;
739754

740755
static void __init mtk_infrasys_init_early(struct device_node *node)
@@ -787,7 +802,7 @@ static int mtk_infrasys_init(struct platform_device *pdev)
787802
if (r)
788803
return r;
789804

790-
mtk_register_reset_controller(node, 2, 0x30, MTK_RST_SIMPLE);
805+
mtk_register_reset_controller(node, &clk_rst_desc[0]);
791806

792807
return 0;
793808
}
@@ -910,7 +925,7 @@ static int mtk_pericfg_init(struct platform_device *pdev)
910925
if (r)
911926
return r;
912927

913-
mtk_register_reset_controller(node, 2, 0x0, MTK_RST_SIMPLE);
928+
mtk_register_reset_controller(node, &clk_rst_desc[1]);
914929

915930
return 0;
916931
}

drivers/clk/mediatek/clk-mt2712.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,6 +1258,21 @@ static const struct mtk_pll_data plls[] = {
12581258
0, 31, 0x0300, 4, 0, 0, 0, 0x0304, 0),
12591259
};
12601260

1261+
static const struct mtk_clk_rst_desc clk_rst_desc[] = {
1262+
/* infra */
1263+
{
1264+
.version = MTK_RST_SIMPLE,
1265+
.rst_bank_nr = 2,
1266+
.reg_ofs = 0x30,
1267+
},
1268+
/* peri */
1269+
{
1270+
.version = MTK_RST_SIMPLE,
1271+
.rst_bank_nr = 2,
1272+
.reg_ofs = 0x0,
1273+
},
1274+
};
1275+
12611276
static int clk_mt2712_apmixed_probe(struct platform_device *pdev)
12621277
{
12631278
struct clk_hw_onecell_data *clk_data;
@@ -1361,7 +1376,7 @@ static int clk_mt2712_infra_probe(struct platform_device *pdev)
13611376
pr_err("%s(): could not register clock provider: %d\n",
13621377
__func__, r);
13631378

1364-
mtk_register_reset_controller(node, 2, 0x30, MTK_RST_SIMPLE);
1379+
mtk_register_reset_controller(node, &clk_rst_desc[0]);
13651380

13661381
return r;
13671382
}
@@ -1383,7 +1398,7 @@ static int clk_mt2712_peri_probe(struct platform_device *pdev)
13831398
pr_err("%s(): could not register clock provider: %d\n",
13841399
__func__, r);
13851400

1386-
mtk_register_reset_controller(node, 2, 0, MTK_RST_SIMPLE);
1401+
mtk_register_reset_controller(node, &clk_rst_desc[1]);
13871402

13881403
return r;
13891404
}

drivers/clk/mediatek/clk-mt7622-eth.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ static const struct mtk_gate sgmii_clks[] = {
6565
"ssusb_cdr_fb", 5),
6666
};
6767

68+
static const struct mtk_clk_rst_desc clk_rst_desc = {
69+
.version = MTK_RST_SIMPLE,
70+
.rst_bank_nr = 1,
71+
.reg_ofs = 0x34,
72+
};
73+
6874
static int clk_mt7622_ethsys_init(struct platform_device *pdev)
6975
{
7076
struct clk_hw_onecell_data *clk_data;
@@ -82,7 +88,7 @@ static int clk_mt7622_ethsys_init(struct platform_device *pdev)
8288
"could not register clock provider: %s: %d\n",
8389
pdev->name, r);
8490

85-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
91+
mtk_register_reset_controller(node, &clk_rst_desc);
8692

8793
return r;
8894
}

drivers/clk/mediatek/clk-mt7622-hif.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ static const struct mtk_gate pcie_clks[] = {
7676
GATE_PCIE(CLK_SATA_PM_EN, "sata_pm_en", "univpll2_d4", 30),
7777
};
7878

79+
static const struct mtk_clk_rst_desc clk_rst_desc = {
80+
.version = MTK_RST_SIMPLE,
81+
.rst_bank_nr = 1,
82+
.reg_ofs = 0x34,
83+
};
84+
7985
static int clk_mt7622_ssusbsys_init(struct platform_device *pdev)
8086
{
8187
struct clk_hw_onecell_data *clk_data;
@@ -93,7 +99,7 @@ static int clk_mt7622_ssusbsys_init(struct platform_device *pdev)
9399
"could not register clock provider: %s: %d\n",
94100
pdev->name, r);
95101

96-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
102+
mtk_register_reset_controller(node, &clk_rst_desc);
97103

98104
return r;
99105
}
@@ -115,7 +121,7 @@ static int clk_mt7622_pciesys_init(struct platform_device *pdev)
115121
"could not register clock provider: %s: %d\n",
116122
pdev->name, r);
117123

118-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
124+
mtk_register_reset_controller(node, &clk_rst_desc);
119125

120126
return r;
121127
}

drivers/clk/mediatek/clk-mt7622.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,21 @@ static struct mtk_composite peri_muxes[] = {
610610
MUX(CLK_PERIBUS_SEL, "peribus_ck_sel", peribus_ck_parents, 0x05C, 0, 1),
611611
};
612612

613+
static const struct mtk_clk_rst_desc clk_rst_desc[] = {
614+
/* infrasys */
615+
{
616+
.version = MTK_RST_SIMPLE,
617+
.rst_bank_nr = 1,
618+
.reg_ofs = 0x30,
619+
},
620+
/* pericfg */
621+
{
622+
.version = MTK_RST_SIMPLE,
623+
.rst_bank_nr = 2,
624+
.reg_ofs = 0x0,
625+
},
626+
};
627+
613628
static int mtk_topckgen_init(struct platform_device *pdev)
614629
{
615630
struct clk_hw_onecell_data *clk_data;
@@ -663,7 +678,7 @@ static int mtk_infrasys_init(struct platform_device *pdev)
663678
if (r)
664679
return r;
665680

666-
mtk_register_reset_controller(node, 1, 0x30, MTK_RST_SIMPLE);
681+
mtk_register_reset_controller(node, &clk_rst_desc[0]);
667682

668683
return 0;
669684
}
@@ -714,7 +729,7 @@ static int mtk_pericfg_init(struct platform_device *pdev)
714729

715730
clk_prepare_enable(clk_data->hws[CLK_PERI_UART0_PD]->clk);
716731

717-
mtk_register_reset_controller(node, 2, 0x0, MTK_RST_SIMPLE);
732+
mtk_register_reset_controller(node, &clk_rst_desc[1]);
718733

719734
return 0;
720735
}

drivers/clk/mediatek/clk-mt7629-eth.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ static const struct mtk_gate sgmii_clks[2][4] = {
7676
}
7777
};
7878

79+
static const struct mtk_clk_rst_desc clk_rst_desc = {
80+
.version = MTK_RST_SIMPLE,
81+
.rst_bank_nr = 1,
82+
.reg_ofs = 0x34,
83+
};
84+
7985
static int clk_mt7629_ethsys_init(struct platform_device *pdev)
8086
{
8187
struct clk_hw_onecell_data *clk_data;
@@ -92,7 +98,7 @@ static int clk_mt7629_ethsys_init(struct platform_device *pdev)
9298
"could not register clock provider: %s: %d\n",
9399
pdev->name, r);
94100

95-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
101+
mtk_register_reset_controller(node, &clk_rst_desc);
96102

97103
return r;
98104
}

drivers/clk/mediatek/clk-mt7629-hif.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ static const struct mtk_gate pcie_clks[] = {
7171
GATE_PCIE(CLK_PCIE_P0_PIPE_EN, "pcie_p0_pipe_en", "pcie0_pipe_en", 23),
7272
};
7373

74+
static const struct mtk_clk_rst_desc clk_rst_desc = {
75+
.version = MTK_RST_SIMPLE,
76+
.rst_bank_nr = 1,
77+
.reg_ofs = 0x34,
78+
};
79+
7480
static int clk_mt7629_ssusbsys_init(struct platform_device *pdev)
7581
{
7682
struct clk_hw_onecell_data *clk_data;
@@ -88,7 +94,7 @@ static int clk_mt7629_ssusbsys_init(struct platform_device *pdev)
8894
"could not register clock provider: %s: %d\n",
8995
pdev->name, r);
9096

91-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
97+
mtk_register_reset_controller(node, &clk_rst_desc);
9298

9399
return r;
94100
}
@@ -110,7 +116,7 @@ static int clk_mt7629_pciesys_init(struct platform_device *pdev)
110116
"could not register clock provider: %s: %d\n",
111117
pdev->name, r);
112118

113-
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
119+
mtk_register_reset_controller(node, &clk_rst_desc);
114120

115121
return r;
116122
}

0 commit comments

Comments
 (0)