Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 137205
b: refs/heads/master
c: 30c730f
h: refs/heads/master
i:
  137203: ae2537c
v: v3
  • Loading branch information
Sascha Hauer committed Mar 13, 2009
1 parent e9fce8f commit db80c53
Show file tree
Hide file tree
Showing 14 changed files with 31 additions and 37 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a2865197a5dad23c619c84f44b7fdf7fdbef3f9c
refs/heads/master: 30c730f8f90b08d77a73998d2ee34cf1f56e95cc
5 changes: 4 additions & 1 deletion trunk/arch/arm/mach-mx1/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

#include <mach/clock.h>
#include <mach/hardware.h>
#include <mach/common.h>
#include "crm_regs.h"

static int _clk_enable(struct clk *clk)
Expand Down Expand Up @@ -594,7 +595,7 @@ static struct clk *mxc_clks[] = {
&rtc_clk,
};

int __init mxc_clocks_init(unsigned long fref)
int __init mx1_clocks_init(unsigned long fref)
{
struct clk **clkp;
unsigned int reg;
Expand Down Expand Up @@ -625,5 +626,7 @@ int __init mxc_clocks_init(unsigned long fref)
clk_enable(&hclk);
clk_enable(&fclk);

mxc_timer_init(&gpt_clk);

return 0;
}
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx1/mx1ads.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,7 @@ static void __init mx1ads_init(void)

static void __init mx1ads_timer_init(void)
{
mxc_clocks_init(32000);
mxc_timer_init("gpt_clk");
mx1_clocks_init(32000);
}

struct sys_timer mx1ads_timer = {
Expand Down
5 changes: 4 additions & 1 deletion trunk/arch/arm/mach-mx2/clock_imx27.c
Original file line number Diff line number Diff line change
Expand Up @@ -1551,7 +1551,7 @@ static void __init probe_mxc_clocks(void)
* must be called very early to get information about the
* available clock rate when the timer framework starts
*/
int __init mxc_clocks_init(unsigned long fref)
int __init mx27_clocks_init(unsigned long fref)
{
u32 cscr;
struct clk **clkp;
Expand Down Expand Up @@ -1593,5 +1593,8 @@ int __init mxc_clocks_init(unsigned long fref)
#ifdef CONFIG_DEBUG_LL_CONSOLE
clk_enable(&uart1_clk[0]);
#endif

mxc_timer_init(&gpt1_clk[0]);

return 0;
}
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx2/mx27ads.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,7 @@ static void __init mx27ads_timer_init(void)
if ((__raw_readw(PBC_VERSION_REG) & CKIH_27MHZ_BIT_SET) == 0)
fref = 27000000;

mxc_clocks_init(fref);
mxc_timer_init("gpt_clk.0");
mx27_clocks_init(fref);
}

struct sys_timer mx27ads_timer = {
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx2/pcm038.c
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,7 @@ static void __init pcm038_init(void)

static void __init pcm038_timer_init(void)
{
mxc_clocks_init(26000000);
mxc_timer_init("gpt_clk.0");
mx27_clocks_init(26000000);
}

struct sys_timer pcm038_timer = {
Expand Down
5 changes: 4 additions & 1 deletion trunk/arch/arm/mach-mx3/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <linux/io.h>
#include <mach/clock.h>
#include <mach/hardware.h>
#include <mach/common.h>
#include <asm/div64.h>

#include "crm_regs.h"
Expand Down Expand Up @@ -1071,7 +1072,7 @@ static struct clk *mxc_clks[] = {
&iim_clk,
};

int __init mxc_clocks_init(unsigned long fref)
int __init mx31_clocks_init(unsigned long fref)
{
u32 reg;
struct clk **clkp;
Expand Down Expand Up @@ -1121,6 +1122,8 @@ int __init mxc_clocks_init(unsigned long fref)
__raw_writel(reg, MXC_CCM_PMCR1);
}

mxc_timer_init(&ipg_clk);

return 0;
}

3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx3/mx31ads.c
Original file line number Diff line number Diff line change
Expand Up @@ -244,8 +244,7 @@ static void __init mxc_board_init(void)

static void __init mx31ads_timer_init(void)
{
mxc_clocks_init(26000000);
mxc_timer_init("ipg_clk.0");
mx31_clocks_init(26000000);
}

struct sys_timer mx31ads_timer = {
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx3/mx31lite.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,7 @@ static void __init mxc_board_init(void)

static void __init mx31lite_timer_init(void)
{
mxc_clocks_init(26000000);
mxc_timer_init("ipg_clk.0");
mx31_clocks_init(26000000);
}

struct sys_timer mx31lite_timer = {
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx3/mx31moboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,7 @@ void __init mx31moboard_map_io(void)

static void __init mx31moboard_timer_init(void)
{
mxc_clocks_init(26000000);
mxc_timer_init("ipg_clk.0");
mx31_clocks_init(26000000);
}

struct sys_timer mx31moboard_timer = {
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx3/mx31pdk.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ static void __init mxc_board_init(void)

static void __init mx31pdk_timer_init(void)
{
mxc_clocks_init(26000000);
mxc_timer_init("ipg_clk.0");
mx31_clocks_init(26000000);
}

static struct sys_timer mx31pdk_timer = {
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-mx3/pcm037.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,7 @@ void __init pcm037_map_io(void)

static void __init pcm037_timer_init(void)
{
mxc_clocks_init(26000000);
mxc_timer_init("ipg_clk.0");
mx31_clocks_init(26000000);
}

struct sys_timer pcm037_timer = {
Expand Down
7 changes: 5 additions & 2 deletions trunk/arch/arm/plat-mxc/include/mach/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,14 @@
#define __ASM_ARCH_MXC_COMMON_H__

struct platform_device;
struct clk;

extern void mxc_map_io(void);
extern void mxc_init_irq(void);
extern void mxc_timer_init(const char *clk_timer);
extern int mxc_clocks_init(unsigned long fref);
extern void mxc_timer_init(struct clk *timer_clk);
extern int mx1_clocks_init(unsigned long fref);
extern int mx27_clocks_init(unsigned long fref);
extern int mx31_clocks_init(unsigned long fref);
extern int mxc_register_gpios(void);
extern int mxc_register_device(struct platform_device *pdev, void *data);

Expand Down
20 changes: 5 additions & 15 deletions trunk/arch/arm/plat-mxc/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,6 @@
static struct clock_event_device clockevent_mxc;
static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED;

/* clock source for the timer */
static struct clk *timer_clk;

/* clock source */

static cycle_t mxc_get_cycles(void)
Expand All @@ -53,7 +50,7 @@ static struct clocksource clocksource_mxc = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};

static int __init mxc_clocksource_init(void)
static int __init mxc_clocksource_init(struct clk *timer_clk)
{
unsigned int clock;

Expand Down Expand Up @@ -177,7 +174,7 @@ static struct clock_event_device clockevent_mxc = {
.rating = 200,
};

static int __init mxc_clockevent_init(void)
static int __init mxc_clockevent_init(struct clk *timer_clk)
{
unsigned int clock;

Expand All @@ -197,14 +194,8 @@ static int __init mxc_clockevent_init(void)
return 0;
}

void __init mxc_timer_init(const char *clk_timer)
void __init mxc_timer_init(struct clk *timer_clk)
{
timer_clk = clk_get(NULL, clk_timer);
if (!timer_clk) {
printk(KERN_ERR"Cannot determine timer clock. Giving up.\n");
return;
}

clk_enable(timer_clk);

/*
Expand All @@ -219,10 +210,9 @@ void __init mxc_timer_init(const char *clk_timer)
TIMER_BASE + MXC_TCTL);

/* init and register the timer to the framework */
mxc_clocksource_init();
mxc_clockevent_init();
mxc_clocksource_init(timer_clk);
mxc_clockevent_init(timer_clk);

/* Make irqs happen */
setup_irq(TIMER_INTERRUPT, &mxc_timer_irq);
}

0 comments on commit db80c53

Please sign in to comment.