Convert all parent clock arrays to use struct mtk_parent. This will
allow us to simplify core code later by having only one possible data
type for mux parent arrays.

Signed-off-by: David Lechner <[email protected]>
---
 drivers/clk/mediatek/clk-mt8518.c | 2206 ++++++++++++++++++-------------------
 1 file changed, 1103 insertions(+), 1103 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8518.c 
b/drivers/clk/mediatek/clk-mt8518.c
index c19828def06..cb798f9985f 100644
--- a/drivers/clk/mediatek/clk-mt8518.c
+++ b/drivers/clk/mediatek/clk-mt8518.c
@@ -134,1125 +134,1125 @@ static const struct mtk_fixed_factor top_fixed_divs[] 
= {
        FACTOR1(CLK_TOP_AHB_INFRA_D2, CLK_TOP_AXIBUS_SEL, 1, 2),
 };
 
-static const int uart0_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D24
-};
-
-static const int emi1x_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_DMPLL
-};
-
-static const int emi_ddrphy_parents[] = {
-       CLK_TOP_EMI1X_SEL,
-       CLK_TOP_EMI1X_SEL
-};
-
-static const int msdc1_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MMPLL_D2,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D12
-};
-
-static const int pwm_mm_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D12
-};
-
-static const int pmicspi_parents[] = {
-       CLK_TOP_UNIVPLL_D20,
-       CLK_TOP_USB20_48M,
-       CLK_TOP_UNIVPLL_D16,
-       CLK_TOP_CLK26M,
-       CLK_TOP_CLK26M_D2
-};
-
-static const int nfi2x_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D4,
-       CLK_TOP_MAINPLL_D5,
-       CLK_TOP_MAINPLL_D6,
-       CLK_TOP_MAINPLL_D7,
-       CLK_TOP_MAINPLL_D8,
-       CLK_TOP_MAINPLL_D10,
-       CLK_TOP_MAINPLL_D12
-};
-
-static const int ddrphycfg_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D16
-};
-
-static const int smi_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D4,
-       CLK_TOP_MAINPLL_D7,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D14
-};
-
-static const int usb_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D16,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D20
-};
-
-static const int spinor_parents[] = {
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D40,
-       CLK_TOP_UNIVPLL_D24,
-       CLK_TOP_UNIVPLL_D20,
-       CLK_TOP_MAINPLL_D20,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_UNIVPLL_D12
-};
-
-static const int eth_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D40,
-       CLK_TOP_UNIVPLL_D24,
-       CLK_TOP_UNIVPLL_D20,
-       CLK_TOP_MAINPLL_D20
-};
-
-static const int aud1_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_APLL1_SRC_SEL
-};
-
-static const int aud2_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_APLL2_SRC_SEL
-};
-
-static const int i2c_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_USB20_48M,
-       CLK_TOP_UNIVPLL_D12,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_UNIVPLL_D8
-};
-
-static const int aud_i2s0_m_parents[] = {
-       CLK_TOP_AUD1,
-       CLK_TOP_AUD2
-};
-
-static const int aud_spdifin_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D2,
-       CLK_TOP_TVDPLL
-};
-
-static const int dbg_atclk_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D5,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D5
-};
-
-static const int png_sys_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_MAINPLL_D7,
-       CLK_TOP_MAINPLL_D6,
-       CLK_TOP_MAINPLL_D5,
-       CLK_TOP_UNIVPLL_D3
-};
-
-static const int sej_13m_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_CLK26M_D2
-};
-
-static const int imgrz_sys_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D6,
-       CLK_TOP_MAINPLL_D7,
-       CLK_TOP_MAINPLL_D5,
-       CLK_TOP_UNIVPLL_D4,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_UNIVPLL_D5,
-       CLK_TOP_UNIVPLL_D6
-};
-
-static const int graph_eclk_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D6,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_UNIVPLL_D16,
-       CLK_TOP_MAINPLL_D7,
-       CLK_TOP_UNIVPLL_D4,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_UNIVPLL_D24,
-       CLK_TOP_MAINPLL_D8
-};
-
-static const int fdbi_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D12,
-       CLK_TOP_MAINPLL_D14,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_UNIVPLL_D12,
-       CLK_TOP_UNIVPLL_D16,
-       CLK_TOP_UNIVPLL_D24,
-       CLK_TOP_TVDPLL_D2,
-       CLK_TOP_TVDPLL_D4,
-       CLK_TOP_TVDPLL_D8,
-       CLK_TOP_TVDPLL_D16
-};
-
-static const int faudio_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D24,
-       CLK_TOP_APLL1_D4,
-       CLK_TOP_APLL2_D4
-};
-
-static const int fa2sys_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_APLL1_SRC_SEL,
-       CLK_TOP_RG_APLL1_D2,
-       CLK_TOP_RG_APLL1_D4,
-       CLK_TOP_RG_APLL1_D8,
-       CLK_TOP_RG_APLL1_D16,
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_RG_APLL1_D3
-};
-
-static const int fa1sys_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_APLL2_SRC_SEL,
-       CLK_TOP_RG_APLL2_D2,
-       CLK_TOP_RG_APLL2_D4,
-       CLK_TOP_RG_APLL2_D8,
-       CLK_TOP_RG_APLL2_D16,
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_RG_APLL2_D3
-};
-
-static const int fasm_m_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D12,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_MAINPLL_D7
-};
-
-static const int fecc_ck_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D4,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D3,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D3
-};
-
-static const int pe2_mac_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D11,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_UNIVPLL_D12,
-       CLK_TOP_UNIVPLL_D10
-};
-
-static const int cmsys_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D5,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_MAINPLL_D5,
-       CLK_TOP_APLL2,
-       CLK_TOP_APLL2_D2,
-       CLK_TOP_APLL2_D4,
-       CLK_TOP_APLL2_D3
-};
-
-static const int gcpu_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D4,
-       CLK_TOP_MAINPLL_D5,
-       CLK_TOP_MAINPLL_D6,
-       CLK_TOP_MAINPLL_D7,
-       CLK_TOP_UNIVPLL_D4,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_UNIVPLL_D3
-};
-
-static const int spis_ck_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D12,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D5,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D4,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D4,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D3
-};
-
-static const int apll1_ref_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL
-};
-
-static const int int_32k_parents[] = {
-       CLK_TOP_CLK32K,
-       CLK_TOP_CLK26M_D793
-};
-
-static const int apll1_src_parents[] = {
-       CLK_TOP_APLL1,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL
-};
-
-static const int apll2_src_parents[] = {
-       CLK_TOP_APLL2,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL
-};
-
-static const int faud_intbus_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D11,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_RG_APLL2_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_RG_APLL1_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D20
-};
-
-static const int axibus_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_MAINPLL_D11,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D12,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_APLL2_D8
-};
-
-static const int hapll1_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_APLL1_SRC_SEL,
-       CLK_TOP_RG_APLL1_D2,
-       CLK_TOP_RG_APLL1_D4,
-       CLK_TOP_RG_APLL1_D8,
-       CLK_TOP_RG_APLL1_D16,
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_CLK26M_D8,
-       CLK_TOP_RG_APLL1_D3
-};
-
-static const int hapll2_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_APLL2_SRC_SEL,
-       CLK_TOP_RG_APLL2_D2,
-       CLK_TOP_RG_APLL2_D4,
-       CLK_TOP_RG_APLL2_D8,
-       CLK_TOP_RG_APLL2_D16,
-       CLK_TOP_CLK26M_D2,
-       CLK_TOP_CLK26M_D4,
-       CLK_TOP_RG_APLL2_D3
-};
-
-static const int spinfi_parents[] = {
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D24,
-       CLK_TOP_UNIVPLL_D20,
-       CLK_TOP_MAINPLL_D22,
-       CLK_TOP_UNIVPLL_D16,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_UNIVPLL_D12,
-       CLK_TOP_UNIVPLL_D10,
-       CLK_TOP_MAINPLL_D11
-};
-
-static const int msdc0_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D12,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_APMIXED_MMPLL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MMPLL_D2
-};
-
-static const int msdc0_clk50_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D6
-};
-
-static const int msdc2_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_UNIVPLL_D6,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_UNIVPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D16,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MMPLL_D2,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_MAINPLL_D12,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_APMIXED_MMPLL
-};
-
-static const int disp_dpi_ck_parents[] = {
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK26M,
-       CLK_TOP_TVDPLL_D2,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_TVDPLL_D4,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_TVDPLL_D8,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_CLK_NULL,
-       CLK_TOP_TVDPLL_D16
+static const struct mtk_parent uart0_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+};
+
+static const struct mtk_parent emi1x_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_DMPLL),
+};
+
+static const struct mtk_parent emi_ddrphy_parents[] = {
+       TOP_PARENT(CLK_TOP_EMI1X_SEL),
+       TOP_PARENT(CLK_TOP_EMI1X_SEL),
+};
+
+static const struct mtk_parent msdc1_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MMPLL_D2),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D12),
+};
+
+static const struct mtk_parent pwm_mm_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+};
+
+static const struct mtk_parent pmicspi_parents[] = {
+       TOP_PARENT(CLK_TOP_UNIVPLL_D20),
+       TOP_PARENT(CLK_TOP_USB20_48M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D16),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+};
+
+static const struct mtk_parent nfi2x_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D4),
+       TOP_PARENT(CLK_TOP_MAINPLL_D5),
+       TOP_PARENT(CLK_TOP_MAINPLL_D6),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+       TOP_PARENT(CLK_TOP_MAINPLL_D8),
+       TOP_PARENT(CLK_TOP_MAINPLL_D10),
+       TOP_PARENT(CLK_TOP_MAINPLL_D12),
+};
+
+static const struct mtk_parent ddrphycfg_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+};
+
+static const struct mtk_parent smi_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D4),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D14),
+};
+
+static const struct mtk_parent usb_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D16),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D20),
+};
+
+static const struct mtk_parent spinor_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D40),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D20),
+       TOP_PARENT(CLK_TOP_MAINPLL_D20),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+};
+
+static const struct mtk_parent eth_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D40),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D20),
+       TOP_PARENT(CLK_TOP_MAINPLL_D20),
+};
+
+static const struct mtk_parent aud1_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_APLL1_SRC_SEL),
+};
+
+static const struct mtk_parent aud2_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_APLL2_SRC_SEL),
+};
+
+static const struct mtk_parent i2c_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_USB20_48M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+};
+
+static const struct mtk_parent aud_i2s0_m_parents[] = {
+       TOP_PARENT(CLK_TOP_AUD1),
+       TOP_PARENT(CLK_TOP_AUD2),
+};
+
+static const struct mtk_parent aud_spdifin_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D2),
+       TOP_PARENT(CLK_TOP_TVDPLL),
+};
+
+static const struct mtk_parent dbg_atclk_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D5),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D5),
+};
+
+static const struct mtk_parent png_sys_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+       TOP_PARENT(CLK_TOP_MAINPLL_D6),
+       TOP_PARENT(CLK_TOP_MAINPLL_D5),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D3),
+};
+
+static const struct mtk_parent sej_13m_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+};
+
+static const struct mtk_parent imgrz_sys_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D6),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+       TOP_PARENT(CLK_TOP_MAINPLL_D5),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D4),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D5),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+};
+
+static const struct mtk_parent graph_eclk_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D6),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D16),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D4),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+       TOP_PARENT(CLK_TOP_MAINPLL_D8),
+};
+
+static const struct mtk_parent fdbi_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D12),
+       TOP_PARENT(CLK_TOP_MAINPLL_D14),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D16),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+       TOP_PARENT(CLK_TOP_TVDPLL_D2),
+       TOP_PARENT(CLK_TOP_TVDPLL_D4),
+       TOP_PARENT(CLK_TOP_TVDPLL_D8),
+       TOP_PARENT(CLK_TOP_TVDPLL_D16),
+};
+
+static const struct mtk_parent faudio_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+       TOP_PARENT(CLK_TOP_APLL1_D4),
+       TOP_PARENT(CLK_TOP_APLL2_D4),
+};
+
+static const struct mtk_parent fa2sys_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_APLL1_SRC_SEL),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D2),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D4),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D8),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D16),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D3),
+};
+
+static const struct mtk_parent fa1sys_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_APLL2_SRC_SEL),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D2),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D4),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D8),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D16),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D3),
+};
+
+static const struct mtk_parent fasm_m_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+};
+
+static const struct mtk_parent fecc_ck_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D4),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D3),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D3),
+};
+
+static const struct mtk_parent pe2_mac_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D11),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+};
+
+static const struct mtk_parent cmsys_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D5),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_MAINPLL_D5),
+       TOP_PARENT(CLK_TOP_APLL2),
+       TOP_PARENT(CLK_TOP_APLL2_D2),
+       TOP_PARENT(CLK_TOP_APLL2_D4),
+       TOP_PARENT(CLK_TOP_APLL2_D3),
+};
+
+static const struct mtk_parent gcpu_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D4),
+       TOP_PARENT(CLK_TOP_MAINPLL_D5),
+       TOP_PARENT(CLK_TOP_MAINPLL_D6),
+       TOP_PARENT(CLK_TOP_MAINPLL_D7),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D4),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D3),
+};
+
+static const struct mtk_parent spis_ck_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D5),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D4),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D4),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D3),
+};
+
+static const struct mtk_parent apll1_ref_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+};
+
+static const struct mtk_parent int_32k_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK32K),
+       TOP_PARENT(CLK_TOP_CLK26M_D793),
+};
+
+static const struct mtk_parent apll1_src_parents[] = {
+       TOP_PARENT(CLK_TOP_APLL1),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+};
+
+static const struct mtk_parent apll2_src_parents[] = {
+       TOP_PARENT(CLK_TOP_APLL2),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+};
+
+static const struct mtk_parent faud_intbus_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D11),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D20),
+};
+
+static const struct mtk_parent axibus_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_MAINPLL_D11),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D12),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_APLL2_D8),
+};
+
+static const struct mtk_parent hapll1_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_APLL1_SRC_SEL),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D2),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D4),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D8),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D16),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_CLK26M_D8),
+       TOP_PARENT(CLK_TOP_RG_APLL1_D3),
+};
+
+static const struct mtk_parent hapll2_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_APLL2_SRC_SEL),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D2),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D4),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D8),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D16),
+       TOP_PARENT(CLK_TOP_CLK26M_D2),
+       TOP_PARENT(CLK_TOP_CLK26M_D4),
+       TOP_PARENT(CLK_TOP_RG_APLL2_D3),
+};
+
+static const struct mtk_parent spinfi_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D24),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D20),
+       TOP_PARENT(CLK_TOP_MAINPLL_D22),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D16),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D12),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D10),
+       TOP_PARENT(CLK_TOP_MAINPLL_D11),
+};
+
+static const struct mtk_parent msdc0_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D12),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_APMIXED_MMPLL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MMPLL_D2),
+};
+
+static const struct mtk_parent msdc0_clk50_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D6),
+};
+
+static const struct mtk_parent msdc2_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D6),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_UNIVPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D16),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MMPLL_D2),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_MAINPLL_D12),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_APMIXED_MMPLL),
+};
+
+static const struct mtk_parent disp_dpi_ck_parents[] = {
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK26M),
+       TOP_PARENT(CLK_TOP_TVDPLL_D2),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_TVDPLL_D4),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_TVDPLL_D8),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_CLK_NULL),
+       TOP_PARENT(CLK_TOP_TVDPLL_D16),
 };
 
 static const struct mtk_composite top_muxes[] = {
        /* CLK_MUX_SEL0 */
-       MUX(CLK_TOP_UART0_SEL, uart0_parents, 0x000, 0, 1),
-       MUX(CLK_TOP_EMI1X_SEL, emi1x_parents, 0x000, 1, 1),
-       MUX(CLK_TOP_EMI_DDRPHY_SEL, emi_ddrphy_parents, 0x000, 2, 1),
-       MUX(CLK_TOP_MSDC1_SEL, msdc1_parents, 0x000, 4, 8),
-       MUX(CLK_TOP_PWM_MM_SEL, pwm_mm_parents, 0x000, 18, 1),
-       MUX(CLK_TOP_UART1_SEL, uart0_parents, 0x000, 19, 1),
-       MUX(CLK_TOP_SPM_52M_SEL, uart0_parents, 0x000, 22, 1),
-       MUX(CLK_TOP_PMICSPI_SEL, pmicspi_parents, 0x000, 23, 3),
+       MUX_MIXED(CLK_TOP_UART0_SEL, uart0_parents, 0x000, 0, 1),
+       MUX_MIXED(CLK_TOP_EMI1X_SEL, emi1x_parents, 0x000, 1, 1),
+       MUX_MIXED(CLK_TOP_EMI_DDRPHY_SEL, emi_ddrphy_parents, 0x000, 2, 1),
+       MUX_MIXED(CLK_TOP_MSDC1_SEL, msdc1_parents, 0x000, 4, 8),
+       MUX_MIXED(CLK_TOP_PWM_MM_SEL, pwm_mm_parents, 0x000, 18, 1),
+       MUX_MIXED(CLK_TOP_UART1_SEL, uart0_parents, 0x000, 19, 1),
+       MUX_MIXED(CLK_TOP_SPM_52M_SEL, uart0_parents, 0x000, 22, 1),
+       MUX_MIXED(CLK_TOP_PMICSPI_SEL, pmicspi_parents, 0x000, 23, 3),
        /* CLK_MUX_SEL1 */
-       MUX(CLK_TOP_NFI2X_SEL, nfi2x_parents, 0x004, 0, 3),
-       MUX(CLK_TOP_DDRPHYCFG_SEL, ddrphycfg_parents, 0x004, 15, 1),
-       MUX(CLK_TOP_SMI_SEL, smi_parents, 0x004, 16, 4),
-       MUX(CLK_TOP_USB_SEL, usb_parents, 0x004, 20, 3),
+       MUX_MIXED(CLK_TOP_NFI2X_SEL, nfi2x_parents, 0x004, 0, 3),
+       MUX_MIXED(CLK_TOP_DDRPHYCFG_SEL, ddrphycfg_parents, 0x004, 15, 1),
+       MUX_MIXED(CLK_TOP_SMI_SEL, smi_parents, 0x004, 16, 4),
+       MUX_MIXED(CLK_TOP_USB_SEL, usb_parents, 0x004, 20, 3),
        /* CLK_MUX_SEL8 */
-       MUX(CLK_TOP_SPINOR_SEL, spinor_parents, 0x040, 0, 3),
-       MUX(CLK_TOP_ETH_SEL, eth_parents, 0x040, 6, 3),
-       MUX(CLK_TOP_AUD1_SEL, aud1_parents, 0x040, 22, 1),
-       MUX(CLK_TOP_AUD2_SEL, aud2_parents, 0x040, 23, 1),
-       MUX(CLK_TOP_I2C_SEL, i2c_parents, 0x040, 28, 3),
+       MUX_MIXED(CLK_TOP_SPINOR_SEL, spinor_parents, 0x040, 0, 3),
+       MUX_MIXED(CLK_TOP_ETH_SEL, eth_parents, 0x040, 6, 3),
+       MUX_MIXED(CLK_TOP_AUD1_SEL, aud1_parents, 0x040, 22, 1),
+       MUX_MIXED(CLK_TOP_AUD2_SEL, aud2_parents, 0x040, 23, 1),
+       MUX_MIXED(CLK_TOP_I2C_SEL, i2c_parents, 0x040, 28, 3),
        /* CLK_SEL_9 */
-       MUX(CLK_TOP_AUD_I2S0_M_SEL, aud_i2s0_m_parents, 0x044, 12, 1),
-       MUX(CLK_TOP_AUD_I2S3_M_SEL, aud_i2s0_m_parents, 0x044, 15, 1),
-       MUX(CLK_TOP_AUD_I2S4_M_SEL, aud_i2s0_m_parents, 0x044, 16, 1),
-       MUX(CLK_TOP_AUD_I2S6_M_SEL, aud_i2s0_m_parents, 0x044, 18, 1),
+       MUX_MIXED(CLK_TOP_AUD_I2S0_M_SEL, aud_i2s0_m_parents, 0x044, 12, 1),
+       MUX_MIXED(CLK_TOP_AUD_I2S3_M_SEL, aud_i2s0_m_parents, 0x044, 15, 1),
+       MUX_MIXED(CLK_TOP_AUD_I2S4_M_SEL, aud_i2s0_m_parents, 0x044, 16, 1),
+       MUX_MIXED(CLK_TOP_AUD_I2S6_M_SEL, aud_i2s0_m_parents, 0x044, 18, 1),
        /* CLK_MUX_SEL13 */
-       MUX(CLK_TOP_PWM_SEL, pwm_mm_parents, 0x07c, 0, 1),
-       MUX(CLK_TOP_AUD_SPDIFIN_SEL, aud_spdifin_parents, 0x07c, 2, 2),
-       MUX(CLK_TOP_UART2_SEL, uart0_parents, 0x07c, 4, 1),
-       MUX(CLK_TOP_DBG_ATCLK_SEL, dbg_atclk_parents, 0x07c, 7, 3),
-       MUX(CLK_TOP_PNG_SYS_SEL, png_sys_parents, 0x07c, 16, 3),
-       MUX(CLK_TOP_SEJ_13M_SEL, sej_13m_parents, 0x07c, 22, 1),
+       MUX_MIXED(CLK_TOP_PWM_SEL, pwm_mm_parents, 0x07c, 0, 1),
+       MUX_MIXED(CLK_TOP_AUD_SPDIFIN_SEL, aud_spdifin_parents, 0x07c, 2, 2),
+       MUX_MIXED(CLK_TOP_UART2_SEL, uart0_parents, 0x07c, 4, 1),
+       MUX_MIXED(CLK_TOP_DBG_ATCLK_SEL, dbg_atclk_parents, 0x07c, 7, 3),
+       MUX_MIXED(CLK_TOP_PNG_SYS_SEL, png_sys_parents, 0x07c, 16, 3),
+       MUX_MIXED(CLK_TOP_SEJ_13M_SEL, sej_13m_parents, 0x07c, 22, 1),
        /* CLK_MUX_SEL14 */
-       MUX(CLK_TOP_IMGRZ_SYS_SEL, imgrz_sys_parents, 0xc0, 0, 3),
-       MUX(CLK_TOP_GRAPH_ECLK_SEL, graph_eclk_parents, 0xc0, 8, 4),
-       MUX(CLK_TOP_FDBI_SEL, fdbi_parents, 0xc0, 12, 4),
-       MUX(CLK_TOP_FAUDIO_SEL, faudio_parents, 0xc0, 16, 2),
-       MUX(CLK_TOP_FA2SYS_SEL, fa2sys_parents, 0xc0, 24, 3),
-       MUX(CLK_TOP_FA1SYS_SEL, fa1sys_parents, 0xc0, 27, 3),
-       MUX(CLK_TOP_FASM_M_SEL, fasm_m_parents, 0xc0, 30, 2),
+       MUX_MIXED(CLK_TOP_IMGRZ_SYS_SEL, imgrz_sys_parents, 0xc0, 0, 3),
+       MUX_MIXED(CLK_TOP_GRAPH_ECLK_SEL, graph_eclk_parents, 0xc0, 8, 4),
+       MUX_MIXED(CLK_TOP_FDBI_SEL, fdbi_parents, 0xc0, 12, 4),
+       MUX_MIXED(CLK_TOP_FAUDIO_SEL, faudio_parents, 0xc0, 16, 2),
+       MUX_MIXED(CLK_TOP_FA2SYS_SEL, fa2sys_parents, 0xc0, 24, 3),
+       MUX_MIXED(CLK_TOP_FA1SYS_SEL, fa1sys_parents, 0xc0, 27, 3),
+       MUX_MIXED(CLK_TOP_FASM_M_SEL, fasm_m_parents, 0xc0, 30, 2),
        /* CLK_MUX_SEL15 */
-       MUX(CLK_TOP_FASM_H_SEL, fasm_m_parents, 0xC4, 0, 2),
-       MUX(CLK_TOP_FASM_L_SEL, fasm_m_parents, 0xC4, 2, 2),
-       MUX(CLK_TOP_FECC_CK_SEL, fecc_ck_parents, 0xC4, 18, 6),
-       MUX(CLK_TOP_PE2_MAC_SEL, pe2_mac_parents, 0xC4, 24, 3),
-       MUX(CLK_TOP_CMSYS_SEL, cmsys_parents, 0xC4, 28, 3),
+       MUX_MIXED(CLK_TOP_FASM_H_SEL, fasm_m_parents, 0xC4, 0, 2),
+       MUX_MIXED(CLK_TOP_FASM_L_SEL, fasm_m_parents, 0xC4, 2, 2),
+       MUX_MIXED(CLK_TOP_FECC_CK_SEL, fecc_ck_parents, 0xC4, 18, 6),
+       MUX_MIXED(CLK_TOP_PE2_MAC_SEL, pe2_mac_parents, 0xC4, 24, 3),
+       MUX_MIXED(CLK_TOP_CMSYS_SEL, cmsys_parents, 0xC4, 28, 3),
        /* CLK_MUX_SEL16 */
-       MUX(CLK_TOP_GCPU_SEL, gcpu_parents, 0xC8, 0, 3),
-       MUX(CLK_TOP_SPIS_CK_SEL, spis_ck_parents, 0xC8, 4, 8),
+       MUX_MIXED(CLK_TOP_GCPU_SEL, gcpu_parents, 0xC8, 0, 3),
+       MUX_MIXED(CLK_TOP_SPIS_CK_SEL, spis_ck_parents, 0xC8, 4, 8),
        /* CLK_MUX_SEL17 */
-       MUX(CLK_TOP_APLL1_REF_SEL, apll1_ref_parents, 0xCC, 6, 3),
-       MUX(CLK_TOP_APLL2_REF_SEL, apll1_ref_parents, 0xCC, 9, 3),
-       MUX(CLK_TOP_INT_32K_SEL, int_32k_parents, 0xCC, 12, 1),
-       MUX(CLK_TOP_APLL1_SRC_SEL, apll1_src_parents, 0xCC, 13, 2),
-       MUX(CLK_TOP_APLL2_SRC_SEL, apll2_src_parents, 0xCC, 15, 2),
+       MUX_MIXED(CLK_TOP_APLL1_REF_SEL, apll1_ref_parents, 0xCC, 6, 3),
+       MUX_MIXED(CLK_TOP_APLL2_REF_SEL, apll1_ref_parents, 0xCC, 9, 3),
+       MUX_MIXED(CLK_TOP_INT_32K_SEL, int_32k_parents, 0xCC, 12, 1),
+       MUX_MIXED(CLK_TOP_APLL1_SRC_SEL, apll1_src_parents, 0xCC, 13, 2),
+       MUX_MIXED(CLK_TOP_APLL2_SRC_SEL, apll2_src_parents, 0xCC, 15, 2),
        /* CLK_MUX_SEL19 */
-       MUX(CLK_TOP_FAUD_INTBUS_SEL, faud_intbus_parents, 0xD4, 8, 8),
-       MUX(CLK_TOP_AXIBUS_SEL, axibus_parents, 0xD4, 24, 8),
+       MUX_MIXED(CLK_TOP_FAUD_INTBUS_SEL, faud_intbus_parents, 0xD4, 8, 8),
+       MUX_MIXED(CLK_TOP_AXIBUS_SEL, axibus_parents, 0xD4, 24, 8),
        /* CLK_MUX_SEL21 */
-       MUX(CLK_TOP_HAPLL1_SEL, hapll1_parents, 0xDC, 0, 4),
-       MUX(CLK_TOP_HAPLL2_SEL, hapll2_parents, 0xDC, 4, 4),
-       MUX(CLK_TOP_SPINFI_SEL, spinfi_parents, 0xDC, 8, 4),
+       MUX_MIXED(CLK_TOP_HAPLL1_SEL, hapll1_parents, 0xDC, 0, 4),
+       MUX_MIXED(CLK_TOP_HAPLL2_SEL, hapll2_parents, 0xDC, 4, 4),
+       MUX_MIXED(CLK_TOP_SPINFI_SEL, spinfi_parents, 0xDC, 8, 4),
        /* CLK_MUX_SEL22 */
-       MUX(CLK_TOP_MSDC0_SEL, msdc0_parents, 0xF4, 0, 8),
-       MUX(CLK_TOP_MSDC0_CLK50_SEL, msdc0_clk50_parents, 0xF4, 8, 6),
-       MUX(CLK_TOP_MSDC2_SEL, msdc2_parents, 0xF4, 15, 8),
-       MUX(CLK_TOP_MSDC2_CLK50_SEL, msdc0_clk50_parents, 0xF4, 23, 6),
+       MUX_MIXED(CLK_TOP_MSDC0_SEL, msdc0_parents, 0xF4, 0, 8),
+       MUX_MIXED(CLK_TOP_MSDC0_CLK50_SEL, msdc0_clk50_parents, 0xF4, 8, 6),
+       MUX_MIXED(CLK_TOP_MSDC2_SEL, msdc2_parents, 0xF4, 15, 8),
+       MUX_MIXED(CLK_TOP_MSDC2_CLK50_SEL, msdc0_clk50_parents, 0xF4, 23, 6),
        /* CLK_MUX_SEL23 */
-       MUX(CLK_TOP_DISP_DPI_CK_SEL, disp_dpi_ck_parents, 0xF8, 0, 6),
-       MUX(CLK_TOP_SPI1_SEL, spis_ck_parents, 0xF8, 6, 8),
-       MUX(CLK_TOP_SPI2_SEL, spis_ck_parents, 0xF8, 14, 8),
-       MUX(CLK_TOP_SPI3_SEL, spis_ck_parents, 0xF8, 22, 8),
+       MUX_MIXED(CLK_TOP_DISP_DPI_CK_SEL, disp_dpi_ck_parents, 0xF8, 0, 6),
+       MUX_MIXED(CLK_TOP_SPI1_SEL, spis_ck_parents, 0xF8, 6, 8),
+       MUX_MIXED(CLK_TOP_SPI2_SEL, spis_ck_parents, 0xF8, 14, 8),
+       MUX_MIXED(CLK_TOP_SPI3_SEL, spis_ck_parents, 0xF8, 22, 8),
 };
 
 static const struct mtk_gate_regs top0_cg_regs = {

-- 
2.43.0

Reply via email to