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-at91/clock.h
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 
9 #include <linux/clkdev.h>
10 
11 #define CLK_TYPE_PRIMARY 0x1
12 #define CLK_TYPE_PLL 0x2
13 #define CLK_TYPE_PROGRAMMABLE 0x4
14 #define CLK_TYPE_PERIPHERAL 0x8
15 #define CLK_TYPE_SYSTEM 0x10
16 
17 
18 struct clk {
19  struct list_head node;
20  const char *name; /* unique clock name */
21  struct clk_lookup cl;
22  unsigned long rate_hz;
23  struct clk *parent;
25  void (*mode)(struct clk *, int);
26  unsigned id:3; /* PCK0..4, or 32k/main/a/b */
27  unsigned type; /* clock type */
29 };
30 
31 
32 extern int __init clk_register(struct clk *clk);
33 extern struct clk mck;
34 extern struct clk utmi_clk;
35 
36 #define CLKDEV_CON_ID(_id, _clk) \
37  { \
38  .con_id = _id, \
39  .clk = _clk, \
40  }
41 
42 #define CLKDEV_CON_DEV_ID(_con_id, _dev_id, _clk) \
43  { \
44  .con_id = _con_id, \
45  .dev_id = _dev_id, \
46  .clk = _clk, \
47  }