clock.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. struct list_head node;
  17. struct module *owner;
  18. const char *name;
  19. struct clk *parent;
  20. struct clk *propagate_next;
  21. u32 rate;
  22. u32 user_rate;
  23. s8 usecount;
  24. u32 flags;
  25. u32 scale_reg;
  26. u8 enable_shift;
  27. u32 enable_reg;
  28. u8 enable_shift1;
  29. u32 enable_reg1;
  30. u32 parent_switch_reg;
  31. u32(*round_rate) (struct clk *, u32);
  32. int (*set_rate) (struct clk *, u32);
  33. int (*set_parent) (struct clk * clk, struct clk * parent);
  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