Commit 01a6c1ab authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno Committed by Stephen Boyd
Browse files

clk: mediatek: clk-mtk: Propagate struct device for composites



Like done for cpumux clocks, propagate struct device for composite
clocks registered through clk-mtk helpers to be able to get runtime
pm support for MTK clocks.

Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: default avatarMiles Chen <miles.chen@mediatek.com>
Link: https://lore.kernel.org/r/20230120092053.182923-6-angelogioacchino.delregno@collabora.com


Tested-by: default avatarMingming Su <mingming.su@mediatek.com>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent f0b3140f
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -683,8 +683,9 @@ static int mtk_topckgen_init(struct platform_device *pdev)
	mtk_clk_register_factors(top_fixed_divs, ARRAY_SIZE(top_fixed_divs),
								clk_data);

	mtk_clk_register_composites(top_muxes, ARRAY_SIZE(top_muxes),
				base, &mt2701_clk_lock, clk_data);
	mtk_clk_register_composites(&pdev->dev, top_muxes,
				    ARRAY_SIZE(top_muxes), base,
				    &mt2701_clk_lock, clk_data);

	mtk_clk_register_dividers(top_adj_divs, ARRAY_SIZE(top_adj_divs),
				base, &mt2701_clk_lock, clk_data);
@@ -921,7 +922,8 @@ static int mtk_pericfg_init(struct platform_device *pdev)
	mtk_clk_register_gates(&pdev->dev, node, peri_clks,
			       ARRAY_SIZE(peri_clks), clk_data);

	mtk_clk_register_composites(peri_muxs, ARRAY_SIZE(peri_muxs), base,
	mtk_clk_register_composites(&pdev->dev, peri_muxs,
				    ARRAY_SIZE(peri_muxs), base,
				    &mt2701_clk_lock, clk_data);

	r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
+8 −4
Original line number Diff line number Diff line
@@ -1346,7 +1346,8 @@ static int clk_mt2712_top_probe(struct platform_device *pdev)
	mtk_clk_register_factors(top_early_divs, ARRAY_SIZE(top_early_divs),
			top_clk_data);
	mtk_clk_register_factors(top_divs, ARRAY_SIZE(top_divs), top_clk_data);
	mtk_clk_register_composites(top_muxes, ARRAY_SIZE(top_muxes), base,
	mtk_clk_register_composites(&pdev->dev, top_muxes,
				    ARRAY_SIZE(top_muxes), base,
				    &mt2712_clk_lock, top_clk_data);
	mtk_clk_register_dividers(top_adj_divs, ARRAY_SIZE(top_adj_divs), base,
			&mt2712_clk_lock, top_clk_data);
@@ -1421,8 +1422,11 @@ static int clk_mt2712_mcu_probe(struct platform_device *pdev)

	clk_data = mtk_alloc_clk_data(CLK_MCU_NR_CLK);

	mtk_clk_register_composites(mcu_muxes, ARRAY_SIZE(mcu_muxes), base,
	r = mtk_clk_register_composites(&pdev->dev, mcu_muxes,
					ARRAY_SIZE(mcu_muxes), base,
					&mt2712_clk_lock, clk_data);
	if (r)
		dev_err(&pdev->dev, "Could not register composites: %d\n", r);

	r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);

+6 −4
Original line number Diff line number Diff line
@@ -1247,11 +1247,13 @@ static int clk_mt6779_top_probe(struct platform_device *pdev)
	mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes),
			       node, &mt6779_clk_lock, clk_data);

	mtk_clk_register_composites(top_aud_muxes, ARRAY_SIZE(top_aud_muxes),
				    base, &mt6779_clk_lock, clk_data);
	mtk_clk_register_composites(&pdev->dev, top_aud_muxes,
				    ARRAY_SIZE(top_aud_muxes), base,
				    &mt6779_clk_lock, clk_data);

	mtk_clk_register_composites(top_aud_divs, ARRAY_SIZE(top_aud_divs),
				    base, &mt6779_clk_lock, clk_data);
	mtk_clk_register_composites(&pdev->dev, top_aud_divs,
				    ARRAY_SIZE(top_aud_divs), base,
				    &mt6779_clk_lock, clk_data);

	return of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
}
+2 −1
Original line number Diff line number Diff line
@@ -114,7 +114,8 @@ static int clk_mt6795_pericfg_probe(struct platform_device *pdev)
	if (ret)
		goto free_clk_data;

	ret = mtk_clk_register_composites(peri_clks, ARRAY_SIZE(peri_clks), base,
	ret = mtk_clk_register_composites(&pdev->dev, peri_clks,
					  ARRAY_SIZE(peri_clks), base,
					  &mt6795_peri_clk_lock, clk_data);
	if (ret)
		goto unregister_gates;
+2 −1
Original line number Diff line number Diff line
@@ -557,7 +557,8 @@ static int clk_mt6795_topckgen_probe(struct platform_device *pdev)
	if (ret)
		goto unregister_factors;

	ret = mtk_clk_register_composites(top_aud_divs, ARRAY_SIZE(top_aud_divs), base,
	ret = mtk_clk_register_composites(&pdev->dev, top_aud_divs,
					  ARRAY_SIZE(top_aud_divs), base,
					  &mt6795_top_clk_lock, clk_data);
	if (ret)
		goto unregister_muxes;
Loading