stv0991_cgu.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /*
  2. * (C) Copyright 2014
  3. * Vikas Manocha, ST Micoelectronics, vikas.manocha@st.com
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #ifndef _STV0991_CGU_H
  8. #define _STV0991_CGU_H
  9. struct stv0991_cgu_regs {
  10. u32 cpu_freq; /* offset 0x0 */
  11. u32 icn2_freq; /* offset 0x4 */
  12. u32 dma_freq; /* offset 0x8 */
  13. u32 isp_freq; /* offset 0xc */
  14. u32 h264_freq; /* offset 0x10 */
  15. u32 osif_freq; /* offset 0x14 */
  16. u32 ren_freq; /* offset 0x18 */
  17. u32 tim_freq; /* offset 0x1c */
  18. u32 sai_freq; /* offset 0x20 */
  19. u32 eth_freq; /* offset 0x24 */
  20. u32 i2c_freq; /* offset 0x28 */
  21. u32 spi_freq; /* offset 0x2c */
  22. u32 uart_freq; /* offset 0x30 */
  23. u32 qspi_freq; /* offset 0x34 */
  24. u32 sdio_freq; /* offset 0x38 */
  25. u32 usi_freq; /* offset 0x3c */
  26. u32 can_line_freq; /* offset 0x40 */
  27. u32 debug_freq; /* offset 0x44 */
  28. u32 trace_freq; /* offset 0x48 */
  29. u32 stm_freq; /* offset 0x4c */
  30. u32 eth_ctrl; /* offset 0x50 */
  31. u32 reserved[3]; /* offset 0x54 */
  32. u32 osc_ctrl; /* offset 0x60 */
  33. u32 pll1_ctrl; /* offset 0x64 */
  34. u32 pll1_freq; /* offset 0x68 */
  35. u32 pll1_fract; /* offset 0x6c */
  36. u32 pll1_spread; /* offset 0x70 */
  37. u32 pll1_status; /* offset 0x74 */
  38. u32 pll2_ctrl; /* offset 0x78 */
  39. u32 pll2_freq; /* offset 0x7c */
  40. u32 pll2_fract; /* offset 0x80 */
  41. u32 pll2_spread; /* offset 0x84 */
  42. u32 pll2_status; /* offset 0x88 */
  43. u32 cgu_enable_1; /* offset 0x8c */
  44. u32 cgu_enable_2; /* offset 0x90 */
  45. u32 cgu_isp_pulse; /* offset 0x94 */
  46. u32 cgu_h264_pulse; /* offset 0x98 */
  47. u32 cgu_osif_pulse; /* offset 0x9c */
  48. u32 cgu_ren_pulse; /* offset 0xa0 */
  49. };
  50. /* CGU Timer */
  51. #define CLK_TMR_OSC 0
  52. #define CLK_TMR_MCLK 1
  53. #define CLK_TMR_PLL1 2
  54. #define CLK_TMR_PLL2 3
  55. #define MDIV_SHIFT_TMR 3
  56. #define DIV_SHIFT_TMR 6
  57. #define TIMER1_CLK_CFG (0 << DIV_SHIFT_TMR \
  58. | 0 << MDIV_SHIFT_TMR | CLK_TMR_MCLK)
  59. /* Clock Enable/Disable */
  60. #define TIMER1_CLK_EN (1 << 15)
  61. /* CGU Uart config */
  62. #define CLK_UART_MCLK 0
  63. #define CLK_UART_PLL1 1
  64. #define CLK_UART_PLL2 2
  65. #define MDIV_SHIFT_UART 3
  66. #define DIV_SHIFT_UART 6
  67. #define UART_CLK_CFG (4 << DIV_SHIFT_UART \
  68. | 1 << MDIV_SHIFT_UART | CLK_UART_MCLK)
  69. /* CGU Ethernet clock config */
  70. #define CLK_ETH_MCLK 0
  71. #define CLK_ETH_PLL1 1
  72. #define CLK_ETH_PLL2 2
  73. #define MDIV_SHIFT_ETH 3
  74. #define DIV_SHIFT_ETH 6
  75. #define DIV_ETH_125 9
  76. #define DIV_ETH_50 12
  77. #define DIV_ETH_P2P 15
  78. #define ETH_CLK_CFG (4 << DIV_ETH_P2P | 4 << DIV_ETH_50 \
  79. | 1 << DIV_ETH_125 \
  80. | 0 << DIV_SHIFT_ETH \
  81. | 3 << MDIV_SHIFT_ETH | CLK_ETH_PLL1)
  82. /* CGU Ethernet control */
  83. #define ETH_CLK_TX_EXT_PHY 0
  84. #define ETH_CLK_TX_125M 1
  85. #define ETH_CLK_TX_25M 2
  86. #define ETH_CLK_TX_2M5 3
  87. #define ETH_CLK_TX_DIS 7
  88. #define ETH_CLK_RX_EXT_PHY 0
  89. #define ETH_CLK_RX_25M 1
  90. #define ETH_CLK_RX_2M5 2
  91. #define ETH_CLK_RX_DIS 3
  92. #define RX_CLK_SHIFT 3
  93. #define ETH_CLK_MASK ~(0x1F)
  94. #define ETH_PHY_MODE_GMII 0
  95. #define ETH_PHY_MODE_RMII 1
  96. #define ETH_PHY_CLK_DIS 1
  97. #define ETH_CLK_CTRL (ETH_CLK_RX_EXT_PHY << RX_CLK_SHIFT \
  98. | ETH_CLK_TX_EXT_PHY)
  99. /* CGU qspi clock */
  100. #define DIV_HCLK1_SHIFT 9
  101. #define DIV_CRYP_SHIFT 6
  102. #define MDIV_QSPI_SHIFT 3
  103. #define CLK_QSPI_OSC 0
  104. #define CLK_QSPI_MCLK 1
  105. #define CLK_QSPI_PLL1 2
  106. #define CLK_QSPI_PLL2 3
  107. #define QSPI_CLK_CTRL (3 << DIV_HCLK1_SHIFT \
  108. | 1 << DIV_CRYP_SHIFT \
  109. | 0 << MDIV_QSPI_SHIFT \
  110. | CLK_QSPI_OSC)
  111. #endif