| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2007-02-05 11:42:07 +01:00
										 |  |  |  * linux/arch/arm/mach-at91/clock.h | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-02 07:27:07 +01:00
										 |  |  | #include <linux/clkdev.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | #define CLK_TYPE_PRIMARY	0x1
 | 
					
						
							|  |  |  | #define CLK_TYPE_PLL		0x2
 | 
					
						
							|  |  |  | #define CLK_TYPE_PROGRAMMABLE	0x4
 | 
					
						
							|  |  |  | #define CLK_TYPE_PERIPHERAL	0x8
 | 
					
						
							| 
									
										
										
										
											2006-12-01 11:27:31 +01:00
										 |  |  | #define CLK_TYPE_SYSTEM		0x10
 | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct clk { | 
					
						
							|  |  |  | 	struct list_head node; | 
					
						
							|  |  |  | 	const char	*name;		/* unique clock name */ | 
					
						
							| 
									
										
										
										
											2011-02-02 07:27:07 +01:00
										 |  |  | 	struct clk_lookup cl; | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | 	unsigned long	rate_hz; | 
					
						
							| 
									
										
										
										
											2013-03-22 13:24:12 +00:00
										 |  |  | 	unsigned	div;		/* parent clock divider */ | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | 	struct clk	*parent; | 
					
						
							| 
									
										
										
										
											2013-03-22 13:24:12 +00:00
										 |  |  | 	unsigned	pid;		/* peripheral ID */ | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | 	u32		pmc_mask; | 
					
						
							|  |  |  | 	void		(*mode)(struct clk *, int); | 
					
						
							| 
									
										
										
										
											2009-12-15 21:57:27 +01:00
										 |  |  | 	unsigned	id:3;		/* PCK0..4, or 32k/main/a/b */ | 
					
						
							| 
									
										
										
										
											2006-09-27 10:50:59 +01:00
										 |  |  | 	unsigned	type;		/* clock type */ | 
					
						
							|  |  |  | 	u16		users; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern int __init clk_register(struct clk *clk); | 
					
						
							| 
									
										
										
										
											2011-02-02 07:27:07 +01:00
										 |  |  | extern struct clk mck; | 
					
						
							|  |  |  | extern struct clk utmi_clk; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CLKDEV_CON_ID(_id, _clk)			\
 | 
					
						
							|  |  |  | 	{						\ | 
					
						
							|  |  |  | 		.con_id = _id,				\ | 
					
						
							|  |  |  | 		.clk = _clk,				\ | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CLKDEV_CON_DEV_ID(_con_id, _dev_id, _clk)	\
 | 
					
						
							|  |  |  | 	{						\ | 
					
						
							|  |  |  | 		.con_id = _con_id,			\ | 
					
						
							|  |  |  | 		.dev_id = _dev_id,			\ | 
					
						
							|  |  |  | 		.clk = _clk,				\ | 
					
						
							|  |  |  | 	} |