Commit | Line | Data |
---|---|---|
5f97f7f9 HS |
1 | /* |
2 | * Clock management for AT32AP CPUs | |
3 | * | |
4 | * Copyright (C) 2006 Atmel Corporation | |
5 | * | |
9d041268 | 6 | * Based on arch/arm/mach-at91/clock.c |
5f97f7f9 HS |
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> | |
300bb762 AR |
15 | #include <linux/list.h> |
16 | ||
17 | ||
18 | void at32_clk_register(struct clk *clk); | |
5f97f7f9 HS |
19 | |
20 | struct clk { | |
300bb762 | 21 | struct list_head list; /* linking element */ |
5f97f7f9 HS |
22 | const char *name; /* Clock name/function */ |
23 | struct device *dev; /* Device the clock is used by */ | |
24 | struct clk *parent; /* Parent clock, if any */ | |
25 | void (*mode)(struct clk *clk, int enabled); | |
26 | unsigned long (*get_rate)(struct clk *clk); | |
27 | long (*set_rate)(struct clk *clk, unsigned long rate, | |
28 | int apply); | |
29 | int (*set_parent)(struct clk *clk, struct clk *parent); | |
30 | u16 users; /* Enabled if non-zero */ | |
31 | u16 index; /* Sibling index */ | |
32 | }; | |
dd5e1339 AR |
33 | |
34 | unsigned long pba_clk_get_rate(struct clk *clk); | |
35 | void pba_clk_mode(struct clk *clk, int enabled); |