clock.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. struct clk {
  16. const char *name;
  17. struct clk *parent;
  18. struct clk *propagate_next;
  19. u32 rate;
  20. u32 user_rate;
  21. s8 usecount;
  22. u32 flags;
  23. u32 scale_reg;
  24. u8 enable_shift;
  25. u32 enable_reg;
  26. u8 enable_shift1;
  27. u32 enable_reg1;
  28. u32 parent_switch_reg;
  29. u32(*round_rate) (struct clk *, u32);
  30. int (*set_rate) (struct clk *, u32);
  31. int (*set_parent) (struct clk * clk, struct clk * parent);
  32. int (*enable)(struct clk *);
  33. void (*disable)(struct clk *);
  34. };
  35. /* Flags */
  36. #define RATE_PROPAGATES (1<<0)
  37. #define NEEDS_INITIALIZATION (1<<1)
  38. #define PARENT_SET_RATE (1<<2)
  39. #define FIXED_RATE (1<<3)
  40. #endif