Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 342453
b: refs/heads/master
c: 7a2bd1c
h: refs/heads/master
i:
  342451: 3b84ee6
v: v3
  • Loading branch information
Paul Walmsley committed Nov 13, 2012
1 parent 3355daa commit 28138e5
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ed1ebc4948fdfe4c68865e5543b4a68e5a55973b
refs/heads/master: 7a2bd1cc3926327c0393deb52e8300af75b1c9e1
35 changes: 35 additions & 0 deletions trunk/arch/arm/mach-omap2/clkt2xxx_apll.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,27 @@

/* Private functions */

#ifdef CONFIG_COMMON_CLK
/**
* omap2xxx_clk_apll_locked - is the APLL locked?
* @hw: struct clk_hw * of the APLL to check
*
* If the APLL IP block referred to by @hw indicates that it's locked,
* return true; otherwise, return false.
*/
static bool omap2xxx_clk_apll_locked(struct clk_hw *hw)
{
struct clk_hw_omap *clk = to_clk_hw_omap(hw);
u32 r, apll_mask;

apll_mask = EN_APLL_LOCKED << clk->enable_bit;

r = omap2_cm_read_mod_reg(PLL_MOD, CM_CLKEN);

return ((r & apll_mask) == apll_mask) ? true : false;
}
#endif

#ifdef CONFIG_COMMON_CLK
int omap2_clk_apll96_enable(struct clk_hw *hw)
#else
Expand Down Expand Up @@ -110,6 +131,20 @@ static void _apll54_disable(struct clk *clk)
omap2xxx_cm_apll54_disable();
}

#ifdef CONFIG_COMMON_CLK
unsigned long omap2_clk_apll54_recalc(struct clk_hw *hw,
unsigned long parent_rate)
{
return (omap2xxx_clk_apll_locked(hw)) ? 54000000 : 0;
}

unsigned long omap2_clk_apll96_recalc(struct clk_hw *hw,
unsigned long parent_rate)
{
return (omap2xxx_clk_apll_locked(hw)) ? 96000000 : 0;
}
#endif

/* Public data */
#ifdef CONFIG_COMMON_CLK
const struct clk_hw_omap_ops clkhwops_apll54 = {
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/arm/mach-omap2/clock2xxx.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ unsigned long omap2_dpllcore_recalc(struct clk_hw *hw,
int omap2_reprogram_dpllcore(struct clk_hw *clk, unsigned long rate,
unsigned long parent_rate);
void omap2xxx_clkt_dpllcore_init(struct clk_hw *hw);
unsigned long omap2_clk_apll54_recalc(struct clk_hw *hw,
unsigned long parent_rate);
unsigned long omap2_clk_apll96_recalc(struct clk_hw *hw,
unsigned long parent_rate);
#else
unsigned long omap2_table_mpu_recalc(struct clk *clk);
int omap2_select_table_rate(struct clk *clk, unsigned long rate);
Expand Down

0 comments on commit 28138e5

Please sign in to comment.