plugin.S 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2016 Freescale Semiconductor, Inc.
  4. */
  5. #include <config.h>
  6. .macro imx7ulp_ddr_freq_decrease
  7. ldr r2, =0x403f0000
  8. ldr r3, =0x00000000
  9. str r3, [r2, #0xdc]
  10. ldr r2, =0x403e0000
  11. ldr r3, =0x01000020
  12. str r3, [r2, #0x40]
  13. ldr r3, =0x01000000
  14. str r3, [r2, #0x500]
  15. ldr r3, =0x80808080
  16. str r3, [r2, #0x50c]
  17. ldr r3, =0x00140000
  18. str r3, [r2, #0x508]
  19. ldr r3, =0x00000004
  20. str r3, [r2, #0x510]
  21. ldr r3, =0x00000002
  22. str r3, [r2, #0x514]
  23. ldr r3, =0x00000001
  24. str r3, [r2, #0x500]
  25. ldr r3, =0x01000000
  26. wait1:
  27. ldr r4, [r2, #0x500]
  28. and r4, r3
  29. cmp r4, r3
  30. bne wait1
  31. ldr r3, =0x8080801E
  32. str r3, [r2, #0x50c]
  33. ldr r3, =0x00000040
  34. wait2:
  35. ldr r4, [r2, #0x50c]
  36. and r4, r3
  37. cmp r4, r3
  38. bne wait2
  39. ldr r3, =0x00000001
  40. str r3, [r2, #0x30]
  41. ldr r3, =0x11000020
  42. str r3, [r2, #0x40]
  43. ldr r2, =0x403f0000
  44. ldr r3, =0x42000000
  45. str r3, [r2, #0xdc]
  46. .endm
  47. .macro imx7ulp_evk_ddr_setting
  48. imx7ulp_ddr_freq_decrease
  49. /* Enable MMDC PCC clock */
  50. ldr r2, =0x40b30000
  51. ldr r3, =0x40000000
  52. str r3, [r2, #0xac]
  53. /* Configure DDR pad */
  54. ldr r0, =0x40ad0000
  55. ldr r1, =0x00040000
  56. str r1, [r0, #0x128]
  57. ldr r1, =0x0
  58. str r1, [r0, #0xf8]
  59. ldr r1, =0x00000180
  60. str r1, [r0, #0xd8]
  61. ldr r1, =0x00000180
  62. str r1, [r0, #0x108]
  63. ldr r1, =0x00000180
  64. str r1, [r0, #0x104]
  65. ldr r1, =0x00010000
  66. str r1, [r0, #0x124]
  67. ldr r1, =0x0000018C
  68. str r1, [r0, #0x80]
  69. ldr r1, =0x0000018C
  70. str r1, [r0, #0x84]
  71. ldr r1, =0x0000018C
  72. str r1, [r0, #0x88]
  73. ldr r1, =0x0000018C
  74. str r1, [r0, #0x8c]
  75. ldr r1, =0x00010000
  76. str r1, [r0, #0x120]
  77. ldr r1, =0x00000180
  78. str r1, [r0, #0x10c]
  79. ldr r1, =0x00000180
  80. str r1, [r0, #0x110]
  81. ldr r1, =0x00000180
  82. str r1, [r0, #0x114]
  83. ldr r1, =0x00000180
  84. str r1, [r0, #0x118]
  85. ldr r1, =0x00000180
  86. str r1, [r0, #0x90]
  87. ldr r1, =0x00000180
  88. str r1, [r0, #0x94]
  89. ldr r1, =0x00000180
  90. str r1, [r0, #0x98]
  91. ldr r1, =0x00000180
  92. str r1, [r0, #0x9c]
  93. ldr r1, =0x00040000
  94. str r1, [r0, #0xe0]
  95. ldr r1, =0x00040000
  96. str r1, [r0, #0xe4]
  97. ldr r0, =0x40ab0000
  98. ldr r1, =0x00008000
  99. str r1, [r0, #0x1c]
  100. ldr r1, =0xA1390003
  101. str r1, [r0, #0x800]
  102. ldr r1, =0x0D3900A0
  103. str r1, [r0, #0x85c]
  104. ldr r1, =0x00400000
  105. str r1, [r0, #0x890]
  106. ldr r1, =0x40404040
  107. str r1, [r0, #0x848]
  108. ldr r1, =0x40404040
  109. str r1, [r0, #0x850]
  110. ldr r1, =0x33333333
  111. str r1, [r0, #0x81c]
  112. ldr r1, =0x33333333
  113. str r1, [r0, #0x820]
  114. ldr r1, =0x33333333
  115. str r1, [r0, #0x824]
  116. ldr r1, =0x33333333
  117. str r1, [r0, #0x828]
  118. ldr r1, =0xf3333333
  119. str r1, [r0, #0x82c]
  120. ldr r1, =0xf3333333
  121. str r1, [r0, #0x830]
  122. ldr r1, =0xf3333333
  123. str r1, [r0, #0x834]
  124. ldr r1, =0xf3333333
  125. str r1, [r0, #0x838]
  126. ldr r1, =0x24922492
  127. str r1, [r0, #0x8c0]
  128. ldr r1, =0x00000800
  129. str r1, [r0, #0x8b8]
  130. ldr r1, =0x00020052
  131. str r1, [r0, #0x4]
  132. ldr r1, =0x292C42F3
  133. str r1, [r0, #0xc]
  134. ldr r1, =0x00100A22
  135. str r1, [r0, #0x10]
  136. ldr r1, =0x00120556
  137. str r1, [r0, #0x38]
  138. ldr r1, =0x00C700DB
  139. str r1, [r0, #0x14]
  140. ldr r1, =0x00211718
  141. str r1, [r0, #0x18]
  142. ldr r1, =0x0F9F26D2
  143. str r1, [r0, #0x2c]
  144. ldr r1, =0x009F0E10
  145. str r1, [r0, #0x30]
  146. ldr r1, =0x0000003F
  147. str r1, [r0, #0x40]
  148. ldr r1, =0xC3190000
  149. str r1, [r0, #0x0]
  150. ldr r1, =0x00008050
  151. str r1, [r0, #0x1c]
  152. ldr r1, =0x00008058
  153. str r1, [r0, #0x1c]
  154. ldr r1, =0x003F8030
  155. str r1, [r0, #0x1c]
  156. ldr r1, =0x003F8038
  157. str r1, [r0, #0x1c]
  158. ldr r1, =0xFF0A8030
  159. str r1, [r0, #0x1c]
  160. ldr r1, =0xFF0A8038
  161. str r1, [r0, #0x1c]
  162. ldr r1, =0x04028030
  163. str r1, [r0, #0x1c]
  164. ldr r1, =0x04028038
  165. str r1, [r0, #0x1c]
  166. ldr r1, =0x83018030
  167. str r1, [r0, #0x1c]
  168. ldr r1, =0x83018038
  169. str r1, [r0, #0x1c]
  170. ldr r1, =0x01038030
  171. str r1, [r0, #0x1c]
  172. ldr r1, =0x01038038
  173. str r1, [r0, #0x1c]
  174. ldr r1, =0x20000000
  175. str r1, [r0, #0x83c]
  176. ldr r1, =0x00001800
  177. str r1, [r0, #0x20]
  178. ldr r1, =0xA1310000
  179. str r1, [r0, #0x800]
  180. ldr r1, =0x00020052
  181. str r1, [r0, #0x4]
  182. ldr r1, =0x00011006
  183. str r1, [r0, #0x404]
  184. ldr r1, =0x00000000
  185. str r1, [r0, #0x1c]
  186. .endm
  187. .macro imx7ulp_clock_gating
  188. .endm
  189. .macro imx7ulp_qos_setting
  190. .endm
  191. .macro imx7ulp_ddr_setting
  192. imx7ulp_evk_ddr_setting
  193. .endm
  194. /* include the common plugin code here */
  195. #include <asm/arch/mx7ulp_plugin.S>