|
@@ -1621,6 +1621,10 @@ struct clk *tegra_clk_register_pllxc(const char *name, const char *parent_name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
err = _setup_dynamic_ramp(pll_params, clk_base, parent_rate);
|
|
|
if (err)
|
|
|
return ERR_PTR(err);
|
|
@@ -1659,6 +1663,10 @@ struct clk *tegra_clk_register_pllre(const char *name, const char *parent_name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
pll = _tegra_init_pll(clk_base, pmc, pll_params, lock);
|
|
|
if (IS_ERR(pll))
|
|
|
return ERR_CAST(pll);
|
|
@@ -1715,6 +1723,10 @@ struct clk *tegra_clk_register_pllm(const char *name, const char *parent_name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
pll_params->flags |= TEGRA_PLL_BYPASS;
|
|
|
pll_params->flags |= TEGRA_PLLM;
|
|
|
pll = _tegra_init_pll(clk_base, pmc, pll_params, lock);
|
|
@@ -2121,6 +2133,10 @@ struct clk *tegra_clk_register_pllc_tegra210(const char *name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
pll_params->flags |= TEGRA_PLL_BYPASS;
|
|
|
pll = _tegra_init_pll(clk_base, pmc, pll_params, lock);
|
|
|
if (IS_ERR(pll))
|
|
@@ -2158,6 +2174,10 @@ struct clk *tegra_clk_register_pllxc_tegra210(const char *name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
pll = _tegra_init_pll(clk_base, pmc, pll_params, lock);
|
|
|
if (IS_ERR(pll))
|
|
|
return ERR_CAST(pll);
|
|
@@ -2205,6 +2225,10 @@ struct clk *tegra_clk_register_pllss_tegra210(const char *name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
/* initialize PLL to minimum rate */
|
|
|
|
|
|
cfg.m = _pll_fixed_mdiv(pll_params, parent_rate);
|
|
@@ -2269,6 +2293,10 @@ struct clk *tegra_clk_register_pllmb(const char *name, const char *parent_name,
|
|
|
|
|
|
pll_params->vco_min = _clip_vco_min(pll_params->vco_min, parent_rate);
|
|
|
|
|
|
+ if (pll_params->adjust_vco)
|
|
|
+ pll_params->vco_min = pll_params->adjust_vco(pll_params,
|
|
|
+ parent_rate);
|
|
|
+
|
|
|
pll_params->flags |= TEGRA_PLL_BYPASS;
|
|
|
pll_params->flags |= TEGRA_PLLMB;
|
|
|
pll = _tegra_init_pll(clk_base, pmc, pll_params, lock);
|