cru_rk3368.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2017 Rockchip Electronics Co., Ltd
  4. * Author: Andy Yan <andy.yan@rock-chips.com>
  5. */
  6. #ifndef _ASM_ARCH_CRU_RK3368_H
  7. #define _ASM_ARCH_CRU_RK3368_H
  8. #include <common.h>
  9. /* RK3368 clock numbers */
  10. enum rk3368_pll_id {
  11. APLLB,
  12. APLLL,
  13. DPLL,
  14. CPLL,
  15. GPLL,
  16. NPLL,
  17. PLL_COUNT,
  18. };
  19. struct rk3368_cru {
  20. struct rk3368_pll {
  21. unsigned int con0;
  22. unsigned int con1;
  23. unsigned int con2;
  24. unsigned int con3;
  25. } pll[6];
  26. unsigned int reserved[0x28];
  27. unsigned int clksel_con[56];
  28. unsigned int reserved1[8];
  29. unsigned int clkgate_con[25];
  30. unsigned int reserved2[7];
  31. unsigned int glb_srst_fst_val;
  32. unsigned int glb_srst_snd_val;
  33. unsigned int reserved3[0x1e];
  34. unsigned int softrst_con[15];
  35. unsigned int reserved4[0x11];
  36. unsigned int misc_con;
  37. unsigned int glb_cnt_th;
  38. unsigned int glb_rst_con;
  39. unsigned int glb_rst_st;
  40. unsigned int reserved5[0x1c];
  41. unsigned int sdmmc_con[2];
  42. unsigned int sdio0_con[2];
  43. unsigned int sdio1_con[2];
  44. unsigned int emmc_con[2];
  45. };
  46. check_member(rk3368_cru, emmc_con[1], 0x41c);
  47. struct rk3368_clk_priv {
  48. struct rk3368_cru *cru;
  49. };
  50. enum {
  51. /* PLL CON0 */
  52. PLL_NR_SHIFT = 8,
  53. PLL_NR_MASK = GENMASK(13, 8),
  54. PLL_OD_SHIFT = 0,
  55. PLL_OD_MASK = GENMASK(3, 0),
  56. /* PLL CON1 */
  57. PLL_LOCK_STA = BIT(31),
  58. PLL_NF_SHIFT = 0,
  59. PLL_NF_MASK = GENMASK(12, 0),
  60. /* PLL CON2 */
  61. PLL_BWADJ_SHIFT = 0,
  62. PLL_BWADJ_MASK = GENMASK(11, 0),
  63. /* PLL CON3 */
  64. PLL_MODE_SHIFT = 8,
  65. PLL_MODE_MASK = GENMASK(9, 8),
  66. PLL_MODE_SLOW = 0,
  67. PLL_MODE_NORMAL = 1,
  68. PLL_MODE_DEEP_SLOW = 3,
  69. PLL_RESET_SHIFT = 5,
  70. PLL_RESET = 1,
  71. PLL_RESET_MASK = GENMASK(5, 5),
  72. /* CLKSEL12_CON */
  73. MCU_STCLK_DIV_SHIFT = 8,
  74. MCU_STCLK_DIV_MASK = GENMASK(10, 8),
  75. MCU_PLL_SEL_SHIFT = 7,
  76. MCU_PLL_SEL_MASK = BIT(7),
  77. MCU_PLL_SEL_CPLL = 0,
  78. MCU_PLL_SEL_GPLL = 1,
  79. MCU_CLK_DIV_SHIFT = 0,
  80. MCU_CLK_DIV_MASK = GENMASK(4, 0),
  81. /* CLKSEL_CON25 */
  82. CLK_SARADC_DIV_CON_SHIFT = 8,
  83. CLK_SARADC_DIV_CON_MASK = GENMASK(15, 8),
  84. CLK_SARADC_DIV_CON_WIDTH = 8,
  85. /* CLKSEL43_CON */
  86. GMAC_DIV_CON_SHIFT = 0x0,
  87. GMAC_DIV_CON_MASK = GENMASK(4, 0),
  88. GMAC_PLL_SHIFT = 6,
  89. GMAC_PLL_MASK = GENMASK(7, 6),
  90. GMAC_PLL_SELECT_NEW = (0x0 << GMAC_PLL_SHIFT),
  91. GMAC_PLL_SELECT_CODEC = (0x1 << GMAC_PLL_SHIFT),
  92. GMAC_PLL_SELECT_GENERAL = (0x2 << GMAC_PLL_SHIFT),
  93. GMAC_MUX_SEL_EXTCLK = BIT(8),
  94. /* CLKSEL51_CON */
  95. MMC_PLL_SEL_SHIFT = 8,
  96. MMC_PLL_SEL_MASK = GENMASK(9, 8),
  97. MMC_PLL_SEL_CPLL = (0 << MMC_PLL_SEL_SHIFT),
  98. MMC_PLL_SEL_GPLL = (1 << MMC_PLL_SEL_SHIFT),
  99. MMC_PLL_SEL_USBPHY_480M = (2 << MMC_PLL_SEL_SHIFT),
  100. MMC_PLL_SEL_24M = (3 << MMC_PLL_SEL_SHIFT),
  101. MMC_CLK_DIV_SHIFT = 0,
  102. MMC_CLK_DIV_MASK = GENMASK(6, 0),
  103. /* SOFTRST1_CON */
  104. MCU_PO_SRST_MASK = BIT(13),
  105. MCU_SYS_SRST_MASK = BIT(12),
  106. DMA1_SRST_REQ = BIT(2),
  107. /* SOFTRST4_CON */
  108. DMA2_SRST_REQ = BIT(0),
  109. /* GLB_RST_CON */
  110. PMU_GLB_SRST_CTRL_SHIFT = 2,
  111. PMU_GLB_SRST_CTRL_MASK = GENMASK(3, 2),
  112. PMU_RST_BY_FST_GLB_SRST = 0,
  113. PMU_RST_BY_SND_GLB_SRST = 1,
  114. PMU_RST_DISABLE = 2,
  115. WDT_GLB_SRST_CTRL_SHIFT = 1,
  116. WDT_GLB_SRST_CTRL_MASK = BIT(1),
  117. WDT_TRIGGER_SND_GLB_SRST = 0,
  118. WDT_TRIGGER_FST_GLB_SRST = 1,
  119. TSADC_GLB_SRST_CTRL_SHIFT = 0,
  120. TSADC_GLB_SRST_CTRL_MASK = BIT(0),
  121. TSADC_TRIGGER_SND_GLB_SRST = 0,
  122. TSADC_TRIGGER_FST_GLB_SRST = 1,
  123. };
  124. #endif