.clkr.hw.init = &(struct clk_init_data){
                .name = "pcnoc_bfdcd_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "system_noc_bfdcd_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "camss_ahb_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "apss_ahb_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi0_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi1_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gfx3d_clk_src",
                .parent_names = gcc_xo_gpll0a_gpll1_gpll2a,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_gpll1_gpll2a),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "vfe0_clk_src",
                .parent_names = gcc_xo_gpll0_gpll2,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup1_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup1_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup2_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup2_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup3_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup3_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup4_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup4_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup5_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup5_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup6_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup6_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_uart1_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_uart2_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "cci_clk_src",
                .parent_names = gcc_xo_gpll0a,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "camss_gp0_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "camss_gp1_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "jpeg0_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "mclk0_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "mclk1_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi0phytimer_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi1phytimer_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "cpp_clk_src",
                .parent_names = gcc_xo_gpll0_gpll2,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "crypto_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gp1_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gp2_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gp3_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "byte0_clk_src",
                .parent_names = gcc_xo_gpll0a_dsibyte,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_dsibyte),
                .ops = &clk_byte2_ops,
                .flags = CLK_SET_RATE_PARENT,
        },
        .clkr.hw.init = &(struct clk_init_data){
                .name = "esc0_clk_src",
                .parent_names = gcc_xo_dsibyte,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_dsibyte),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "mdp_clk_src",
                .parent_names = gcc_xo_gpll0_dsiphy,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_dsiphy),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "pclk0_clk_src",
                .parent_names = gcc_xo_gpll0a_dsiphy,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_dsiphy),
                .ops = &clk_pixel_ops,
                .flags = CLK_SET_RATE_PARENT,
        },
        .clkr.hw.init = &(struct clk_init_data){
                .name = "vsync_clk_src",
                .parent_names = gcc_xo_gpll0a,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "pdm2_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "sdcc1_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_floor_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "sdcc2_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_floor_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "apss_tcu_clk_src",
                .parent_names = gcc_xo_gpll0a_gpll1_gpll2,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_gpll1_gpll2),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "bimc_gpu_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .flags = CLK_GET_RATE_NOCACHE,
                .ops = &clk_rcg2_ops,
        },
        .clkr.hw.init = &(struct clk_init_data){
                .name = "usb_hs_system_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_ahbfabric_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_lpaif_pri_i2s_clk_src",
                .parent_names = gcc_xo_gpll1_epi2s_emclk_sleep,
-               .num_parents = 5,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_epi2s_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_lpaif_sec_i2s_clk_src",
                .parent_names = gcc_xo_gpll1_esi2s_emclk_sleep,
-               .num_parents = 5,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_esi2s_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_lpaif_aux_i2s_clk_src",
                .parent_names = gcc_xo_gpll1_esi2s_emclk_sleep,
-               .num_parents = 5,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_esi2s_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_xo_clk_src",
                .parent_names = gcc_xo_sleep,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "codec_digcodec_clk_src",
                .parent_names = gcc_xo_gpll1_emclk_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "vcodec0_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
        .clkr.hw.init = &(struct clk_init_data){
                .name = "bimc_ddr_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .ops = &clk_rcg2_ops,
                .flags = CLK_GET_RATE_NOCACHE,
        },