Commit c45ae598 authored by Abhishek Sahu's avatar Abhishek Sahu Committed by Stephen Boyd

clk: qcom: support for alpha mode configuration

The current configuration does not fully configure PLL alpha mode
and values so this patch

1. Configures PLL_ALPHA_VAL_U for PLL which supports 40 bit alpha.
2. Adds alpha enable and alpha mode configuration support.
Signed-off-by: default avatarAbhishek Sahu <absahu@codeaurora.org>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
parent 26945e0a
...@@ -143,6 +143,9 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, ...@@ -143,6 +143,9 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
regmap_write(regmap, PLL_CONFIG_CTL_U(pll), regmap_write(regmap, PLL_CONFIG_CTL_U(pll),
config->config_ctl_hi_val); config->config_ctl_hi_val);
if (pll_alpha_width(pll) > 32)
regmap_write(regmap, PLL_ALPHA_VAL_U(pll), config->alpha_hi);
val = config->main_output_mask; val = config->main_output_mask;
val |= config->aux_output_mask; val |= config->aux_output_mask;
val |= config->aux2_output_mask; val |= config->aux2_output_mask;
...@@ -150,6 +153,8 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, ...@@ -150,6 +153,8 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
val |= config->pre_div_val; val |= config->pre_div_val;
val |= config->post_div_val; val |= config->post_div_val;
val |= config->vco_val; val |= config->vco_val;
val |= config->alpha_en_mask;
val |= config->alpha_mode_mask;
mask = config->main_output_mask; mask = config->main_output_mask;
mask |= config->aux_output_mask; mask |= config->aux_output_mask;
......
...@@ -83,12 +83,15 @@ struct clk_alpha_pll_postdiv { ...@@ -83,12 +83,15 @@ struct clk_alpha_pll_postdiv {
struct alpha_pll_config { struct alpha_pll_config {
u32 l; u32 l;
u32 alpha; u32 alpha;
u32 alpha_hi;
u32 config_ctl_val; u32 config_ctl_val;
u32 config_ctl_hi_val; u32 config_ctl_hi_val;
u32 main_output_mask; u32 main_output_mask;
u32 aux_output_mask; u32 aux_output_mask;
u32 aux2_output_mask; u32 aux2_output_mask;
u32 early_output_mask; u32 early_output_mask;
u32 alpha_en_mask;
u32 alpha_mode_mask;
u32 pre_div_val; u32 pre_div_val;
u32 pre_div_mask; u32 pre_div_mask;
u32 post_div_val; u32 post_div_val;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment