clk.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Clocks for ux500 platforms
  3. *
  4. * Copyright (C) 2012 ST-Ericsson SA
  5. * Author: Ulf Hansson <ulf.hansson@linaro.org>
  6. *
  7. * License terms: GNU General Public License (GPL) version 2
  8. */
  9. #ifndef __UX500_CLK_H
  10. #define __UX500_CLK_H
  11. #include <linux/clk.h>
  12. #include <linux/device.h>
  13. struct clk *clk_reg_prcc_pclk(const char *name,
  14. const char *parent_name,
  15. unsigned int phy_base,
  16. u32 cg_sel,
  17. unsigned long flags);
  18. struct clk *clk_reg_prcc_kclk(const char *name,
  19. const char *parent_name,
  20. unsigned int phy_base,
  21. u32 cg_sel,
  22. unsigned long flags);
  23. struct clk *clk_reg_prcmu_scalable(const char *name,
  24. const char *parent_name,
  25. u8 cg_sel,
  26. unsigned long rate,
  27. unsigned long flags);
  28. struct clk *clk_reg_prcmu_gate(const char *name,
  29. const char *parent_name,
  30. u8 cg_sel,
  31. unsigned long flags);
  32. struct clk *clk_reg_prcmu_scalable_rate(const char *name,
  33. const char *parent_name,
  34. u8 cg_sel,
  35. unsigned long rate,
  36. unsigned long flags);
  37. struct clk *clk_reg_prcmu_rate(const char *name,
  38. const char *parent_name,
  39. u8 cg_sel,
  40. unsigned long flags);
  41. struct clk *clk_reg_prcmu_opp_gate(const char *name,
  42. const char *parent_name,
  43. u8 cg_sel,
  44. unsigned long flags);
  45. struct clk *clk_reg_prcmu_opp_volt_scalable(const char *name,
  46. const char *parent_name,
  47. u8 cg_sel,
  48. unsigned long rate,
  49. unsigned long flags);
  50. struct clk *clk_reg_sysctrl_gate(struct device *dev,
  51. const char *name,
  52. const char *parent_name,
  53. u16 reg_sel,
  54. u8 reg_mask,
  55. u8 reg_bits,
  56. unsigned long enable_delay_us,
  57. unsigned long flags);
  58. struct clk *clk_reg_sysctrl_gate_fixed_rate(struct device *dev,
  59. const char *name,
  60. const char *parent_name,
  61. u16 reg_sel,
  62. u8 reg_mask,
  63. u8 reg_bits,
  64. unsigned long rate,
  65. unsigned long enable_delay_us,
  66. unsigned long flags);
  67. struct clk *clk_reg_sysctrl_set_parent(struct device *dev,
  68. const char *name,
  69. const char **parent_names,
  70. u8 num_parents,
  71. u16 *reg_sel,
  72. u8 *reg_mask,
  73. u8 *reg_bits,
  74. unsigned long flags);
  75. #endif /* __UX500_CLK_H */