plugin.S 3.9 KB

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