clock_common_data.c 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /*
  2. * linux/arch/arm/mach-omap2/clock_common_data.c
  3. *
  4. * Copyright (C) 2005-2009 Texas Instruments, Inc.
  5. * Copyright (C) 2004-2009 Nokia Corporation
  6. *
  7. * Contacts:
  8. * Richard Woodruff <r-woodruff2@ti.com>
  9. * Paul Walmsley
  10. *
  11. * This program is free software; you can redistribute it and/or modify
  12. * it under the terms of the GNU General Public License version 2 as
  13. * published by the Free Software Foundation.
  14. *
  15. * This file contains clock data that is common to both the OMAP2xxx and
  16. * OMAP3xxx clock definition files.
  17. */
  18. #include <linux/clk-private.h>
  19. #include "clock.h"
  20. /* clksel_rate data common to 24xx/343x */
  21. const struct clksel_rate gpt_32k_rates[] = {
  22. { .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_3XXX },
  23. { .div = 0 }
  24. };
  25. const struct clksel_rate gpt_sys_rates[] = {
  26. { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX },
  27. { .div = 0 }
  28. };
  29. const struct clksel_rate gfx_l3_rates[] = {
  30. { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX },
  31. { .div = 2, .val = 2, .flags = RATE_IN_24XX | RATE_IN_3XXX },
  32. { .div = 3, .val = 3, .flags = RATE_IN_243X | RATE_IN_3XXX },
  33. { .div = 4, .val = 4, .flags = RATE_IN_243X | RATE_IN_3XXX },
  34. { .div = 0 }
  35. };
  36. const struct clksel_rate dsp_ick_rates[] = {
  37. { .div = 1, .val = 1, .flags = RATE_IN_24XX },
  38. { .div = 2, .val = 2, .flags = RATE_IN_24XX },
  39. { .div = 3, .val = 3, .flags = RATE_IN_243X },
  40. { .div = 0 },
  41. };
  42. /* clksel_rate blocks shared between OMAP44xx and AM33xx */
  43. const struct clksel_rate div_1_0_rates[] = {
  44. { .div = 1, .val = 0, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  45. { .div = 0 },
  46. };
  47. const struct clksel_rate div3_1to4_rates[] = {
  48. { .div = 1, .val = 0, .flags = RATE_IN_4430 },
  49. { .div = 2, .val = 1, .flags = RATE_IN_4430 },
  50. { .div = 4, .val = 2, .flags = RATE_IN_4430 },
  51. { .div = 0 },
  52. };
  53. const struct clksel_rate div_1_1_rates[] = {
  54. { .div = 1, .val = 1, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  55. { .div = 0 },
  56. };
  57. const struct clksel_rate div_1_2_rates[] = {
  58. { .div = 1, .val = 2, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  59. { .div = 0 },
  60. };
  61. const struct clksel_rate div_1_3_rates[] = {
  62. { .div = 1, .val = 3, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  63. { .div = 0 },
  64. };
  65. const struct clksel_rate div_1_4_rates[] = {
  66. { .div = 1, .val = 4, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  67. { .div = 0 },
  68. };
  69. const struct clksel_rate div31_1to31_rates[] = {
  70. { .div = 1, .val = 1, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  71. { .div = 2, .val = 2, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  72. { .div = 3, .val = 3, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  73. { .div = 4, .val = 4, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  74. { .div = 5, .val = 5, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  75. { .div = 6, .val = 6, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  76. { .div = 7, .val = 7, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  77. { .div = 8, .val = 8, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  78. { .div = 9, .val = 9, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  79. { .div = 10, .val = 10, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  80. { .div = 11, .val = 11, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  81. { .div = 12, .val = 12, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  82. { .div = 13, .val = 13, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  83. { .div = 14, .val = 14, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  84. { .div = 15, .val = 15, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  85. { .div = 16, .val = 16, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  86. { .div = 17, .val = 17, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  87. { .div = 18, .val = 18, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  88. { .div = 19, .val = 19, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  89. { .div = 20, .val = 20, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  90. { .div = 21, .val = 21, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  91. { .div = 22, .val = 22, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  92. { .div = 23, .val = 23, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  93. { .div = 24, .val = 24, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  94. { .div = 25, .val = 25, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  95. { .div = 26, .val = 26, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  96. { .div = 27, .val = 27, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  97. { .div = 28, .val = 28, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  98. { .div = 29, .val = 29, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  99. { .div = 30, .val = 30, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  100. { .div = 31, .val = 31, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
  101. { .div = 0 },
  102. };
  103. /* Clocks shared between various OMAP SoCs */
  104. static struct clk_ops dummy_ck_ops = {};
  105. struct clk dummy_ck = {
  106. .name = "dummy_clk",
  107. .ops = &dummy_ck_ops,
  108. .flags = CLK_IS_BASIC,
  109. };