Skip to content

Commit 370bf62

Browse files
mtk-rex-bc-chenbebarino
authored andcommitted
clk: mediatek: reset: Merge and revise reset register function
There are two versions for clock reset register control for MediaTek SoCs. The old hardware is one bit per reset control, and does not have separate registers for bit set, clear and read-back operations. This matches the scheme supported by the simple reset driver. However, because we need to use different data structure from reset_simple_data, we can not use the operation of simple reset driver. For this reason, we keep the original functions and name this version as "MTK_RST_SIMPLE". In this patch: - Add a version enumeration to separate different reset hardware. - Merge the reset register function of simple and set_clr into one function "mtk_register_reset_controller". - Rename input variable "num_regs" to "rst_bank_nr" to avoid confusion. This variable is used to define the quantity of reset bank. - Document mtk_reset_version and mtk_register_reset_controller. 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-6-rex-bc.chen@mediatek.com Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent 1142575 commit 370bf62

15 files changed

Lines changed: 61 additions & 46 deletions

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ static int clk_mt2701_eth_probe(struct platform_device *pdev)
5858
"could not register clock provider: %s: %d\n",
5959
pdev->name, r);
6060

61-
mtk_register_reset_controller(node, 1, 0x34);
61+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
6262

6363
return r;
6464
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ static int clk_mt2701_g3dsys_init(struct platform_device *pdev)
5252
"could not register clock provider: %s: %d\n",
5353
pdev->name, r);
5454

55-
mtk_register_reset_controller(node, 1, 0xc);
55+
mtk_register_reset_controller(node, 1, 0xc, MTK_RST_SIMPLE);
5656

5757
return r;
5858
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static int clk_mt2701_hif_probe(struct platform_device *pdev)
5757
return r;
5858
}
5959

60-
mtk_register_reset_controller(node, 1, 0x34);
60+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
6161

6262
return 0;
6363
}

drivers/clk/mediatek/clk-mt2701.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ static int mtk_infrasys_init(struct platform_device *pdev)
787787
if (r)
788788
return r;
789789

790-
mtk_register_reset_controller(node, 2, 0x30);
790+
mtk_register_reset_controller(node, 2, 0x30, MTK_RST_SIMPLE);
791791

792792
return 0;
793793
}
@@ -910,7 +910,7 @@ static int mtk_pericfg_init(struct platform_device *pdev)
910910
if (r)
911911
return r;
912912

913-
mtk_register_reset_controller(node, 2, 0x0);
913+
mtk_register_reset_controller(node, 2, 0x0, MTK_RST_SIMPLE);
914914

915915
return 0;
916916
}

drivers/clk/mediatek/clk-mt2712.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,7 +1361,7 @@ static int clk_mt2712_infra_probe(struct platform_device *pdev)
13611361
pr_err("%s(): could not register clock provider: %d\n",
13621362
__func__, r);
13631363

1364-
mtk_register_reset_controller(node, 2, 0x30);
1364+
mtk_register_reset_controller(node, 2, 0x30, MTK_RST_SIMPLE);
13651365

13661366
return r;
13671367
}
@@ -1383,7 +1383,7 @@ static int clk_mt2712_peri_probe(struct platform_device *pdev)
13831383
pr_err("%s(): could not register clock provider: %d\n",
13841384
__func__, r);
13851385

1386-
mtk_register_reset_controller(node, 2, 0);
1386+
mtk_register_reset_controller(node, 2, 0, MTK_RST_SIMPLE);
13871387

13881388
return r;
13891389
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ static int clk_mt7622_ethsys_init(struct platform_device *pdev)
8282
"could not register clock provider: %s: %d\n",
8383
pdev->name, r);
8484

85-
mtk_register_reset_controller(node, 1, 0x34);
85+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
8686

8787
return r;
8888
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ static int clk_mt7622_ssusbsys_init(struct platform_device *pdev)
9393
"could not register clock provider: %s: %d\n",
9494
pdev->name, r);
9595

96-
mtk_register_reset_controller(node, 1, 0x34);
96+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
9797

9898
return r;
9999
}
@@ -115,7 +115,7 @@ static int clk_mt7622_pciesys_init(struct platform_device *pdev)
115115
"could not register clock provider: %s: %d\n",
116116
pdev->name, r);
117117

118-
mtk_register_reset_controller(node, 1, 0x34);
118+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
119119

120120
return r;
121121
}

drivers/clk/mediatek/clk-mt7622.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ static int mtk_infrasys_init(struct platform_device *pdev)
663663
if (r)
664664
return r;
665665

666-
mtk_register_reset_controller(node, 1, 0x30);
666+
mtk_register_reset_controller(node, 1, 0x30, MTK_RST_SIMPLE);
667667

668668
return 0;
669669
}
@@ -714,7 +714,7 @@ static int mtk_pericfg_init(struct platform_device *pdev)
714714

715715
clk_prepare_enable(clk_data->hws[CLK_PERI_UART0_PD]->clk);
716716

717-
mtk_register_reset_controller(node, 2, 0x0);
717+
mtk_register_reset_controller(node, 2, 0x0, MTK_RST_SIMPLE);
718718

719719
return 0;
720720
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ static int clk_mt7629_ethsys_init(struct platform_device *pdev)
9292
"could not register clock provider: %s: %d\n",
9393
pdev->name, r);
9494

95-
mtk_register_reset_controller(node, 1, 0x34);
95+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
9696

9797
return r;
9898
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ static int clk_mt7629_ssusbsys_init(struct platform_device *pdev)
8888
"could not register clock provider: %s: %d\n",
8989
pdev->name, r);
9090

91-
mtk_register_reset_controller(node, 1, 0x34);
91+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
9292

9393
return r;
9494
}
@@ -110,7 +110,7 @@ static int clk_mt7629_pciesys_init(struct platform_device *pdev)
110110
"could not register clock provider: %s: %d\n",
111111
pdev->name, r);
112112

113-
mtk_register_reset_controller(node, 1, 0x34);
113+
mtk_register_reset_controller(node, 1, 0x34, MTK_RST_SIMPLE);
114114

115115
return r;
116116
}

0 commit comments

Comments
 (0)