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