2009-06-10 22:50:44 +08:00
|
|
|
/*
|
|
|
|
* linux/arch/arm/mach-w90x900/clock.h
|
|
|
|
*
|
|
|
|
* Copyright (c) 2008 Nuvoton technology corporation
|
|
|
|
*
|
|
|
|
* Wan ZongShun <mcuos.com@gmail.com>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <asm/clkdev.h>
|
|
|
|
|
2009-08-21 14:07:46 +08:00
|
|
|
void nuc900_clk_enable(struct clk *clk, int enable);
|
|
|
|
void nuc900_subclk_enable(struct clk *clk, int enable);
|
2009-06-10 22:50:44 +08:00
|
|
|
|
|
|
|
struct clk {
|
|
|
|
unsigned long cken;
|
|
|
|
unsigned int enabled;
|
|
|
|
void (*enable)(struct clk *, int enable);
|
|
|
|
};
|
|
|
|
|
|
|
|
#define DEFINE_CLK(_name, _ctrlbit) \
|
|
|
|
struct clk clk_##_name = { \
|
2009-08-21 14:07:46 +08:00
|
|
|
.enable = nuc900_clk_enable, \
|
2009-06-10 22:50:44 +08:00
|
|
|
.cken = (1 << _ctrlbit), \
|
|
|
|
}
|
|
|
|
|
2009-07-14 22:10:43 +08:00
|
|
|
#define DEFINE_SUBCLK(_name, _ctrlbit) \
|
|
|
|
struct clk clk_##_name = { \
|
2009-08-21 14:07:46 +08:00
|
|
|
.enable = nuc900_subclk_enable, \
|
2009-07-14 22:10:43 +08:00
|
|
|
.cken = (1 << _ctrlbit), \
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2009-06-10 22:50:44 +08:00
|
|
|
#define DEF_CLKLOOK(_clk, _devname, _conname) \
|
|
|
|
{ \
|
|
|
|
.clk = _clk, \
|
|
|
|
.dev_id = _devname, \
|
|
|
|
.con_id = _conname, \
|
|
|
|
}
|
|
|
|
|