1 /* 2 * arch/arm/mach-pnx4008/clock.h 3 * 4 * Clock control driver for PNX4008 - internal header file 5 * 6 * Author: Vitaly Wool <source@mvista.com> 7 * 8 * 2006 (c) MontaVista Software, Inc. This file is licensed under 9 * the terms of the GNU General Public License version 2. This program 10 * is licensed "as is" without any warranty of any kind, whether express 11 * or implied. 12 */ 13 #ifndef __ARCH_ARM_PNX4008_CLOCK_H__ 14 #define __ARCH_ARM_PNX4008_CLOCK_H__ 15 16 struct clk { 17 const char *name; 18 struct clk *parent; 19 struct clk *propagate_next; 20 u32 rate; 21 u32 user_rate; 22 s8 usecount; 23 u32 flags; 24 u32 scale_reg; 25 u8 enable_shift; 26 u32 enable_reg; 27 u8 enable_shift1; 28 u32 enable_reg1; 29 u32 parent_switch_reg; 30 u32(*round_rate) (struct clk *, u32); 31 int (*set_rate) (struct clk *, u32); 32 int (*set_parent) (struct clk * clk, struct clk * parent); 33 int (*enable)(struct clk *); 34 void (*disable)(struct clk *); 35 }; 36 37 /* Flags */ 38 #define RATE_PROPAGATES (1<<0) 39 #define NEEDS_INITIALIZATION (1<<1) 40 #define PARENT_SET_RATE (1<<2) 41 #define FIXED_RATE (1<<3) 42 43 #endif 44