|
@@ -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_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_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_mclk13",
|
|
|
+ .ops = &audio_ext_clk_ops,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
{
|
|
|
.pnctrl_info = {NULL},
|
|
|
.fact = {
|