[PATCH 15/32] clk: mediatek: mt6735-apmixedsys: Switch to common probe/remove helpers
Akari Tsuyukusa <[email protected]> Mon, 3 Aug 2026 23:16:42 +0900
| Newsgroups | org.infradead.lists.linux-mediatek,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
The MT6735 apmixedsys driver can use the MediaTek clock framework common initialization sequence. Reduce boilerplate code by creating struct mtk_clk_desc and using the mtk_clk_simple_probe/remove helpers. Signed-off-by: Akari Tsuyukusa <[email protected]> --- drivers/clk/mediatek/clk-mt6735-apmixedsys.c | 48 +++----------------- 1 file changed, 7 insertions(+), 41 deletions(-) diff --git a/drivers/clk/mediatek/clk-mt6735-apmixedsys.c b/drivers/clk/mediatek/clk-mt6735-apmixedsys.c index 9e30c089a209..94cb0bee8bb4 100644 --- a/drivers/clk/mediatek/clk-mt6735-apmixedsys.c +++ b/drivers/clk/mediatek/clk-mt6735-apmixedsys.c @@ -77,54 +77,20 @@ static const struct mtk_pll_data apmixedsys_plls[] = { PLL(CLK_APMIXED_APLL2, "apll2", APLL2_CON0, APLL2_PWR_CON0, 0x00000001, 0, APLL2_CON0, 4, APLL2_CON2, AP_PLL_CON_5, 1, APLL2_CON1, 31, 0) }; -static int clk_mt6735_apmixed_probe(struct platform_device *pdev) -{ - void __iomem *base; - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - struct clk_hw_onecell_data *clk_data; - int ret; - - base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - clk_data = mtk_devm_alloc_clk_data(&pdev->dev, ARRAY_SIZE(apmixedsys_plls)); - if (!clk_data) - return -ENOMEM; - platform_set_drvdata(pdev, clk_data); - - ret = mtk_clk_register_plls(&pdev->dev, apmixedsys_plls, - ARRAY_SIZE(apmixedsys_plls), clk_data); - if (ret) { - dev_err(&pdev->dev, "Failed to register PLLs: %d\n", ret); - return ret; - } - - ret = devm_of_clk_add_hw_provider(&pdev->dev, of_clk_hw_onecell_get, - clk_data); - if (ret) - dev_err(&pdev->dev, - "Failed to register clock provider: %d\n", ret); - - return ret; -} - -static void clk_mt6735_apmixed_remove(struct platform_device *pdev) -{ - struct clk_hw_onecell_data *clk_data = platform_get_drvdata(pdev); - - mtk_clk_unregister_plls(apmixedsys_plls, ARRAY_SIZE(apmixedsys_plls), clk_data); -} +static const struct mtk_clk_desc apmixed_desc = { + .plls = apmixedsys_plls, + .num_plls = ARRAY_SIZE(apmixedsys_plls), +}; static const struct of_device_id of_match_mt6735_apmixedsys[] = { - { .compatible = "mediatek,mt6735-apmixedsys" }, + { .compatible = "mediatek,mt6735-apmixedsys", .data = &apmixed_desc }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, of_match_mt6735_apmixedsys); static struct platform_driver clk_mt6735_apmixedsys = { - .probe = clk_mt6735_apmixed_probe, - .remove = clk_mt6735_apmixed_remove, + .probe = mtk_clk_simple_probe, + .remove = mtk_clk_simple_remove, .driver = { .name = "clk-mt6735-apmixedsys", .of_match_table = of_match_mt6735_apmixedsys, -- 2.55.0