Re: [PATCH 10/15] clk: qcom: gcc-qcs404: use parent_hws/_data instead of parent_names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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
>  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,



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux