diff --git a/asoc/codecs/audio-ext-clk-up.c b/asoc/codecs/audio-ext-clk-up.c index cabc9078dd..9a532926fd 100644 --- a/asoc/codecs/audio-ext-clk-up.c +++ b/asoc/codecs/audio-ext-clk-up.c @@ -35,6 +35,10 @@ enum { AUDIO_EXT_CLK_LPASS8, AUDIO_EXT_CLK_LPASS_AUDIO_HW_VOTE, AUDIO_EXT_CLK_LPASS9, + AUDIO_EXT_CLK_LPASS10, + AUDIO_EXT_CLK_LPASS11, + AUDIO_EXT_CLK_LPASS12, + AUDIO_EXT_CLK_LPASS13, AUDIO_EXT_CLK_LPASS_MAX, AUDIO_EXT_CLK_EXTERNAL_PLL = AUDIO_EXT_CLK_LPASS_MAX, AUDIO_EXT_CLK_MAX, @@ -161,16 +165,16 @@ static u8 audio_ext_clk_get_parent(struct clk_hw *hw) } pr_debug("%s: parent index = %u\n", __func__, ret); return ret; - } else if ((clk_priv->clk_src >= AUDIO_EXT_CLK_LPASS6) && - (clk_priv->clk_src < AUDIO_EXT_CLK_LPASS_MAX) && + } else if ((clk_priv->clk_src >= AUDIO_EXT_CLK_LPASS10) && + (clk_priv->clk_src < AUDIO_EXT_CLK_LPASS13) && clk_priv->clk_name) { - for (i = 0; i < num_parents; i++) { - if (!strcmp(parent_names[i], - clk_priv->clk_name)) - ret = i; - } - pr_debug("%s: parent index = %u\n", __func__, ret); - return ret; + for (i = 0; i < num_parents; i++) { + if (!strcmp(parent_names[i], + clk_priv->clk_name)) + ret = i; + } + pr_debug("%s: parent index = %u\n", __func__, ret); + return ret; } else return 0; } @@ -382,9 +386,6 @@ static struct audio_ext_clk audio_clk_array[] = { .div = 1, .hw.init = &(struct clk_init_data){ .name = "audio_lpass_mclk6", - .parent_names = (const char *[]) - { "audio_lpass_mclk5" }, - .num_parents = 1, .ops = &audio_ext_clk_ops, }, }, @@ -396,9 +397,6 @@ static struct audio_ext_clk audio_clk_array[] = { .div = 1, .hw.init = &(struct clk_init_data){ .name = "audio_lpass_mclk7", - .parent_names = (const char *[]) - { "audio_lpass_mclk5" }, - .num_parents = 1, .ops = &audio_ext_clk_ops, }, }, @@ -419,9 +417,6 @@ static struct audio_ext_clk audio_clk_array[] = { .div = 1, .hw.init = &(struct clk_init_data){ .name = "audio_lpass_mclk8", - .parent_names = (const char *[]) - { "audio_lpass_mclk5" }, - .num_parents = 1, .ops = &audio_ext_clk_ops, }, }, @@ -442,13 +437,63 @@ static struct audio_ext_clk audio_clk_array[] = { .div = 1, .hw.init = &(struct clk_init_data){ .name = "audio_lpass_mclk9", + .ops = &audio_ext_clk_ops, + }, + }, + }, + { + .pnctrl_info = {NULL}, + .fact = { + .mult = 1, + .div = 1, + .hw.init = &(struct clk_init_data){ + .name = "audio_lpass_mclk10", .parent_names = (const char *[]) - { "audio_lpass_mclk5" }, + { "audio_lpass_mclk6" }, .num_parents = 1, .ops = &audio_ext_clk_ops, }, }, }, + { + .pnctrl_info = {NULL}, + .fact = { + .mult = 1, + .div = 1, + .hw.init = &(struct clk_init_data){ + .name = "audio_lpass_mclk11", + .parent_names = (const char *[]) + { "audio_lpass_mclk6" }, + .num_parents = 1, + .ops = &audio_ext_clk_ops, + }, + }, + }, + { + .pnctrl_info = {NULL}, + .fact = { + .mult = 1, + .div = 1, + .hw.init = &(struct clk_init_data){ + .name = "audio_lpass_mclk12", + .parent_names = (const char *[]) + { "audio_lpass_mclk6" }, + .num_parents = 1, + .ops = &audio_ext_clk_ops, + }, + }, + }, + { + .pnctrl_info = {NULL}, + .fact = { + .mult = 1, + .div = 1, + .hw.init = &(struct clk_init_data){ + .name = "audio_lpass_mclk13", + .ops = &audio_ext_clk_ops, + }, + }, + }, { .pnctrl_info = {NULL}, .fact = {