Haavard Skinnemoen | 5f97f7f | 2006-09-25 23:32:13 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Clock management for AT32AP CPUs |
| 3 | * |
| 4 | * Copyright (C) 2006 Atmel Corporation |
| 5 | * |
Andrew Victor | 9d04126 | 2007-02-05 11:42:07 +0100 | [diff] [blame] | 6 | * Based on arch/arm/mach-at91/clock.c |
Haavard Skinnemoen | 5f97f7f | 2006-09-25 23:32:13 -0700 | [diff] [blame] | 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; |