Quoting Ryan Chen (2024-12-04 16:48:42) > > > struct ast2700_clk_info { > > > const char *name; > > > u8 clk_idx; > > > u32 reg; > > > u32 type; > > > union { > > > struct ast2700_clk_fixed_factor_data factor; > > > struct ast2700_clk_fixed_rate_data rate; > > > struct ast2700_clk_gate_data gate; > > > struct ast2700_clk_div_data div; > > > struct ast2700_clk_pll_data pll; > > > struct ast2700_clk_mux_data mux; > > > } data; > > > }; > > > > > > struct ast2700_clk_div_data { > > > const struct clk_div_table *div_table; > > > const struct clk_parent_data *parent; > > > u8 bit_shift; > > > u8 bit_width; > > > u32 reg; > > > }; > > > > > > static const struct ast2700_clk_info ast2700_scu0_clk_info[] > > > __initconst = { ........................... > > > DIVIDER_CLK(SCU0_CLK_AHB, "soc0-ahb", soc0_ahbmux, > > > > Can you also show what soc0_ahbmux is? > It will be following. > > static const struct clk_parent_data soc0_ahbmux[] = { > { .fw_name = "soc0-ahbmux", .name = "soc0-ahbmux" }, > }; Instead of that, please use only the index. static const struct clk_parent_data soc0_ahbmux[] = { { .index = <number from DT binding> }, };