grf_rk3188.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
  4. */
  5. #ifndef _ASM_ARCH_GRF_RK3188_H
  6. #define _ASM_ARCH_GRF_RK3188_H
  7. struct rk3188_grf_gpio_lh {
  8. u32 l;
  9. u32 h;
  10. };
  11. struct rk3188_grf {
  12. struct rk3188_grf_gpio_lh gpio_dir[4];
  13. struct rk3188_grf_gpio_lh gpio_do[4];
  14. struct rk3188_grf_gpio_lh gpio_en[4];
  15. u32 reserved[2];
  16. u32 gpio0c_iomux;
  17. u32 gpio0d_iomux;
  18. u32 gpio1a_iomux;
  19. u32 gpio1b_iomux;
  20. u32 gpio1c_iomux;
  21. u32 gpio1d_iomux;
  22. u32 gpio2a_iomux;
  23. u32 gpio2b_iomux;
  24. u32 gpio2c_iomux;
  25. u32 gpio2d_iomux;
  26. u32 gpio3a_iomux;
  27. u32 gpio3b_iomux;
  28. u32 gpio3c_iomux;
  29. u32 gpio3d_iomux;
  30. u32 soc_con0;
  31. u32 soc_con1;
  32. u32 soc_con2;
  33. u32 soc_status0;
  34. u32 busdmac_con[3];
  35. u32 peridmac_con[4];
  36. u32 cpu_con[6];
  37. u32 reserved0[2];
  38. u32 ddrc_con0;
  39. u32 ddrc_stat;
  40. u32 io_con[5];
  41. u32 soc_status1;
  42. u32 uoc0_con[4];
  43. u32 uoc1_con[4];
  44. u32 uoc2_con[2];
  45. u32 reserved1;
  46. u32 uoc3_con[2];
  47. u32 hsic_stat;
  48. u32 os_reg[8];
  49. u32 gpio0_p[3];
  50. u32 gpio1_p[3][4];
  51. u32 flash_data_p;
  52. u32 flash_cmd_p;
  53. };
  54. check_member(rk3188_grf, flash_cmd_p, 0x01a4);
  55. /* GRF_SOC_CON0 */
  56. enum {
  57. HSADC_CLK_DIR_SHIFT = 15,
  58. HSADC_CLK_DIR_MASK = 1,
  59. HSADC_SEL_SHIFT = 14,
  60. HSADC_SEL_MASK = 1,
  61. NOC_REMAP_SHIFT = 12,
  62. NOC_REMAP_MASK = 1,
  63. EMMC_FLASH_SEL_SHIFT = 11,
  64. EMMC_FLASH_SEL_MASK = 1,
  65. TZPC_REVISION_SHIFT = 7,
  66. TZPC_REVISION_MASK = 0xf,
  67. L2CACHE_ACC_SHIFT = 5,
  68. L2CACHE_ACC_MASK = 3,
  69. L2RD_WAIT_SHIFT = 3,
  70. L2RD_WAIT_MASK = 3,
  71. IMEMRD_WAIT_SHIFT = 1,
  72. IMEMRD_WAIT_MASK = 3,
  73. };
  74. /* GRF_SOC_CON1 */
  75. enum {
  76. RKI2C4_SEL_SHIFT = 15,
  77. RKI2C4_SEL_MASK = 1,
  78. RKI2C3_SEL_SHIFT = 14,
  79. RKI2C3_SEL_MASK = 1,
  80. RKI2C2_SEL_SHIFT = 13,
  81. RKI2C2_SEL_MASK = 1,
  82. RKI2C1_SEL_SHIFT = 12,
  83. RKI2C1_SEL_MASK = 1,
  84. RKI2C0_SEL_SHIFT = 11,
  85. RKI2C0_SEL_MASK = 1,
  86. VCODEC_SEL_SHIFT = 10,
  87. VCODEC_SEL_MASK = 1,
  88. PERI_EMEM_PAUSE_SHIFT = 9,
  89. PERI_EMEM_PAUSE_MASK = 1,
  90. PERI_USB_PAUSE_SHIFT = 8,
  91. PERI_USB_PAUSE_MASK = 1,
  92. SMC_MUX_MODE_0_SHIFT = 6,
  93. SMC_MUX_MODE_0_MASK = 1,
  94. SMC_SRAM_MW_0_SHIFT = 4,
  95. SMC_SRAM_MW_0_MASK = 3,
  96. SMC_REMAP_0_SHIFT = 3,
  97. SMC_REMAP_0_MASK = 1,
  98. SMC_A_GT_M0_SYNC_SHIFT = 2,
  99. SMC_A_GT_M0_SYNC_MASK = 1,
  100. EMAC_SPEED_SHIFT = 1,
  101. EMAC_SPEEC_MASK = 1,
  102. EMAC_MODE_SHIFT = 0,
  103. EMAC_MODE_MASK = 1,
  104. };
  105. /* GRF_SOC_CON2 */
  106. enum {
  107. SDIO_CLK_OUT_SR_SHIFT = 15,
  108. SDIO_CLK_OUT_SR_MASK = 1,
  109. MEM_EMA_L2C_SHIFT = 11,
  110. MEM_EMA_L2C_MASK = 7,
  111. MEM_EMA_A9_SHIFT = 8,
  112. MEM_EMA_A9_MASK = 7,
  113. MSCH4_MAINDDR3_SHIFT = 7,
  114. MSCH4_MAINDDR3_MASK = 1,
  115. MSCH4_MAINDDR3_DDR3 = 1,
  116. EMAC_NEWRCV_EN_SHIFT = 6,
  117. EMAC_NEWRCV_EN_MASK = 1,
  118. SW_ADDR15_EN_SHIFT = 5,
  119. SW_ADDR15_EN_MASK = 1,
  120. SW_ADDR16_EN_SHIFT = 4,
  121. SW_ADDR16_EN_MASK = 1,
  122. SW_ADDR17_EN_SHIFT = 3,
  123. SW_ADDR17_EN_MASK = 1,
  124. BANK2_TO_RANK_EN_SHIFT = 2,
  125. BANK2_TO_RANK_EN_MASK = 1,
  126. RANK_TO_ROW15_EN_SHIFT = 1,
  127. RANK_TO_ROW15_EN_MASK = 1,
  128. UPCTL_C_ACTIVE_IN_SHIFT = 0,
  129. UPCTL_C_ACTIVE_IN_MASK = 1,
  130. UPCTL_C_ACTIVE_IN_MAY = 0,
  131. UPCTL_C_ACTIVE_IN_WILL,
  132. };
  133. /* GRF_DDRC_CON0 */
  134. enum {
  135. DDR_16BIT_EN_SHIFT = 15,
  136. DDR_16BIT_EN_MASK = 1,
  137. DTO_LB_SHIFT = 11,
  138. DTO_LB_MASK = 3,
  139. DTO_TE_SHIFT = 9,
  140. DTO_TE_MASK = 3,
  141. DTO_PDR_SHIFT = 7,
  142. DTO_PDR_MASK = 3,
  143. DTO_PDD_SHIFT = 5,
  144. DTO_PDD_MASK = 3,
  145. DTO_IOM_SHIFT = 3,
  146. DTO_IOM_MASK = 3,
  147. DTO_OE_SHIFT = 1,
  148. DTO_OE_MASK = 3,
  149. ATO_AE_SHIFT = 0,
  150. ATO_AE_MASK = 1,
  151. };
  152. #endif