On 17.12.2022 16:13, Konrad Dybcio wrote: > > > On 17.12.2022 01:17, Dmitry Baryshkov wrote: >> Convert the clock driver to specify parent data rather than parent >> names, to actually bind using 'clock-names' specified in the DTS rather >> than global clock names. Use parent_hws where possible to refer parent >> clocks directly, skipping the lookup. >> >> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> >> --- > Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> > > Konrad Actually, on a second thought - why not switch to .index like on the newer clk drivers? Konrad >> drivers/clk/qcom/gcc-qcs404.c | 515 ++++++++++++++++++---------------- >> 1 file changed, 266 insertions(+), 249 deletions(-) >> >> diff --git a/drivers/clk/qcom/gcc-qcs404.c b/drivers/clk/qcom/gcc-qcs404.c >> index 5ae7a6b2a326..3941175d73a5 100644 >> --- a/drivers/clk/qcom/gcc-qcs404.c >> +++ b/drivers/clk/qcom/gcc-qcs404.c >> @@ -42,7 +42,9 @@ static struct clk_fixed_factor cxo = { >> .div = 1, >> .hw.init = &(struct clk_init_data){ >> .name = "cxo", >> - .parent_names = (const char *[]){ "xo-board" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .name = "xo-board", >> + }, >> .num_parents = 1, >> .ops = &clk_fixed_factor_ops, >> }, >> @@ -57,7 +59,9 @@ static struct clk_alpha_pll gpll0_sleep_clk_src = { >> .enable_is_inverted = true, >> .hw.init = &(struct clk_init_data){ >> .name = "gpll0_sleep_clk_src", >> - .parent_names = (const char *[]){ "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_alpha_pll_ops, >> }, >> @@ -73,8 +77,9 @@ static struct clk_alpha_pll gpll0_out_main = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gpll0_out_main", >> - .parent_names = (const char *[]) >> - { "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_alpha_pll_ops, >> }, >> @@ -90,7 +95,9 @@ static struct clk_alpha_pll gpll0_ao_out_main = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gpll0_ao_out_main", >> - .parent_names = (const char *[]){ "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .flags = CLK_IS_CRITICAL, >> .ops = &clk_alpha_pll_fixed_ops, >> @@ -106,7 +113,9 @@ static struct clk_alpha_pll gpll1_out_main = { >> .enable_mask = BIT(1), >> .hw.init = &(struct clk_init_data){ >> .name = "gpll1_out_main", >> - .parent_names = (const char *[]){ "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_alpha_pll_ops, >> }, >> @@ -137,7 +146,9 @@ static struct clk_alpha_pll gpll3_out_main = { >> .clkr = { >> .hw.init = &(struct clk_init_data){ >> .name = "gpll3_out_main", >> - .parent_names = (const char *[]){ "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_alpha_pll_ops, >> }, >> @@ -152,7 +163,9 @@ static struct clk_alpha_pll gpll4_out_main = { >> .enable_mask = BIT(5), >> .hw.init = &(struct clk_init_data){ >> .name = "gpll4_out_main", >> - .parent_names = (const char *[]){ "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_alpha_pll_ops, >> }, >> @@ -169,7 +182,9 @@ static struct clk_pll gpll6 = { >> .status_bit = 17, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "gpll6", >> - .parent_names = (const char *[]){ "cxo" }, >> + .parent_data = &(const struct clk_parent_data) { >> + .hw = &cxo.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_pll_ops, >> }, >> @@ -180,7 +195,9 @@ static struct clk_regmap gpll6_out_aux = { >> .enable_mask = BIT(7), >> .hw.init = &(struct clk_init_data){ >> .name = "gpll6_out_aux", >> - .parent_names = (const char *[]){ "gpll6" }, >> + .parent_hws = (const struct clk_hw*[]) { >> + &gpll6.clkr.hw, >> + }, >> .num_parents = 1, >> .ops = &clk_pll_vote_ops, >> }, >> @@ -191,22 +208,22 @@ static const struct parent_map gcc_parent_map_0[] = { >> { P_GPLL0_OUT_MAIN, 1 }, >> }; >> >> -static const char * const gcc_parent_names_0[] = { >> - "cxo", >> - "gpll0_out_main", >> +static const struct clk_parent_data gcc_parent_data_0[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> }; >> >> -static const char * const gcc_parent_names_ao_0[] = { >> - "cxo", >> - "gpll0_ao_out_main", >> +static const struct clk_parent_data gcc_parent_data_ao_0[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_ao_out_main.clkr.hw }, >> }; >> >> static const struct parent_map gcc_parent_map_1[] = { >> { P_XO, 0 }, >> }; >> >> -static const char * const gcc_parent_names_1[] = { >> - "cxo", >> +static const struct clk_parent_data gcc_parent_data_1[] = { >> + { .hw = &cxo.hw }, >> }; >> >> static const struct parent_map gcc_parent_map_2[] = { >> @@ -216,11 +233,11 @@ static const struct parent_map gcc_parent_map_2[] = { >> { P_SLEEP_CLK, 6 }, >> }; >> >> -static const char * const gcc_parent_names_2[] = { >> - "cxo", >> - "gpll0_out_main", >> - "gpll6_out_aux", >> - "sleep_clk", >> +static const struct clk_parent_data gcc_parent_data_2[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> + { .hw = &gpll6_out_aux.hw }, >> + { .fw_name = "sleep_clk", .name = "sleep_clk" }, >> }; >> >> static const struct parent_map gcc_parent_map_3[] = { >> @@ -229,10 +246,10 @@ static const struct parent_map gcc_parent_map_3[] = { >> { P_GPLL6_OUT_AUX, 2 }, >> }; >> >> -static const char * const gcc_parent_names_3[] = { >> - "cxo", >> - "gpll0_out_main", >> - "gpll6_out_aux", >> +static const struct clk_parent_data gcc_parent_data_3[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> + { .hw = &gpll6_out_aux.hw }, >> }; >> >> static const struct parent_map gcc_parent_map_4[] = { >> @@ -240,9 +257,9 @@ static const struct parent_map gcc_parent_map_4[] = { >> { P_GPLL1_OUT_MAIN, 1 }, >> }; >> >> -static const char * const gcc_parent_names_4[] = { >> - "cxo", >> - "gpll1_out_main", >> +static const struct clk_parent_data gcc_parent_data_4[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll1_out_main.clkr.hw }, >> }; >> >> static const struct parent_map gcc_parent_map_5[] = { >> @@ -251,9 +268,9 @@ static const struct parent_map gcc_parent_map_5[] = { >> /* { P_GPLL0_OUT_AUX, 2 }, */ >> }; >> >> -static const char * const gcc_parent_names_5[] = { >> - "cxo", >> - "dsi0pllbyte", >> +static const struct clk_parent_data gcc_parent_data_5[] = { >> + { .hw = &cxo.hw }, >> + { .fw_name = "dsi0pllbyte", .name = "dsi0pllbyte" }, >> /* "gpll0_out_aux", */ >> }; >> >> @@ -263,9 +280,9 @@ static const struct parent_map gcc_parent_map_6[] = { >> /* { P_GPLL0_OUT_AUX, 3 }, */ >> }; >> >> -static const char * const gcc_parent_names_6[] = { >> - "cxo", >> - "dsi0pllbyte", >> +static const struct clk_parent_data gcc_parent_data_6[] = { >> + { .hw = &cxo.hw }, >> + { .fw_name = "dsi0pllbyte", .name = "dsi0pllbyte" }, >> /* "gpll0_out_aux", */ >> }; >> >> @@ -277,11 +294,11 @@ static const struct parent_map gcc_parent_map_7[] = { >> /* { P_GPLL4_OUT_AUX, 4 }, */ >> }; >> >> -static const char * const gcc_parent_names_7[] = { >> - "cxo", >> - "gpll0_out_main", >> - "gpll3_out_main", >> - "gpll6_out_aux", >> +static const struct clk_parent_data gcc_parent_data_7[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> + { .hw = &gpll3_out_main.clkr.hw }, >> + { .hw = &gpll6_out_aux.hw }, >> /* "gpll4_out_aux", */ >> }; >> >> @@ -290,9 +307,9 @@ static const struct parent_map gcc_parent_map_8[] = { >> { P_HDMI_PHY_PLL_CLK, 1 }, >> }; >> >> -static const char * const gcc_parent_names_8[] = { >> - "cxo", >> - "hdmi_pll", >> +static const struct clk_parent_data gcc_parent_data_8[] = { >> + { .hw = &cxo.hw }, >> + { .fw_name = "hdmi_pll", .name = "hdmi_pll" }, >> }; >> >> static const struct parent_map gcc_parent_map_9[] = { >> @@ -302,11 +319,11 @@ static const struct parent_map gcc_parent_map_9[] = { >> { P_GPLL6_OUT_AUX, 3 }, >> }; >> >> -static const char * const gcc_parent_names_9[] = { >> - "cxo", >> - "gpll0_out_main", >> - "dsi0pll", >> - "gpll6_out_aux", >> +static const struct clk_parent_data gcc_parent_data_9[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> + { .fw_name = "dsi0pll", .name = "dsi0pll" }, >> + { .hw = &gpll6_out_aux.hw }, >> }; >> >> static const struct parent_map gcc_parent_map_10[] = { >> @@ -314,9 +331,9 @@ static const struct parent_map gcc_parent_map_10[] = { >> { P_SLEEP_CLK, 1 }, >> }; >> >> -static const char * const gcc_parent_names_10[] = { >> - "cxo", >> - "sleep_clk", >> +static const struct clk_parent_data gcc_parent_data_10[] = { >> + { .hw = &cxo.hw }, >> + { .fw_name = "sleep_clk", .name = "sleep_clk" }, >> }; >> >> static const struct parent_map gcc_parent_map_11[] = { >> @@ -324,9 +341,9 @@ static const struct parent_map gcc_parent_map_11[] = { >> { P_PCIE_0_PIPE_CLK, 1 }, >> }; >> >> -static const char * const gcc_parent_names_11[] = { >> - "cxo", >> - "pcie_0_pipe_clk", >> +static const struct clk_parent_data gcc_parent_data_11[] = { >> + { .hw = &cxo.hw }, >> + { .fw_name = "pcie_0_pipe_clk", .name = "pcie_0_pipe_clk" }, >> }; >> >> static const struct parent_map gcc_parent_map_12[] = { >> @@ -335,9 +352,9 @@ static const struct parent_map gcc_parent_map_12[] = { >> /* { P_GPLL0_OUT_AUX, 2 }, */ >> }; >> >> -static const char * const gcc_parent_names_12[] = { >> - "cxo", >> - "dsi0pll", >> +static const struct clk_parent_data gcc_parent_data_12[] = { >> + { .hw = &cxo.hw }, >> + { .fw_name = "dsi0pll", .name = "dsi0pll" }, >> /* "gpll0_out_aux", */ >> }; >> >> @@ -348,11 +365,11 @@ static const struct parent_map gcc_parent_map_13[] = { >> { P_GPLL6_OUT_AUX, 3 }, >> }; >> >> -static const char * const gcc_parent_names_13[] = { >> - "cxo", >> - "gpll0_out_main", >> - "gpll4_out_main", >> - "gpll6_out_aux", >> +static const struct clk_parent_data gcc_parent_data_13[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> + { .hw = &gpll4_out_main.clkr.hw }, >> + { .hw = &gpll6_out_aux.hw }, >> }; >> >> static const struct parent_map gcc_parent_map_14[] = { >> @@ -361,9 +378,9 @@ static const struct parent_map gcc_parent_map_14[] = { >> /* { P_GPLL4_OUT_AUX, 2 }, */ >> }; >> >> -static const char * const gcc_parent_names_14[] = { >> - "cxo", >> - "gpll0_out_main", >> +static const struct clk_parent_data gcc_parent_data_14[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> /* "gpll4_out_aux", */ >> }; >> >> @@ -372,8 +389,8 @@ static const struct parent_map gcc_parent_map_15[] = { >> /* { P_GPLL0_OUT_AUX, 2 }, */ >> }; >> >> -static const char * const gcc_parent_names_15[] = { >> - "cxo", >> +static const struct clk_parent_data gcc_parent_data_15[] = { >> + { .hw = &cxo.hw }, >> /* "gpll0_out_aux", */ >> }; >> >> @@ -383,9 +400,9 @@ static const struct parent_map gcc_parent_map_16[] = { >> /* { P_GPLL0_OUT_AUX, 2 }, */ >> }; >> >> -static const char * const gcc_parent_names_16[] = { >> - "cxo", >> - "gpll0_out_main", >> +static const struct clk_parent_data gcc_parent_data_16[] = { >> + { .hw = &cxo.hw }, >> + { .hw = &gpll0_out_main.clkr.hw }, >> /* "gpll0_out_aux", */ >> }; >> >> @@ -405,8 +422,8 @@ static struct clk_rcg2 apss_ahb_clk_src = { >> .freq_tbl = ftbl_apss_ahb_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "apss_ahb_clk_src", >> - .parent_names = gcc_parent_names_ao_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_ao_0), >> + .parent_data = gcc_parent_data_ao_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_ao_0), >> .flags = CLK_IS_CRITICAL, >> .ops = &clk_rcg2_ops, >> }, >> @@ -426,8 +443,8 @@ static struct clk_rcg2 blsp1_qup0_i2c_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup0_i2c_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -451,8 +468,8 @@ static struct clk_rcg2 blsp1_qup0_spi_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup0_spi_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -465,8 +482,8 @@ static struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup1_i2c_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -490,8 +507,8 @@ static struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup1_spi_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -504,8 +521,8 @@ static struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup2_i2c_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -530,8 +547,8 @@ static struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup2_spi_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup2_spi_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -544,8 +561,8 @@ static struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup3_i2c_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -558,8 +575,8 @@ static struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup3_spi_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -572,8 +589,8 @@ static struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup4_i2c_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -586,8 +603,8 @@ static struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_qup4_spi_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -620,8 +637,8 @@ static struct clk_rcg2 blsp1_uart0_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_uart0_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_uart0_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -634,8 +651,8 @@ static struct clk_rcg2 blsp1_uart1_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_uart0_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_uart1_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -648,8 +665,8 @@ static struct clk_rcg2 blsp1_uart2_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_uart0_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_uart2_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -663,8 +680,8 @@ static struct clk_rcg2 blsp1_uart3_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_uart0_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp1_uart3_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -677,8 +694,8 @@ static struct clk_rcg2 blsp2_qup0_i2c_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp2_qup0_i2c_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -691,8 +708,8 @@ static struct clk_rcg2 blsp2_qup0_spi_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp2_qup0_spi_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -705,8 +722,8 @@ static struct clk_rcg2 blsp2_uart0_apps_clk_src = { >> .freq_tbl = ftbl_blsp1_uart0_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "blsp2_uart0_apps_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -718,8 +735,8 @@ static struct clk_rcg2 byte0_clk_src = { >> .parent_map = gcc_parent_map_5, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "byte0_clk_src", >> - .parent_names = gcc_parent_names_5, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_5), >> + .parent_data = gcc_parent_data_5, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_5), >> .flags = CLK_SET_RATE_PARENT, >> .ops = &clk_byte2_ops, >> }, >> @@ -741,8 +758,8 @@ static struct clk_rcg2 emac_clk_src = { >> .freq_tbl = ftbl_emac_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "emac_clk_src", >> - .parent_names = gcc_parent_names_4, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_4), >> + .parent_data = gcc_parent_data_4, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_4), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -762,8 +779,8 @@ static struct clk_rcg2 emac_ptp_clk_src = { >> .freq_tbl = ftbl_emac_ptp_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "emac_ptp_clk_src", >> - .parent_names = gcc_parent_names_4, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_4), >> + .parent_data = gcc_parent_data_4, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_4), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -781,8 +798,8 @@ static struct clk_rcg2 esc0_clk_src = { >> .freq_tbl = ftbl_esc0_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "esc0_clk_src", >> - .parent_names = gcc_parent_names_6, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_6), >> + .parent_data = gcc_parent_data_6, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_6), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -815,8 +832,8 @@ static struct clk_rcg2 gfx3d_clk_src = { >> .freq_tbl = ftbl_gfx3d_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "gfx3d_clk_src", >> - .parent_names = gcc_parent_names_7, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_7), >> + .parent_data = gcc_parent_data_7, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_7), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -836,8 +853,8 @@ static struct clk_rcg2 gp1_clk_src = { >> .freq_tbl = ftbl_gp1_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "gp1_clk_src", >> - .parent_names = gcc_parent_names_2, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_2), >> + .parent_data = gcc_parent_data_2, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_2), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -850,8 +867,8 @@ static struct clk_rcg2 gp2_clk_src = { >> .freq_tbl = ftbl_gp1_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "gp2_clk_src", >> - .parent_names = gcc_parent_names_2, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_2), >> + .parent_data = gcc_parent_data_2, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_2), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -864,8 +881,8 @@ static struct clk_rcg2 gp3_clk_src = { >> .freq_tbl = ftbl_gp1_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "gp3_clk_src", >> - .parent_names = gcc_parent_names_2, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_2), >> + .parent_data = gcc_parent_data_2, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_2), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -878,8 +895,8 @@ static struct clk_rcg2 hdmi_app_clk_src = { >> .freq_tbl = ftbl_esc0_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "hdmi_app_clk_src", >> - .parent_names = gcc_parent_names_1, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_1), >> + .parent_data = gcc_parent_data_1, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_1), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -892,8 +909,8 @@ static struct clk_rcg2 hdmi_pclk_clk_src = { >> .freq_tbl = ftbl_esc0_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "hdmi_pclk_clk_src", >> - .parent_names = gcc_parent_names_8, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_8), >> + .parent_data = gcc_parent_data_8, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_8), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -919,8 +936,8 @@ static struct clk_rcg2 mdp_clk_src = { >> .freq_tbl = ftbl_mdp_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "mdp_clk_src", >> - .parent_names = gcc_parent_names_9, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_9), >> + .parent_data = gcc_parent_data_9, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_9), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -938,8 +955,8 @@ static struct clk_rcg2 pcie_0_aux_clk_src = { >> .freq_tbl = ftbl_pcie_0_aux_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "pcie_0_aux_clk_src", >> - .parent_names = gcc_parent_names_10, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_10), >> + .parent_data = gcc_parent_data_10, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_10), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -959,8 +976,8 @@ static struct clk_rcg2 pcie_0_pipe_clk_src = { >> .freq_tbl = ftbl_pcie_0_pipe_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "pcie_0_pipe_clk_src", >> - .parent_names = gcc_parent_names_11, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_11), >> + .parent_data = gcc_parent_data_11, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_11), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -972,8 +989,8 @@ static struct clk_rcg2 pclk0_clk_src = { >> .parent_map = gcc_parent_map_12, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "pclk0_clk_src", >> - .parent_names = gcc_parent_names_12, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_12), >> + .parent_data = gcc_parent_data_12, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_12), >> .flags = CLK_SET_RATE_PARENT, >> .ops = &clk_pixel_ops, >> }, >> @@ -993,8 +1010,8 @@ static struct clk_rcg2 pdm2_clk_src = { >> .freq_tbl = ftbl_pdm2_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "pdm2_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1021,8 +1038,8 @@ static struct clk_rcg2 sdcc1_apps_clk_src = { >> .freq_tbl = ftbl_sdcc1_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "sdcc1_apps_clk_src", >> - .parent_names = gcc_parent_names_13, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_13), >> + .parent_data = gcc_parent_data_13, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_13), >> .ops = &clk_rcg2_floor_ops, >> }, >> }; >> @@ -1041,8 +1058,8 @@ static struct clk_rcg2 sdcc1_ice_core_clk_src = { >> .freq_tbl = ftbl_sdcc1_ice_core_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "sdcc1_ice_core_clk_src", >> - .parent_names = gcc_parent_names_3, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_3), >> + .parent_data = gcc_parent_data_3, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_3), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1067,8 +1084,8 @@ static struct clk_rcg2 sdcc2_apps_clk_src = { >> .freq_tbl = ftbl_sdcc2_apps_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "sdcc2_apps_clk_src", >> - .parent_names = gcc_parent_names_14, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_14), >> + .parent_data = gcc_parent_data_14, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_14), >> .ops = &clk_rcg2_floor_ops, >> }, >> }; >> @@ -1081,8 +1098,8 @@ static struct clk_rcg2 usb20_mock_utmi_clk_src = { >> .freq_tbl = ftbl_esc0_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "usb20_mock_utmi_clk_src", >> - .parent_names = gcc_parent_names_1, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_1), >> + .parent_data = gcc_parent_data_1, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_1), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1103,8 +1120,8 @@ static struct clk_rcg2 usb30_master_clk_src = { >> .freq_tbl = ftbl_usb30_master_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "usb30_master_clk_src", >> - .parent_names = gcc_parent_names_0, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_0), >> + .parent_data = gcc_parent_data_0, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_0), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1117,8 +1134,8 @@ static struct clk_rcg2 usb30_mock_utmi_clk_src = { >> .freq_tbl = ftbl_esc0_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "usb30_mock_utmi_clk_src", >> - .parent_names = gcc_parent_names_1, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_1), >> + .parent_data = gcc_parent_data_1, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_1), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1131,8 +1148,8 @@ static struct clk_rcg2 usb3_phy_aux_clk_src = { >> .freq_tbl = ftbl_pcie_0_aux_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "usb3_phy_aux_clk_src", >> - .parent_names = gcc_parent_names_1, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_1), >> + .parent_data = gcc_parent_data_1, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_1), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1154,8 +1171,8 @@ static struct clk_rcg2 usb_hs_system_clk_src = { >> .freq_tbl = ftbl_usb_hs_system_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "usb_hs_system_clk_src", >> - .parent_names = gcc_parent_names_3, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_3), >> + .parent_data = gcc_parent_data_3, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_3), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1168,8 +1185,8 @@ static struct clk_rcg2 vsync_clk_src = { >> .freq_tbl = ftbl_esc0_clk_src, >> .clkr.hw.init = &(struct clk_init_data){ >> .name = "vsync_clk_src", >> - .parent_names = gcc_parent_names_15, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_15), >> + .parent_data = gcc_parent_data_15, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_15), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1190,8 +1207,8 @@ static struct clk_rcg2 cdsp_bimc_clk_src = { >> .freq_tbl = ftbl_cdsp_bimc_clk_src, >> .clkr.hw.init = &(struct clk_init_data) { >> .name = "cdsp_bimc_clk_src", >> - .parent_names = gcc_parent_names_16, >> - .num_parents = ARRAY_SIZE(gcc_parent_names_16), >> + .parent_data = gcc_parent_data_16, >> + .num_parents = ARRAY_SIZE(gcc_parent_data_16), >> .ops = &clk_rcg2_ops, >> }, >> }; >> @@ -1204,8 +1221,8 @@ static struct clk_branch gcc_apss_ahb_clk = { >> .enable_mask = BIT(14), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_apss_ahb_clk", >> - .parent_names = (const char *[]){ >> - "apss_ahb_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &apss_ahb_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1236,8 +1253,8 @@ static struct clk_branch gcc_bimc_gfx_clk = { >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_bimc_gfx_clk", >> .ops = &clk_branch2_ops, >> - .parent_names = (const char *[]){ >> - "gcc_apss_tcu_clk", >> + .parent_hws = (const struct clk_hw*[]) { >> + &gcc_apss_tcu_clk.clkr.hw, >> }, >> >> }, >> @@ -1265,8 +1282,8 @@ static struct clk_branch gcc_bimc_cdsp_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data) { >> .name = "gcc_bimc_cdsp_clk", >> - .parent_names = (const char *[]) { >> - "cdsp_bimc_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &cdsp_bimc_clk_src.clkr.hw >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1335,8 +1352,8 @@ static struct clk_branch gcc_blsp1_qup0_i2c_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup0_i2c_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup0_i2c_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup0_i2c_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1353,8 +1370,8 @@ static struct clk_branch gcc_blsp1_qup0_spi_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup0_spi_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup0_spi_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup0_spi_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1371,8 +1388,8 @@ static struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup1_i2c_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup1_i2c_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup1_i2c_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1389,8 +1406,8 @@ static struct clk_branch gcc_blsp1_qup1_spi_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup1_spi_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup1_spi_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup1_spi_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1407,8 +1424,8 @@ static struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup2_i2c_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup2_i2c_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup2_i2c_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1425,8 +1442,8 @@ static struct clk_branch gcc_blsp1_qup2_spi_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup2_spi_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup2_spi_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup2_spi_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1443,8 +1460,8 @@ static struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup3_i2c_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup3_i2c_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup3_i2c_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1461,8 +1478,8 @@ static struct clk_branch gcc_blsp1_qup3_spi_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup3_spi_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup3_spi_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup3_spi_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1479,8 +1496,8 @@ static struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup4_i2c_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup4_i2c_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup4_i2c_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1497,8 +1514,8 @@ static struct clk_branch gcc_blsp1_qup4_spi_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_qup4_spi_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_qup4_spi_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_qup4_spi_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1515,8 +1532,8 @@ static struct clk_branch gcc_blsp1_uart0_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_uart0_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_uart0_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_uart0_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1533,8 +1550,8 @@ static struct clk_branch gcc_blsp1_uart1_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_uart1_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_uart1_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_uart1_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1551,8 +1568,8 @@ static struct clk_branch gcc_blsp1_uart2_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_uart2_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_uart2_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_uart2_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1569,8 +1586,8 @@ static struct clk_branch gcc_blsp1_uart3_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp1_uart3_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp1_uart3_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp1_uart3_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1600,8 +1617,8 @@ static struct clk_branch gcc_blsp2_qup0_i2c_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp2_qup0_i2c_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp2_qup0_i2c_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp2_qup0_i2c_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1618,8 +1635,8 @@ static struct clk_branch gcc_blsp2_qup0_spi_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp2_qup0_spi_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp2_qup0_spi_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp2_qup0_spi_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1636,8 +1653,8 @@ static struct clk_branch gcc_blsp2_uart0_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_blsp2_uart0_apps_clk", >> - .parent_names = (const char *[]){ >> - "blsp2_uart0_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &blsp2_uart0_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1719,8 +1736,8 @@ static struct clk_branch gcc_eth_ptp_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_eth_ptp_clk", >> - .parent_names = (const char *[]){ >> - "emac_ptp_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &emac_ptp_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1737,8 +1754,8 @@ static struct clk_branch gcc_eth_rgmii_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_eth_rgmii_clk", >> - .parent_names = (const char *[]){ >> - "emac_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &emac_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1820,8 +1837,8 @@ static struct clk_branch gcc_cdsp_tbu_clk = { >> .enable_mask = BIT(9), >> .hw.init = &(struct clk_init_data) { >> .name = "gcc_cdsp_tbu_clk", >> - .parent_names = (const char *[]) { >> - "cdsp_bimc_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &cdsp_bimc_clk_src.clkr.hw >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1838,8 +1855,8 @@ static struct clk_branch gcc_gp1_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_gp1_clk", >> - .parent_names = (const char *[]){ >> - "gp1_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &gp1_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1856,8 +1873,8 @@ static struct clk_branch gcc_gp2_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_gp2_clk", >> - .parent_names = (const char *[]){ >> - "gp2_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &gp2_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1874,8 +1891,8 @@ static struct clk_branch gcc_gp3_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_gp3_clk", >> - .parent_names = (const char *[]){ >> - "gp3_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &gp3_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1944,8 +1961,8 @@ static struct clk_branch gcc_mdss_byte0_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_byte0_clk", >> - .parent_names = (const char *[]){ >> - "byte0_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &byte0_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1962,8 +1979,8 @@ static struct clk_branch gcc_mdss_esc0_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_esc0_clk", >> - .parent_names = (const char *[]){ >> - "esc0_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &esc0_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1980,8 +1997,8 @@ static struct clk_branch gcc_mdss_hdmi_app_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_hdmi_app_clk", >> - .parent_names = (const char *[]){ >> - "hdmi_app_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &hdmi_app_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -1998,8 +2015,8 @@ static struct clk_branch gcc_mdss_hdmi_pclk_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_hdmi_pclk_clk", >> - .parent_names = (const char *[]){ >> - "hdmi_pclk_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &hdmi_pclk_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2016,8 +2033,8 @@ static struct clk_branch gcc_mdss_mdp_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_mdp_clk", >> - .parent_names = (const char *[]){ >> - "mdp_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &mdp_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2034,8 +2051,8 @@ static struct clk_branch gcc_mdss_pclk0_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_pclk0_clk", >> - .parent_names = (const char *[]){ >> - "pclk0_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &pclk0_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2052,8 +2069,8 @@ static struct clk_branch gcc_mdss_vsync_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_mdss_vsync_clk", >> - .parent_names = (const char *[]){ >> - "vsync_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &vsync_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2083,8 +2100,8 @@ static struct clk_branch gcc_oxili_gfx3d_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_oxili_gfx3d_clk", >> - .parent_names = (const char *[]){ >> - "gfx3d_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &gfx3d_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2101,8 +2118,8 @@ static struct clk_branch gcc_pcie_0_aux_clk = { >> .enable_mask = BIT(27), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_pcie_0_aux_clk", >> - .parent_names = (const char *[]){ >> - "pcie_0_aux_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &pcie_0_aux_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2145,8 +2162,8 @@ static struct clk_branch gcc_pcie_0_pipe_clk = { >> .enable_mask = BIT(28), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_pcie_0_pipe_clk", >> - .parent_names = (const char *[]){ >> - "pcie_0_pipe_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &pcie_0_pipe_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2204,8 +2221,8 @@ static struct clk_branch gcc_pdm2_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_pdm2_clk", >> - .parent_names = (const char *[]){ >> - "pdm2_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &pdm2_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2314,8 +2331,8 @@ static struct clk_branch gcc_sdcc1_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_sdcc1_apps_clk", >> - .parent_names = (const char *[]){ >> - "sdcc1_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &sdcc1_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2332,8 +2349,8 @@ static struct clk_branch gcc_sdcc1_ice_core_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_sdcc1_ice_core_clk", >> - .parent_names = (const char *[]){ >> - "sdcc1_ice_core_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &sdcc1_ice_core_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2376,8 +2393,8 @@ static struct clk_branch gcc_sdcc2_apps_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_sdcc2_apps_clk", >> - .parent_names = (const char *[]){ >> - "sdcc2_apps_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &sdcc2_apps_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2407,8 +2424,8 @@ static struct clk_branch gcc_sys_noc_usb3_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_sys_noc_usb3_clk", >> - .parent_names = (const char *[]){ >> - "usb30_master_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &usb30_master_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .ops = &clk_branch2_ops, >> @@ -2437,8 +2454,8 @@ static struct clk_branch gcc_usb20_mock_utmi_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_usb20_mock_utmi_clk", >> - .parent_names = (const char *[]){ >> - "usb20_mock_utmi_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &usb20_mock_utmi_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2468,8 +2485,8 @@ static struct clk_branch gcc_usb30_master_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_usb30_master_clk", >> - .parent_names = (const char *[]){ >> - "usb30_master_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &usb30_master_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2486,8 +2503,8 @@ static struct clk_branch gcc_usb30_mock_utmi_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_usb30_mock_utmi_clk", >> - .parent_names = (const char *[]){ >> - "usb30_mock_utmi_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &usb30_mock_utmi_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2517,8 +2534,8 @@ static struct clk_branch gcc_usb3_phy_aux_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_usb3_phy_aux_clk", >> - .parent_names = (const char *[]){ >> - "usb3_phy_aux_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &usb3_phy_aux_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT, >> @@ -2560,8 +2577,8 @@ static struct clk_branch gcc_usb_hs_system_clk = { >> .enable_mask = BIT(0), >> .hw.init = &(struct clk_init_data){ >> .name = "gcc_usb_hs_system_clk", >> - .parent_names = (const char *[]){ >> - "usb_hs_system_clk_src", >> + .parent_hws = (const struct clk_hw*[]) { >> + &usb_hs_system_clk_src.clkr.hw, >> }, >> .num_parents = 1, >> .flags = CLK_SET_RATE_PARENT,