clk.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef __MACH_MMP_CLK_H
  2. #define __MACH_MMP_CLK_H
  3. #include <linux/clk-provider.h>
  4. #include <linux/clkdev.h>
  5. #define APBC_NO_BUS_CTRL BIT(0)
  6. #define APBC_POWER_CTRL BIT(1)
  7. struct clk_factor_masks {
  8. unsigned int factor;
  9. unsigned int num_mask;
  10. unsigned int den_mask;
  11. unsigned int num_shift;
  12. unsigned int den_shift;
  13. };
  14. struct clk_factor_tbl {
  15. unsigned int num;
  16. unsigned int den;
  17. };
  18. extern struct clk *mmp_clk_register_pll2(const char *name,
  19. const char *parent_name, unsigned long flags);
  20. extern struct clk *mmp_clk_register_apbc(const char *name,
  21. const char *parent_name, void __iomem *base,
  22. unsigned int delay, unsigned int apbc_flags, spinlock_t *lock);
  23. extern struct clk *mmp_clk_register_apmu(const char *name,
  24. const char *parent_name, void __iomem *base, u32 enable_mask,
  25. spinlock_t *lock);
  26. extern struct clk *mmp_clk_register_factor(const char *name,
  27. const char *parent_name, unsigned long flags,
  28. void __iomem *base, struct clk_factor_masks *masks,
  29. struct clk_factor_tbl *ftbl, unsigned int ftbl_cnt);
  30. #endif