Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
clock.h
Go to the documentation of this file.
1 /*
2  * linux/arch/arm/mach-w90x900/clock.h
3  *
4  * Copyright (c) 2008 Nuvoton technology corporation
5  *
6  * Wan ZongShun <[email protected]>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License.
11  */
12 
13 #include <linux/clkdev.h>
14 
15 void nuc900_clk_enable(struct clk *clk, int enable);
16 void nuc900_subclk_enable(struct clk *clk, int enable);
17 
18 struct clk {
19  unsigned long cken;
20  unsigned int enabled;
21  void (*enable)(struct clk *, int enable);
22 };
23 
24 #define DEFINE_CLK(_name, _ctrlbit) \
25 struct clk clk_##_name = { \
26  .enable = nuc900_clk_enable, \
27  .cken = (1 << _ctrlbit), \
28  }
29 
30 #define DEFINE_SUBCLK(_name, _ctrlbit) \
31 struct clk clk_##_name = { \
32  .enable = nuc900_subclk_enable, \
33  .cken = (1 << _ctrlbit), \
34  }
35 
36 
37 #define DEF_CLKLOOK(_clk, _devname, _conname) \
38  { \
39  .clk = _clk, \
40  .dev_id = _devname, \
41  .con_id = _conname, \
42  }
43