clock_slice.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*
  2. * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
  3. *
  4. * Author:
  5. * Peng Fan <Peng.Fan@freescale.com>
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #ifndef _ASM_ARCH_CLOCK_SLICE_H
  10. #define _ASM_ARCH_CLOCK_SLICE_H
  11. enum root_pre_div {
  12. CLK_ROOT_PRE_DIV1 = 0,
  13. CLK_ROOT_PRE_DIV2,
  14. CLK_ROOT_PRE_DIV3,
  15. CLK_ROOT_PRE_DIV4,
  16. CLK_ROOT_PRE_DIV5,
  17. CLK_ROOT_PRE_DIV6,
  18. CLK_ROOT_PRE_DIV7,
  19. CLK_ROOT_PRE_DIV8,
  20. };
  21. enum root_post_div {
  22. CLK_ROOT_POST_DIV1 = 0,
  23. CLK_ROOT_POST_DIV2,
  24. CLK_ROOT_POST_DIV3,
  25. CLK_ROOT_POST_DIV4,
  26. CLK_ROOT_POST_DIV5,
  27. CLK_ROOT_POST_DIV6,
  28. CLK_ROOT_POST_DIV7,
  29. CLK_ROOT_POST_DIV8,
  30. CLK_ROOT_POST_DIV9,
  31. CLK_ROOT_POST_DIV10,
  32. CLK_ROOT_POST_DIV11,
  33. CLK_ROOT_POST_DIV12,
  34. CLK_ROOT_POST_DIV13,
  35. CLK_ROOT_POST_DIV14,
  36. CLK_ROOT_POST_DIV15,
  37. CLK_ROOT_POST_DIV16,
  38. CLK_ROOT_POST_DIV17,
  39. CLK_ROOT_POST_DIV18,
  40. CLK_ROOT_POST_DIV19,
  41. CLK_ROOT_POST_DIV20,
  42. CLK_ROOT_POST_DIV21,
  43. CLK_ROOT_POST_DIV22,
  44. CLK_ROOT_POST_DIV23,
  45. CLK_ROOT_POST_DIV24,
  46. CLK_ROOT_POST_DIV25,
  47. CLK_ROOT_POST_DIV26,
  48. CLK_ROOT_POST_DIV27,
  49. CLK_ROOT_POST_DIV28,
  50. CLK_ROOT_POST_DIV29,
  51. CLK_ROOT_POST_DIV30,
  52. CLK_ROOT_POST_DIV31,
  53. CLK_ROOT_POST_DIV32,
  54. CLK_ROOT_POST_DIV33,
  55. CLK_ROOT_POST_DIV34,
  56. CLK_ROOT_POST_DIV35,
  57. CLK_ROOT_POST_DIV36,
  58. CLK_ROOT_POST_DIV37,
  59. CLK_ROOT_POST_DIV38,
  60. CLK_ROOT_POST_DIV39,
  61. CLK_ROOT_POST_DIV40,
  62. CLK_ROOT_POST_DIV41,
  63. CLK_ROOT_POST_DIV42,
  64. CLK_ROOT_POST_DIV43,
  65. CLK_ROOT_POST_DIV44,
  66. CLK_ROOT_POST_DIV45,
  67. CLK_ROOT_POST_DIV46,
  68. CLK_ROOT_POST_DIV47,
  69. CLK_ROOT_POST_DIV48,
  70. CLK_ROOT_POST_DIV49,
  71. CLK_ROOT_POST_DIV50,
  72. CLK_ROOT_POST_DIV51,
  73. CLK_ROOT_POST_DIV52,
  74. CLK_ROOT_POST_DIV53,
  75. CLK_ROOT_POST_DIV54,
  76. CLK_ROOT_POST_DIV55,
  77. CLK_ROOT_POST_DIV56,
  78. CLK_ROOT_POST_DIV57,
  79. CLK_ROOT_POST_DIV58,
  80. CLK_ROOT_POST_DIV59,
  81. CLK_ROOT_POST_DIV60,
  82. CLK_ROOT_POST_DIV61,
  83. CLK_ROOT_POST_DIV62,
  84. CLK_ROOT_POST_DIV63,
  85. CLK_ROOT_POST_DIV64,
  86. };
  87. enum root_auto_div {
  88. CLK_ROOT_AUTO_DIV1 = 0,
  89. CLK_ROOT_AUTO_DIV2,
  90. CLK_ROOT_AUTO_DIV4,
  91. CLK_ROOT_AUTO_DIV8,
  92. CLK_ROOT_AUTO_DIV16,
  93. };
  94. int clock_set_src(enum clk_root_index clock_id, enum clk_root_src clock_src);
  95. int clock_get_src(enum clk_root_index clock_id, enum clk_root_src *p_clock_src);
  96. int clock_set_prediv(enum clk_root_index clock_id, enum root_pre_div pre_div);
  97. int clock_get_prediv(enum clk_root_index clock_id, enum root_pre_div *pre_div);
  98. int clock_set_postdiv(enum clk_root_index clock_id, enum root_post_div div);
  99. int clock_get_postdiv(enum clk_root_index clock_id, enum root_post_div *div);
  100. int clock_set_autopostdiv(enum clk_root_index clock_id, enum root_auto_div div,
  101. int auto_en);
  102. int clock_get_autopostdiv(enum clk_root_index clock_id, enum root_auto_div *div,
  103. int *auto_en);
  104. int clock_get_target_val(enum clk_root_index clock_id, u32 *val);
  105. int clock_set_target_val(enum clk_root_index clock_id, u32 val);
  106. int clock_root_cfg(enum clk_root_index clock_id, enum root_pre_div pre_div,
  107. enum root_post_div post_div, enum clk_root_src clock_src);
  108. int clock_root_enabled(enum clk_root_index clock_id);
  109. int clock_enable(enum clk_ccgr_index index, bool enable);
  110. #endif