[PATCH] avr32 architecture
[linux-2.6.git] / arch / avr32 / mach-at32ap / clock.h
1 /*
2  * Clock management for AT32AP CPUs
3  *
4  * Copyright (C) 2006 Atmel Corporation
5  *
6  * Based on arch/arm/mach-at91rm9200/clock.c
7  *   Copyright (C) 2005 David Brownell
8  *   Copyright (C) 2005 Ivan Kokshaysky
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2 as
12  * published by the Free Software Foundation.
13  */
14 #include <linux/clk.h>
15
16 struct clk {
17         const char      *name;          /* Clock name/function */
18         struct device   *dev;           /* Device the clock is used by */
19         struct clk      *parent;        /* Parent clock, if any */
20         void            (*mode)(struct clk *clk, int enabled);
21         unsigned long   (*get_rate)(struct clk *clk);
22         long            (*set_rate)(struct clk *clk, unsigned long rate,
23                                     int apply);
24         int             (*set_parent)(struct clk *clk, struct clk *parent);
25         u16             users;          /* Enabled if non-zero */
26         u16             index;          /* Sibling index */
27 };
28
29 extern struct clk *at32_clock_list[];
30 extern unsigned int at32_nr_clocks;