diff options
| author | David Lechner <dlechner@baylibre.com> | 2026-01-07 10:21:12 -0600 |
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2026-01-12 13:35:03 -0600 |
| commit | 4cc0f1b31857d57a980ac16f626ddb57bc3a5610 (patch) | |
| tree | 48aa4688727735b0dcbaa9354cca7580ecc65a86 /drivers/clk | |
| parent | 72f56becc003f9cad9e15c5174ba29fcd793c6bc (diff) | |
clk: mediatek: mt8365: split struct mtk_clk_tree
Split the struct mtk_clk_tree for MT8365 into separate structures for
the apmixedsys, topckgen and infracfg clock controllers. This is needed
to support moving the topckgen gates into the struct mtk_clk_tree. Since
apmixedsys can also have gates, we need separate structures.
Signed-off-by: David Lechner <dlechner@baylibre.com>
Diffstat (limited to 'drivers/clk')
| -rw-r--r-- | drivers/clk/mediatek/clk-mt8365.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/clk/mediatek/clk-mt8365.c b/drivers/clk/mediatek/clk-mt8365.c index 4d0a0487b57..eaa5c2cf0dc 100644 --- a/drivers/clk/mediatek/clk-mt8365.c +++ b/drivers/clk/mediatek/clk-mt8365.c @@ -67,6 +67,13 @@ static const struct mtk_pll_data apmixed_plls[] = { 0x03A4, 0, 0, 0), }; +static const struct mtk_clk_tree mt8365_apmixed_tree = { + .xtal_rate = 26 * MHZ, + .xtal2_rate = 26 * MHZ, + .plls = apmixed_plls, + .num_plls = ARRAY_SIZE(apmixed_plls), +}; + /* topckgen */ #define FIXED_CLK0(_id, _rate) \ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate) @@ -493,16 +500,13 @@ static const struct mtk_composite top_muxes[] = { MUX_GATE(CLK_TOP_APU_IF_SEL, apu_parents, 0x0e0, 24, 3, 31), }; -static const struct mtk_clk_tree mt8365_clk_tree = { +static const struct mtk_clk_tree mt8365_topckgen_tree = { .xtal_rate = 26 * MHZ, - .xtal2_rate = 26 * MHZ, .fdivs_offs = CLK_TOP_MFGPLL, .muxes_offs = CLK_TOP_AXI_SEL, - .plls = apmixed_plls, .fclks = top_fixed_clks, .fdivs = top_divs, .muxes = top_muxes, - .num_plls = ARRAY_SIZE(apmixed_plls), .num_fclks = ARRAY_SIZE(top_fixed_clks), .num_fdivs = ARRAY_SIZE(top_divs), .num_muxes = ARRAY_SIZE(top_muxes), @@ -707,26 +711,30 @@ static const struct mtk_gate ifr_clks[] = { GATE_IFR6(CLK_IFR_SSUSB_XHCI, CLK_TOP_SSUSB_XHCI_SEL, 11), }; +static const struct mtk_clk_tree mt8365_infracfg_tree = { + .xtal_rate = 26 * MHZ, +}; + static int mt8365_apmixedsys_probe(struct udevice *dev) { - return mtk_common_clk_init(dev, &mt8365_clk_tree); + return mtk_common_clk_init(dev, &mt8365_apmixed_tree); } static int mt8365_topckgen_probe(struct udevice *dev) { - return mtk_common_clk_init(dev, &mt8365_clk_tree); + return mtk_common_clk_init(dev, &mt8365_topckgen_tree); } static int mt8365_topckgen_cg_probe(struct udevice *dev) { - return mtk_common_clk_gate_init(dev, &mt8365_clk_tree, top_clk_gates, + return mtk_common_clk_gate_init(dev, &mt8365_topckgen_tree, top_clk_gates, ARRAY_SIZE(top_clk_gates), CLK_TOP_AUD_I2S0_M); } static int mt8365_infracfg_probe(struct udevice *dev) { - return mtk_common_clk_gate_init(dev, &mt8365_clk_tree, ifr_clks, + return mtk_common_clk_gate_init(dev, &mt8365_infracfg_tree, ifr_clks, ARRAY_SIZE(ifr_clks), 0); } |
