提交 7ba28813 编写于 作者: P Peter De Schrijver 提交者: Stephen Warren

clk: tegra: introduce TEGRA_PLL_HAS_LOCK_ENABLE

Tegra114 PLLC2 and PLLC3 don't have a lock enable bit. The lock bits are
always functional.
Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
Acked-by: NMike Turquette <mturquette@linaro.org>
Signed-off-by: NStephen Warren <swarren@nvidia.com>
上级 dd93587b
...@@ -108,6 +108,9 @@ static void clk_pll_enable_lock(struct tegra_clk_pll *pll) ...@@ -108,6 +108,9 @@ static void clk_pll_enable_lock(struct tegra_clk_pll *pll)
if (!(pll->flags & TEGRA_PLL_USE_LOCK)) if (!(pll->flags & TEGRA_PLL_USE_LOCK))
return; return;
if (!(pll->flags & TEGRA_PLL_HAS_LOCK_ENABLE))
return;
val = pll_readl_misc(pll); val = pll_readl_misc(pll);
val |= BIT(pll->params->lock_enable_bit_idx); val |= BIT(pll->params->lock_enable_bit_idx);
pll_writel_misc(val, pll); pll_writel_misc(val, pll);
...@@ -675,6 +678,7 @@ struct clk *tegra_clk_register_pll(const char *name, const char *parent_name, ...@@ -675,6 +678,7 @@ struct clk *tegra_clk_register_pll(const char *name, const char *parent_name,
struct clk *clk; struct clk *clk;
pll_flags |= TEGRA_PLL_BYPASS; pll_flags |= TEGRA_PLL_BYPASS;
pll_flags |= TEGRA_PLL_HAS_LOCK_ENABLE;
pll = _tegra_init_pll(clk_base, pmc, fixed_rate, pll_params, pll_flags, pll = _tegra_init_pll(clk_base, pmc, fixed_rate, pll_params, pll_flags,
freq_table, lock); freq_table, lock);
if (IS_ERR(pll)) if (IS_ERR(pll))
...@@ -698,6 +702,7 @@ struct clk *tegra_clk_register_plle(const char *name, const char *parent_name, ...@@ -698,6 +702,7 @@ struct clk *tegra_clk_register_plle(const char *name, const char *parent_name,
struct clk *clk; struct clk *clk;
pll_flags |= TEGRA_PLL_LOCK_MISC | TEGRA_PLL_BYPASS; pll_flags |= TEGRA_PLL_LOCK_MISC | TEGRA_PLL_BYPASS;
pll_flags |= TEGRA_PLL_HAS_LOCK_ENABLE;
pll = _tegra_init_pll(clk_base, pmc, fixed_rate, pll_params, pll_flags, pll = _tegra_init_pll(clk_base, pmc, fixed_rate, pll_params, pll_flags,
freq_table, lock); freq_table, lock);
if (IS_ERR(pll)) if (IS_ERR(pll))
......
...@@ -185,6 +185,7 @@ struct tegra_clk_pll_params { ...@@ -185,6 +185,7 @@ struct tegra_clk_pll_params {
* TEGRA_PLL_LOCK_MISC - Lock bit is in the misc register instead of the * TEGRA_PLL_LOCK_MISC - Lock bit is in the misc register instead of the
* base register. * base register.
* TEGRA_PLL_BYPASS - PLL has bypass bit * TEGRA_PLL_BYPASS - PLL has bypass bit
* TEGRA_PLL_HAS_LOCK_ENABLE - PLL has bit to enable lock monitoring
*/ */
struct tegra_clk_pll { struct tegra_clk_pll {
struct clk_hw hw; struct clk_hw hw;
...@@ -215,6 +216,7 @@ struct tegra_clk_pll { ...@@ -215,6 +216,7 @@ struct tegra_clk_pll {
#define TEGRA_PLLE_CONFIGURE BIT(7) #define TEGRA_PLLE_CONFIGURE BIT(7)
#define TEGRA_PLL_LOCK_MISC BIT(8) #define TEGRA_PLL_LOCK_MISC BIT(8)
#define TEGRA_PLL_BYPASS BIT(9) #define TEGRA_PLL_BYPASS BIT(9)
#define TEGRA_PLL_HAS_LOCK_ENABLE BIT(10)
extern const struct clk_ops tegra_clk_pll_ops; extern const struct clk_ops tegra_clk_pll_ops;
extern const struct clk_ops tegra_clk_plle_ops; extern const struct clk_ops tegra_clk_plle_ops;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册