提交 a16e9703 编写于 作者: T Tony Lindgren

ARM: OMAP2: Clean up 24xx clock code

Clean up 24xx clock code to sync it with linux-omap tree.
Signed-off-by: NTony Lindgren <tony@atomide.com>
上级 2150ef46
/* /*
* linux/arch/arm/mach-omap2/clock.c * linux/arch/arm/mach-omap2/clock.c
* *
* Copyright (C) 2005 Texas Instruments Inc. * Copyright (C) 2005-2008 Texas Instruments, Inc.
* Richard Woodruff <r-woodruff2@ti.com> * Copyright (C) 2004-2008 Nokia Corporation
* Created for OMAP2.
*
* Cleaned up and modified to use omap shared clock framework by
* Tony Lindgren <tony@atomide.com>
* *
* Copyright (C) 2007 Texas Instruments, Inc. * Contacts:
* Copyright (C) 2007 Nokia Corporation * Richard Woodruff <r-woodruff2@ti.com>
* Paul Walmsley * Paul Walmsley
* *
* Based on omap1 clock.c, Copyright (C) 2004 - 2005 Nokia corporation
* Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
*
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
......
/* /*
* linux/arch/arm/mach-omap2/clock.h * linux/arch/arm/mach-omap2/clock.h
* *
* Copyright (C) 2005 Texas Instruments Inc. * Copyright (C) 2005-2008 Texas Instruments, Inc.
* Richard Woodruff <r-woodruff2@ti.com> * Copyright (C) 2004-2008 Nokia Corporation
* Created for OMAP2.
*
* Copyright (C) 2004 Nokia corporation
* Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
* Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc
* *
* Copyright (C) 2007 Texas Instruments, Inc. * Contacts:
* Copyright (C) 2007 Nokia Corporation * Richard Woodruff <r-woodruff2@ti.com>
* Paul Walmsley * Paul Walmsley
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
......
/* /*
* linux/arch/arm/mach-omap2/clock.c * linux/arch/arm/mach-omap2/clock.c
* *
* Copyright (C) 2005 Texas Instruments Inc. * Copyright (C) 2005-2008 Texas Instruments, Inc.
* Richard Woodruff <r-woodruff2@ti.com> * Copyright (C) 2004-2008 Nokia Corporation
* Created for OMAP2.
* *
* Cleaned up and modified to use omap shared clock framework by * Contacts:
* Tony Lindgren <tony@atomide.com> * Richard Woodruff <r-woodruff2@ti.com>
* Paul Walmsley
* *
* Based on omap1 clock.c, Copyright (C) 2004 - 2005 Nokia corporation * Based on earlier work by Tuukka Tikkanen, Tony Lindgren,
* Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> * Gordon McNutt and RidgeRun, Inc.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
...@@ -60,6 +60,21 @@ static struct clk *sclk; ...@@ -60,6 +60,21 @@ static struct clk *sclk;
* Omap24xx specific clock functions * Omap24xx specific clock functions
*-------------------------------------------------------------------------*/ *-------------------------------------------------------------------------*/
/* This actually returns the rate of core_ck, not dpll_ck. */
static u32 omap2_get_dpll_rate_24xx(struct clk *tclk)
{
long long dpll_clk;
u8 amult;
dpll_clk = omap2_get_dpll_rate(tclk);
amult = cm_read_mod_reg(PLL_MOD, CM_CLKSEL2);
amult &= OMAP24XX_CORE_CLK_SRC_MASK;
dpll_clk *= amult;
return dpll_clk;
}
static int omap2_enable_osc_ck(struct clk *clk) static int omap2_enable_osc_ck(struct clk *clk)
{ {
u32 pcc; u32 pcc;
...@@ -94,21 +109,6 @@ static void omap2_sys_clk_recalc(struct clk * clk) ...@@ -94,21 +109,6 @@ static void omap2_sys_clk_recalc(struct clk * clk)
} }
#endif /* OLD_CK */ #endif /* OLD_CK */
/* This actually returns the rate of core_ck, not dpll_ck. */
static u32 omap2_get_dpll_rate_24xx(struct clk *tclk)
{
long long dpll_clk;
u8 amult;
dpll_clk = omap2_get_dpll_rate(tclk);
amult = cm_read_mod_reg(PLL_MOD, CM_CLKSEL2);
amult &= OMAP24XX_CORE_CLK_SRC_MASK;
dpll_clk *= amult;
return dpll_clk;
}
/* Enable an APLL if off */ /* Enable an APLL if off */
static int omap2_clk_fixed_enable(struct clk *clk) static int omap2_clk_fixed_enable(struct clk *clk)
{ {
...@@ -333,7 +333,7 @@ static int omap2_select_table_rate(struct clk *clk, unsigned long rate) ...@@ -333,7 +333,7 @@ static int omap2_select_table_rate(struct clk *clk, unsigned long rate)
if (!found_speed) { if (!found_speed) {
printk(KERN_INFO "Could not set MPU rate to %luMHz\n", printk(KERN_INFO "Could not set MPU rate to %luMHz\n",
rate / 1000000); rate / 1000000);
return -EINVAL; return -EINVAL;
} }
......
/* /*
* linux/arch/arm/mach-omap24xx/clock.h * linux/arch/arm/mach-omap2/clock24xx.h
* *
* Copyright (C) 2005 Texas Instruments Inc. * Copyright (C) 2005-2008 Texas Instruments, Inc.
* Richard Woodruff <r-woodruff2@ti.com> * Copyright (C) 2004-2008 Nokia Corporation
* Created for OMAP2.
* *
* Copyright (C) 2004 Nokia corporation * Contacts:
* Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> * Richard Woodruff <r-woodruff2@ti.com>
* Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc * Paul Walmsley
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
...@@ -25,18 +24,18 @@ ...@@ -25,18 +24,18 @@
#include "cm-regbits-24xx.h" #include "cm-regbits-24xx.h"
#include "sdrc.h" #include "sdrc.h"
static void omap2_table_mpu_recalc(struct clk * clk); static void omap2_table_mpu_recalc(struct clk *clk);
static int omap2_select_table_rate(struct clk * clk, unsigned long rate); static int omap2_select_table_rate(struct clk *clk, unsigned long rate);
static long omap2_round_to_table_rate(struct clk * clk, unsigned long rate); static long omap2_round_to_table_rate(struct clk *clk, unsigned long rate);
static void omap2_sys_clk_recalc(struct clk * clk); static void omap2_sys_clk_recalc(struct clk *clk);
static void omap2_osc_clk_recalc(struct clk * clk); static void omap2_osc_clk_recalc(struct clk *clk);
static void omap2_sys_clk_recalc(struct clk * clk); static void omap2_sys_clk_recalc(struct clk *clk);
static void omap2_dpll_recalc(struct clk * clk); static void omap2_dpll_recalc(struct clk *clk);
static int omap2_clk_fixed_enable(struct clk * clk); static int omap2_clk_fixed_enable(struct clk *clk);
static void omap2_clk_fixed_disable(struct clk * clk); static void omap2_clk_fixed_disable(struct clk *clk);
static int omap2_enable_osc_ck(struct clk * clk); static int omap2_enable_osc_ck(struct clk *clk);
static void omap2_disable_osc_ck(struct clk * clk); static void omap2_disable_osc_ck(struct clk *clk);
static int omap2_reprogram_dpll(struct clk * clk, unsigned long rate); static int omap2_reprogram_dpll(struct clk *clk, unsigned long rate);
/* Key dividers which make up a PRCM set. Ratio's for a PRCM are mandated. /* Key dividers which make up a PRCM set. Ratio's for a PRCM are mandated.
* xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU,CM_CLKSEL_DSP * xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU,CM_CLKSEL_DSP
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册