clk.h 2.5 KB

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