clk-uniphier-mio.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2016 Socionext Inc.
  4. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  5. */
  6. #include "clk-uniphier.h"
  7. #define UNIPHIER_MIO_CLK_SD_FIXED \
  8. UNIPHIER_CLK_RATE(128, 44444444), \
  9. UNIPHIER_CLK_RATE(129, 33333333), \
  10. UNIPHIER_CLK_RATE(130, 50000000), \
  11. UNIPHIER_CLK_RATE(131, 66666667), \
  12. UNIPHIER_CLK_RATE(132, 100000000), \
  13. UNIPHIER_CLK_RATE(133, 40000000), \
  14. UNIPHIER_CLK_RATE(134, 25000000), \
  15. UNIPHIER_CLK_RATE(135, 22222222)
  16. #define UNIPHIER_MIO_CLK_SD(_id, ch) \
  17. { \
  18. .type = UNIPHIER_CLK_TYPE_MUX, \
  19. .id = (_id) + 32, \
  20. .data.mux = { \
  21. .parent_ids = { \
  22. 128, \
  23. 129, \
  24. 130, \
  25. 131, \
  26. 132, \
  27. 133, \
  28. 134, \
  29. 135, \
  30. }, \
  31. .num_parents = 8, \
  32. .reg = 0x30 + 0x200 * (ch), \
  33. .masks = { \
  34. 0x00031000, \
  35. 0x00031000, \
  36. 0x00031000, \
  37. 0x00031000, \
  38. 0x00001300, \
  39. 0x00001300, \
  40. 0x00001300, \
  41. 0x00001300, \
  42. }, \
  43. .vals = { \
  44. 0x00000000, \
  45. 0x00010000, \
  46. 0x00020000, \
  47. 0x00030000, \
  48. 0x00001000, \
  49. 0x00001100, \
  50. 0x00001200, \
  51. 0x00001300, \
  52. }, \
  53. }, \
  54. }, \
  55. UNIPHIER_CLK_GATE((_id), (_id) + 32, 0x20 + 0x200 * (ch), 8)
  56. #define UNIPHIER_MIO_CLK_USB2(id, ch) \
  57. UNIPHIER_CLK_GATE_SIMPLE((id), 0x20 + 0x200 * (ch), 28)
  58. #define UNIPHIER_MIO_CLK_USB2_PHY(id, ch) \
  59. UNIPHIER_CLK_GATE_SIMPLE((id), 0x20 + 0x200 * (ch), 29)
  60. #define UNIPHIER_MIO_CLK_DMAC(id) \
  61. UNIPHIER_CLK_GATE_SIMPLE((id), 0x20, 25)
  62. const struct uniphier_clk_data uniphier_mio_clk_data[] = {
  63. UNIPHIER_MIO_CLK_SD_FIXED,
  64. UNIPHIER_MIO_CLK_SD(0, 0),
  65. UNIPHIER_MIO_CLK_SD(1, 1),
  66. UNIPHIER_MIO_CLK_SD(2, 2),
  67. UNIPHIER_MIO_CLK_DMAC(7),
  68. UNIPHIER_MIO_CLK_USB2(8, 0),
  69. UNIPHIER_MIO_CLK_USB2(9, 1),
  70. UNIPHIER_MIO_CLK_USB2(10, 2),
  71. UNIPHIER_MIO_CLK_USB2_PHY(12, 0),
  72. UNIPHIER_MIO_CLK_USB2_PHY(13, 1),
  73. UNIPHIER_MIO_CLK_USB2_PHY(14, 2),
  74. { /* sentinel */ }
  75. };