Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6.git] / arch / arm / mach-bcmring / clock.h
1 /*****************************************************************************
2 * Copyright 2001 - 2009 Broadcom Corporation.  All rights reserved.
3 *
4 * Unless you and Broadcom execute a separate written software license
5 * agreement governing use of this software, this software is licensed to you
6 * under the terms of the GNU General Public License version 2, available at
7 * http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
8 *
9 * Notwithstanding the above, under no circumstances may you combine this
10 * software in any way with any other Broadcom software provided under a
11 * license other than the GPL, without Broadcom's express prior written
12 * consent.
13 *****************************************************************************/
14 #include <mach/csp/chipcHw_def.h>
15
16 #define CLK_TYPE_PRIMARY         1      /* primary clock must NOT have a parent */
17 #define CLK_TYPE_PLL1            2      /* PPL1 */
18 #define CLK_TYPE_PLL2            4      /* PPL2 */
19 #define CLK_TYPE_PROGRAMMABLE    8      /* programmable clock rate */
20 #define CLK_TYPE_BYPASSABLE      16     /* parent can be changed */
21
22 #define CLK_MODE_XTAL            1      /* clock source is from crystal */
23
24 struct clk {
25         const char *name;       /* clock name */
26         unsigned int type;      /* clock type */
27         unsigned int mode;      /* current mode */
28         volatile int use_bypass;        /* indicate if it's in bypass mode */
29         chipcHw_CLOCK_e csp_id; /* clock ID for CSP CHIPC */
30         unsigned long rate_hz;  /* clock rate in Hz */
31         unsigned int use_cnt;   /* usage count */
32         struct clk *parent;     /* parent clock */
33 };