aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-bcmring/clock.h
blob: 5e0b9813897366ba42fe17401457d920b00b2a2e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*****************************************************************************
* Copyright 2001 - 2009 Broadcom Corporation.  All rights reserved.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
* under the terms of the GNU General Public License version 2, available at
* http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
*
* Notwithstanding the above, under no circumstances may you combine this
* software in any way with any other Broadcom software provided under a
* license other than the GPL, without Broadcom's express prior written
* consent.
*****************************************************************************/
#include <mach/csp/chipcHw_def.h>

#define CLK_TYPE_PRIMARY         1	/* primary clock must NOT have a parent */
#define CLK_TYPE_PLL1            2	/* PPL1 */
#define CLK_TYPE_PLL2            4	/* PPL2 */
#define CLK_TYPE_PROGRAMMABLE    8	/* programmable clock rate */
#define CLK_TYPE_BYPASSABLE      16	/* parent can be changed */

#define CLK_MODE_XTAL            1	/* clock source is from crystal */

struct clk {
	const char *name;	/* clock name */
	unsigned int type;	/* clock type */
	unsigned int mode;	/* current mode */
	volatile int use_bypass;	/* indicate if it's in bypass mode */
	chipcHw_CLOCK_e csp_id;	/* clock ID for CSP CHIPC */
	unsigned long rate_hz;	/* clock rate in Hz */
	unsigned int use_cnt;	/* usage count */
	struct clk *parent;	/* parent clock */
};