|  | /* | 
|  | * Clock management for AT32AP CPUs | 
|  | * | 
|  | * Copyright (C) 2006 Atmel Corporation | 
|  | * | 
|  | * Based on arch/arm/mach-at91/clock.c | 
|  | *   Copyright (C) 2005 David Brownell | 
|  | *   Copyright (C) 2005 Ivan Kokshaysky | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or modify | 
|  | * it under the terms of the GNU General Public License version 2 as | 
|  | * published by the Free Software Foundation. | 
|  | */ | 
|  | #include <linux/clk.h> | 
|  | #include <linux/list.h> | 
|  |  | 
|  |  | 
|  | void at32_clk_register(struct clk *clk); | 
|  |  | 
|  | struct clk { | 
|  | struct list_head list;		/* linking element */ | 
|  | const char	*name;		/* Clock name/function */ | 
|  | struct device	*dev;		/* Device the clock is used by */ | 
|  | struct clk	*parent;	/* Parent clock, if any */ | 
|  | void		(*mode)(struct clk *clk, int enabled); | 
|  | unsigned long	(*get_rate)(struct clk *clk); | 
|  | long		(*set_rate)(struct clk *clk, unsigned long rate, | 
|  | int apply); | 
|  | int		(*set_parent)(struct clk *clk, struct clk *parent); | 
|  | u16		users;		/* Enabled if non-zero */ | 
|  | u16		index;		/* Sibling index */ | 
|  | }; |