1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved.
4 */
5
6#include <asm/arch/ps7_init_gpl.h>
7
8static unsigned long ps7_pll_init_data_3_0[] = {
9	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
10	EMIT_MASKWRITE(0xF8000110, 0x003FFFF0U, 0x000FA220U),
11	EMIT_MASKWRITE(0xF8000100, 0x0007F000U, 0x00028000U),
12	EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000010U),
13	EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000001U),
14	EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000000U),
15	EMIT_MASKPOLL(0xF800010C, 0x00000001U),
16	EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000000U),
17	EMIT_MASKWRITE(0xF8000120, 0x1F003F30U, 0x1F000200U),
18	EMIT_MASKWRITE(0xF8000114, 0x003FFFF0U, 0x0012C220U),
19	EMIT_MASKWRITE(0xF8000104, 0x0007F000U, 0x00020000U),
20	EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000010U),
21	EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000001U),
22	EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000000U),
23	EMIT_MASKPOLL(0xF800010C, 0x00000002U),
24	EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000000U),
25	EMIT_MASKWRITE(0xF8000124, 0xFFF00003U, 0x0C200003U),
26	EMIT_MASKWRITE(0xF8000118, 0x003FFFF0U, 0x001452C0U),
27	EMIT_MASKWRITE(0xF8000108, 0x0007F000U, 0x0001E000U),
28	EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000010U),
29	EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000001U),
30	EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000000U),
31	EMIT_MASKPOLL(0xF800010C, 0x00000004U),
32	EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000000U),
33	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
34	EMIT_EXIT(),
35};
36
37static unsigned long ps7_clock_init_data_3_0[] = {
38	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
39	EMIT_MASKWRITE(0xF8000128, 0x03F03F01U, 0x00700F01U),
40	EMIT_MASKWRITE(0xF8000148, 0x00003F31U, 0x00000A01U),
41	EMIT_MASKWRITE(0xF8000154, 0x00003F33U, 0x00001402U),
42	EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000602U),
43	EMIT_MASKWRITE(0xF800015C, 0x03F03F33U, 0x00100102U),
44	EMIT_MASKWRITE(0xF8000160, 0x007F007FU, 0x004C0000U),
45	EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000501U),
46	EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00400500U),
47	EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
48	EMIT_MASKWRITE(0xF800012C, 0x01FFCCCDU, 0x016E800DU),
49	EMIT_MASKWRITE(0xF8000304, 0x00000001U, 0x00000000U),
50	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
51	EMIT_EXIT(),
52};
53
54static unsigned long ps7_ddr_init_data_3_0[] = {
55	EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000080U),
56	EMIT_MASKWRITE(0xF8006004, 0x0007FFFFU, 0x00001081U),
57	EMIT_MASKWRITE(0xF8006008, 0x03FFFFFFU, 0x03C0780FU),
58	EMIT_MASKWRITE(0xF800600C, 0x03FFFFFFU, 0x02001001U),
59	EMIT_MASKWRITE(0xF8006010, 0x03FFFFFFU, 0x00014001U),
60	EMIT_MASKWRITE(0xF8006014, 0x001FFFFFU, 0x0004159BU),
61	EMIT_MASKWRITE(0xF8006018, 0xF7FFFFFFU, 0x44E438D2U),
62	EMIT_MASKWRITE(0xF800601C, 0xFFFFFFFFU, 0x720238E5U),
63	EMIT_MASKWRITE(0xF8006020, 0x7FDFFFFCU, 0x27087290U),
64	EMIT_MASKWRITE(0xF8006024, 0x0FFFFFC3U, 0x00000000U),
65	EMIT_MASKWRITE(0xF8006028, 0x00003FFFU, 0x00002007U),
66	EMIT_MASKWRITE(0xF800602C, 0xFFFFFFFFU, 0x00000008U),
67	EMIT_MASKWRITE(0xF8006030, 0xFFFFFFFFU, 0x00040930U),
68	EMIT_MASKWRITE(0xF8006034, 0x13FF3FFFU, 0x000116D4U),
69	EMIT_MASKWRITE(0xF8006038, 0x00000003U, 0x00000000U),
70	EMIT_MASKWRITE(0xF800603C, 0x000FFFFFU, 0x00000777U),
71	EMIT_MASKWRITE(0xF8006040, 0xFFFFFFFFU, 0xFFF00000U),
72	EMIT_MASKWRITE(0xF8006044, 0x0FFFFFFFU, 0x0F666666U),
73	EMIT_MASKWRITE(0xF8006048, 0x0003F03FU, 0x0003C008U),
74	EMIT_MASKWRITE(0xF8006050, 0xFF0F8FFFU, 0x77010800U),
75	EMIT_MASKWRITE(0xF8006058, 0x00010000U, 0x00000000U),
76	EMIT_MASKWRITE(0xF800605C, 0x0000FFFFU, 0x00005003U),
77	EMIT_MASKWRITE(0xF8006060, 0x000017FFU, 0x0000003EU),
78	EMIT_MASKWRITE(0xF8006064, 0x00021FE0U, 0x00020000U),
79	EMIT_MASKWRITE(0xF8006068, 0x03FFFFFFU, 0x00284141U),
80	EMIT_MASKWRITE(0xF800606C, 0x0000FFFFU, 0x00001610U),
81	EMIT_MASKWRITE(0xF8006078, 0x03FFFFFFU, 0x00466111U),
82	EMIT_MASKWRITE(0xF800607C, 0x000FFFFFU, 0x00032222U),
83	EMIT_MASKWRITE(0xF80060A4, 0xFFFFFFFFU, 0x10200802U),
84	EMIT_MASKWRITE(0xF80060A8, 0x0FFFFFFFU, 0x0690CB73U),
85	EMIT_MASKWRITE(0xF80060AC, 0x000001FFU, 0x000001FEU),
86	EMIT_MASKWRITE(0xF80060B0, 0x1FFFFFFFU, 0x1CFFFFFFU),
87	EMIT_MASKWRITE(0xF80060B4, 0x00000200U, 0x00000200U),
88	EMIT_MASKWRITE(0xF80060B8, 0x01FFFFFFU, 0x00200066U),
89	EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000003U),
90	EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000000U),
91	EMIT_MASKWRITE(0xF80060C8, 0x000000FFU, 0x00000000U),
92	EMIT_MASKWRITE(0xF80060DC, 0x00000001U, 0x00000000U),
93	EMIT_MASKWRITE(0xF80060F0, 0x0000FFFFU, 0x00000000U),
94	EMIT_MASKWRITE(0xF80060F4, 0x0000000FU, 0x00000008U),
95	EMIT_MASKWRITE(0xF8006114, 0x000000FFU, 0x00000000U),
96	EMIT_MASKWRITE(0xF8006118, 0x7FFFFFCFU, 0x40000001U),
97	EMIT_MASKWRITE(0xF800611C, 0x7FFFFFCFU, 0x40000001U),
98	EMIT_MASKWRITE(0xF8006120, 0x7FFFFFCFU, 0x40000001U),
99	EMIT_MASKWRITE(0xF8006124, 0x7FFFFFCFU, 0x40000001U),
100	EMIT_MASKWRITE(0xF800612C, 0x000FFFFFU, 0x0003902DU),
101	EMIT_MASKWRITE(0xF8006130, 0x000FFFFFU, 0x00032022U),
102	EMIT_MASKWRITE(0xF8006134, 0x000FFFFFU, 0x0003341CU),
103	EMIT_MASKWRITE(0xF8006138, 0x000FFFFFU, 0x00036438U),
104	EMIT_MASKWRITE(0xF8006140, 0x000FFFFFU, 0x00000035U),
105	EMIT_MASKWRITE(0xF8006144, 0x000FFFFFU, 0x00000035U),
106	EMIT_MASKWRITE(0xF8006148, 0x000FFFFFU, 0x00000035U),
107	EMIT_MASKWRITE(0xF800614C, 0x000FFFFFU, 0x00000035U),
108	EMIT_MASKWRITE(0xF8006154, 0x000FFFFFU, 0x000000ADU),
109	EMIT_MASKWRITE(0xF8006158, 0x000FFFFFU, 0x000000A2U),
110	EMIT_MASKWRITE(0xF800615C, 0x000FFFFFU, 0x0000009CU),
111	EMIT_MASKWRITE(0xF8006160, 0x000FFFFFU, 0x000000B8U),
112	EMIT_MASKWRITE(0xF8006168, 0x001FFFFFU, 0x00000139U),
113	EMIT_MASKWRITE(0xF800616C, 0x001FFFFFU, 0x0000011DU),
114	EMIT_MASKWRITE(0xF8006170, 0x001FFFFFU, 0x00000122U),
115	EMIT_MASKWRITE(0xF8006174, 0x001FFFFFU, 0x0000012EU),
116	EMIT_MASKWRITE(0xF800617C, 0x000FFFFFU, 0x000000EDU),
117	EMIT_MASKWRITE(0xF8006180, 0x000FFFFFU, 0x000000E2U),
118	EMIT_MASKWRITE(0xF8006184, 0x000FFFFFU, 0x000000DCU),
119	EMIT_MASKWRITE(0xF8006188, 0x000FFFFFU, 0x000000F8U),
120	EMIT_MASKWRITE(0xF8006190, 0x6FFFFEFEU, 0x00040080U),
121	EMIT_MASKWRITE(0xF8006194, 0x000FFFFFU, 0x0001FC82U),
122	EMIT_MASKWRITE(0xF8006204, 0xFFFFFFFFU, 0x00000000U),
123	EMIT_MASKWRITE(0xF8006208, 0x000703FFU, 0x000003FFU),
124	EMIT_MASKWRITE(0xF800620C, 0x000703FFU, 0x000003FFU),
125	EMIT_MASKWRITE(0xF8006210, 0x000703FFU, 0x000003FFU),
126	EMIT_MASKWRITE(0xF8006214, 0x000703FFU, 0x000003FFU),
127	EMIT_MASKWRITE(0xF8006218, 0x000F03FFU, 0x000003FFU),
128	EMIT_MASKWRITE(0xF800621C, 0x000F03FFU, 0x000003FFU),
129	EMIT_MASKWRITE(0xF8006220, 0x000F03FFU, 0x000003FFU),
130	EMIT_MASKWRITE(0xF8006224, 0x000F03FFU, 0x000003FFU),
131	EMIT_MASKWRITE(0xF80062A8, 0x00000FF5U, 0x00000000U),
132	EMIT_MASKWRITE(0xF80062AC, 0xFFFFFFFFU, 0x00000000U),
133	EMIT_MASKWRITE(0xF80062B0, 0x003FFFFFU, 0x00005125U),
134	EMIT_MASKWRITE(0xF80062B4, 0x0003FFFFU, 0x000012A8U),
135	EMIT_MASKPOLL(0xF8000B74, 0x00002000U),
136	EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000081U),
137	EMIT_MASKPOLL(0xF8006054, 0x00000007U),
138	EMIT_EXIT(),
139};
140
141static unsigned long ps7_mio_init_data_3_0[] = {
142	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
143	EMIT_MASKWRITE(0xF8000B40, 0x00000FFFU, 0x00000600U),
144	EMIT_MASKWRITE(0xF8000B44, 0x00000FFFU, 0x00000600U),
145	EMIT_MASKWRITE(0xF8000B48, 0x00000FFFU, 0x00000672U),
146	EMIT_MASKWRITE(0xF8000B4C, 0x00000FFFU, 0x00000672U),
147	EMIT_MASKWRITE(0xF8000B50, 0x00000FFFU, 0x00000674U),
148	EMIT_MASKWRITE(0xF8000B54, 0x00000FFFU, 0x00000674U),
149	EMIT_MASKWRITE(0xF8000B58, 0x00000FFFU, 0x00000600U),
150	EMIT_MASKWRITE(0xF8000B5C, 0xFFFFFFFFU, 0x0018C61CU),
151	EMIT_MASKWRITE(0xF8000B60, 0xFFFFFFFFU, 0x00F9861CU),
152	EMIT_MASKWRITE(0xF8000B64, 0xFFFFFFFFU, 0x00F9861CU),
153	EMIT_MASKWRITE(0xF8000B68, 0xFFFFFFFFU, 0x00F9861CU),
154	EMIT_MASKWRITE(0xF8000B6C, 0x00007FFFU, 0x00000260U),
155	EMIT_MASKWRITE(0xF8000B70, 0x00000001U, 0x00000001U),
156	EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000020U),
157	EMIT_MASKWRITE(0xF8000B70, 0x07FEFFFFU, 0x00000823U),
158	EMIT_MASKWRITE(0xF8000700, 0x00003FFFU, 0x00001600U),
159	EMIT_MASKWRITE(0xF8000704, 0x00003FFFU, 0x00001608U),
160	EMIT_MASKWRITE(0xF8000708, 0x00003FFFU, 0x00000600U),
161	EMIT_MASKWRITE(0xF800070C, 0x00003FFFU, 0x00000608U),
162	EMIT_MASKWRITE(0xF8000710, 0x00003FFFU, 0x00000608U),
163	EMIT_MASKWRITE(0xF8000714, 0x00003FFFU, 0x00000608U),
164	EMIT_MASKWRITE(0xF8000718, 0x00003FFFU, 0x00000608U),
165	EMIT_MASKWRITE(0xF800071C, 0x00003FFFU, 0x00000608U),
166	EMIT_MASKWRITE(0xF8000720, 0x00003FFFU, 0x00000640U),
167	EMIT_MASKWRITE(0xF8000724, 0x00003FFFU, 0x00001608U),
168	EMIT_MASKWRITE(0xF8000728, 0x00003FFFU, 0x00001608U),
169	EMIT_MASKWRITE(0xF800072C, 0x00003FFFU, 0x00001608U),
170	EMIT_MASKWRITE(0xF8000730, 0x00003FFFU, 0x00001600U),
171	EMIT_MASKWRITE(0xF8000734, 0x00003FFFU, 0x00001608U),
172	EMIT_MASKWRITE(0xF8000738, 0x00003FFFU, 0x00001600U),
173	EMIT_MASKWRITE(0xF800073C, 0x00003FFFU, 0x00001608U),
174	EMIT_MASKWRITE(0xF8000740, 0x00003FFFU, 0x00001608U),
175	EMIT_MASKWRITE(0xF8000744, 0x00003FFFU, 0x00001608U),
176	EMIT_MASKWRITE(0xF8000748, 0x00003FFFU, 0x00001608U),
177	EMIT_MASKWRITE(0xF800074C, 0x00003FFFU, 0x00001608U),
178	EMIT_MASKWRITE(0xF8000750, 0x00003FFFU, 0x00001608U),
179	EMIT_MASKWRITE(0xF8000754, 0x00003FFFU, 0x00001608U),
180	EMIT_MASKWRITE(0xF8000758, 0x00003FFFU, 0x00001608U),
181	EMIT_MASKWRITE(0xF800075C, 0x00003FFFU, 0x00001608U),
182	EMIT_MASKWRITE(0xF8000760, 0x00003FFFU, 0x00001608U),
183	EMIT_MASKWRITE(0xF8000764, 0x00003FFFU, 0x00001608U),
184	EMIT_MASKWRITE(0xF8000768, 0x00003FFFU, 0x00001608U),
185	EMIT_MASKWRITE(0xF800076C, 0x00003FFFU, 0x00001608U),
186	EMIT_MASKWRITE(0xF8000770, 0x00003FFFU, 0x00001608U),
187	EMIT_MASKWRITE(0xF8000774, 0x00003FFFU, 0x00001608U),
188	EMIT_MASKWRITE(0xF8000778, 0x00003FFFU, 0x00001608U),
189	EMIT_MASKWRITE(0xF800077C, 0x00003FFFU, 0x00001608U),
190	EMIT_MASKWRITE(0xF8000780, 0x00003FFFU, 0x00001608U),
191	EMIT_MASKWRITE(0xF8000784, 0x00003FFFU, 0x00001608U),
192	EMIT_MASKWRITE(0xF8000788, 0x00003FFFU, 0x00001608U),
193	EMIT_MASKWRITE(0xF800078C, 0x00003FFFU, 0x00001608U),
194	EMIT_MASKWRITE(0xF8000790, 0x00003FFFU, 0x00001608U),
195	EMIT_MASKWRITE(0xF8000794, 0x00003FFFU, 0x00001608U),
196	EMIT_MASKWRITE(0xF8000798, 0x00003FFFU, 0x00001608U),
197	EMIT_MASKWRITE(0xF800079C, 0x00003FFFU, 0x00001608U),
198	EMIT_MASKWRITE(0xF80007A0, 0x00003FFFU, 0x00001640U),
199	EMIT_MASKWRITE(0xF80007A4, 0x00003FFFU, 0x00001640U),
200	EMIT_MASKWRITE(0xF80007A8, 0x00003FFFU, 0x00001640U),
201	EMIT_MASKWRITE(0xF80007AC, 0x00003FFFU, 0x00001640U),
202	EMIT_MASKWRITE(0xF80007B0, 0x00003FFFU, 0x00001620U),
203	EMIT_MASKWRITE(0xF80007B4, 0x00003FFFU, 0x00001621U),
204	EMIT_MASKWRITE(0xF80007B8, 0x00003FFFU, 0x000016A0U),
205	EMIT_MASKWRITE(0xF80007BC, 0x00003FFFU, 0x000016A0U),
206	EMIT_MASKWRITE(0xF80007C0, 0x00003FFFU, 0x000016A0U),
207	EMIT_MASKWRITE(0xF80007C4, 0x00003FFFU, 0x000016A0U),
208	EMIT_MASKWRITE(0xF80007C8, 0x00003FFFU, 0x000016A0U),
209	EMIT_MASKWRITE(0xF80007CC, 0x00003FFFU, 0x00001600U),
210	EMIT_MASKWRITE(0xF80007D0, 0x00003FFFU, 0x000016E0U),
211	EMIT_MASKWRITE(0xF80007D4, 0x00003FFFU, 0x000016E1U),
212	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
213	EMIT_EXIT(),
214};
215
216static unsigned long ps7_peripherals_init_data_3_0[] = {
217	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
218	EMIT_MASKWRITE(0xF8000B48, 0x00000180U, 0x00000180U),
219	EMIT_MASKWRITE(0xF8000B4C, 0x00000180U, 0x00000180U),
220	EMIT_MASKWRITE(0xF8000B50, 0x00000180U, 0x00000180U),
221	EMIT_MASKWRITE(0xF8000B54, 0x00000180U, 0x00000180U),
222	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
223	EMIT_MASKWRITE(0xE000E018, 0x00001000U, 0x00001000U),
224	EMIT_MASKWRITE(0xE000D000, 0x00080000U, 0x00080000U),
225	EMIT_MASKWRITE(0xF8007000, 0x20000000U, 0x00000000U),
226	EMIT_MASKWRITE(0xE000E014, 0x00FFFFFFU, 0x00049BAAU),
227	EMIT_MASKWRITE(0xE000E010, 0x03EFFFFFU, 0x000000F0U),
228	EMIT_MASKWRITE(0xE2000000, 0x0000FFFFU, 0x000000F0U),
229	EMIT_MASKDELAY(0xF8F00200, 1),
230	EMIT_MASKDELAY(0xF8F00200, 1),
231	EMIT_MASKDELAY(0xF8F00200, 1),
232	EMIT_MASKDELAY(0xF8F00200, 1),
233	EMIT_MASKDELAY(0xF8F00200, 1),
234	EMIT_MASKDELAY(0xF8F00200, 1),
235	EMIT_MASKWRITE(0xE000A204, 0xFFFFFFFFU, 0x00000001U),
236	EMIT_MASKWRITE(0xE000A000, 0xFFFFFFFFU, 0xFFFE0000U),
237	EMIT_MASKWRITE(0xE000A208, 0xFFFFFFFFU, 0x00000001U),
238	EMIT_EXIT(),
239};
240
241static unsigned long ps7_post_config_3_0[] = {
242	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
243	EMIT_MASKWRITE(0xF8000900, 0x0000000FU, 0x0000000FU),
244	EMIT_MASKWRITE(0xF8000240, 0xFFFFFFFFU, 0x00000000U),
245	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
246	EMIT_EXIT(),
247};
248
249static unsigned long ps7_pll_init_data_2_0[] = {
250	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
251	EMIT_MASKWRITE(0xF8000110, 0x003FFFF0U, 0x000FA220U),
252	EMIT_MASKWRITE(0xF8000100, 0x0007F000U, 0x00028000U),
253	EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000010U),
254	EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000001U),
255	EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000000U),
256	EMIT_MASKPOLL(0xF800010C, 0x00000001U),
257	EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000000U),
258	EMIT_MASKWRITE(0xF8000120, 0x1F003F30U, 0x1F000200U),
259	EMIT_MASKWRITE(0xF8000114, 0x003FFFF0U, 0x0012C220U),
260	EMIT_MASKWRITE(0xF8000104, 0x0007F000U, 0x00020000U),
261	EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000010U),
262	EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000001U),
263	EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000000U),
264	EMIT_MASKPOLL(0xF800010C, 0x00000002U),
265	EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000000U),
266	EMIT_MASKWRITE(0xF8000124, 0xFFF00003U, 0x0C200003U),
267	EMIT_MASKWRITE(0xF8000118, 0x003FFFF0U, 0x001452C0U),
268	EMIT_MASKWRITE(0xF8000108, 0x0007F000U, 0x0001E000U),
269	EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000010U),
270	EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000001U),
271	EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000000U),
272	EMIT_MASKPOLL(0xF800010C, 0x00000004U),
273	EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000000U),
274	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
275	EMIT_EXIT(),
276};
277
278static unsigned long ps7_clock_init_data_2_0[] = {
279	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
280	EMIT_MASKWRITE(0xF8000128, 0x03F03F01U, 0x00700F01U),
281	EMIT_MASKWRITE(0xF8000148, 0x00003F31U, 0x00000A01U),
282	EMIT_MASKWRITE(0xF8000154, 0x00003F33U, 0x00001402U),
283	EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000602U),
284	EMIT_MASKWRITE(0xF800015C, 0x03F03F33U, 0x00100102U),
285	EMIT_MASKWRITE(0xF8000160, 0x007F007FU, 0x004C0000U),
286	EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000501U),
287	EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00400500U),
288	EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
289	EMIT_MASKWRITE(0xF800012C, 0x01FFCCCDU, 0x016E800DU),
290	EMIT_MASKWRITE(0xF8000304, 0x00000001U, 0x00000000U),
291	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
292	EMIT_EXIT(),
293};
294
295static unsigned long ps7_ddr_init_data_2_0[] = {
296	EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000080U),
297	EMIT_MASKWRITE(0xF8006004, 0x1FFFFFFFU, 0x00081081U),
298	EMIT_MASKWRITE(0xF8006008, 0x03FFFFFFU, 0x03C0780FU),
299	EMIT_MASKWRITE(0xF800600C, 0x03FFFFFFU, 0x02001001U),
300	EMIT_MASKWRITE(0xF8006010, 0x03FFFFFFU, 0x00014001U),
301	EMIT_MASKWRITE(0xF8006014, 0x001FFFFFU, 0x0004159BU),
302	EMIT_MASKWRITE(0xF8006018, 0xF7FFFFFFU, 0x44E438D2U),
303	EMIT_MASKWRITE(0xF800601C, 0xFFFFFFFFU, 0x720238E5U),
304	EMIT_MASKWRITE(0xF8006020, 0xFFFFFFFCU, 0x27287290U),
305	EMIT_MASKWRITE(0xF8006024, 0x0FFFFFFFU, 0x0000003CU),
306	EMIT_MASKWRITE(0xF8006028, 0x00003FFFU, 0x00002007U),
307	EMIT_MASKWRITE(0xF800602C, 0xFFFFFFFFU, 0x00000008U),
308	EMIT_MASKWRITE(0xF8006030, 0xFFFFFFFFU, 0x00040930U),
309	EMIT_MASKWRITE(0xF8006034, 0x13FF3FFFU, 0x000116D4U),
310	EMIT_MASKWRITE(0xF8006038, 0x00001FC3U, 0x00000000U),
311	EMIT_MASKWRITE(0xF800603C, 0x000FFFFFU, 0x00000777U),
312	EMIT_MASKWRITE(0xF8006040, 0xFFFFFFFFU, 0xFFF00000U),
313	EMIT_MASKWRITE(0xF8006044, 0x0FFFFFFFU, 0x0F666666U),
314	EMIT_MASKWRITE(0xF8006048, 0x3FFFFFFFU, 0x0003C248U),
315	EMIT_MASKWRITE(0xF8006050, 0xFF0F8FFFU, 0x77010800U),
316	EMIT_MASKWRITE(0xF8006058, 0x0001FFFFU, 0x00000101U),
317	EMIT_MASKWRITE(0xF800605C, 0x0000FFFFU, 0x00005003U),
318	EMIT_MASKWRITE(0xF8006060, 0x000017FFU, 0x0000003EU),
319	EMIT_MASKWRITE(0xF8006064, 0x00021FE0U, 0x00020000U),
320	EMIT_MASKWRITE(0xF8006068, 0x03FFFFFFU, 0x00284141U),
321	EMIT_MASKWRITE(0xF800606C, 0x0000FFFFU, 0x00001610U),
322	EMIT_MASKWRITE(0xF8006078, 0x03FFFFFFU, 0x00466111U),
323	EMIT_MASKWRITE(0xF800607C, 0x000FFFFFU, 0x00032222U),
324	EMIT_MASKWRITE(0xF80060A0, 0x00FFFFFFU, 0x00008000U),
325	EMIT_MASKWRITE(0xF80060A4, 0xFFFFFFFFU, 0x10200802U),
326	EMIT_MASKWRITE(0xF80060A8, 0x0FFFFFFFU, 0x0690CB73U),
327	EMIT_MASKWRITE(0xF80060AC, 0x000001FFU, 0x000001FEU),
328	EMIT_MASKWRITE(0xF80060B0, 0x1FFFFFFFU, 0x1CFFFFFFU),
329	EMIT_MASKWRITE(0xF80060B4, 0x000007FFU, 0x00000200U),
330	EMIT_MASKWRITE(0xF80060B8, 0x01FFFFFFU, 0x00200066U),
331	EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000003U),
332	EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000000U),
333	EMIT_MASKWRITE(0xF80060C8, 0x000000FFU, 0x00000000U),
334	EMIT_MASKWRITE(0xF80060DC, 0x00000001U, 0x00000000U),
335	EMIT_MASKWRITE(0xF80060F0, 0x0000FFFFU, 0x00000000U),
336	EMIT_MASKWRITE(0xF80060F4, 0x0000000FU, 0x00000008U),
337	EMIT_MASKWRITE(0xF8006114, 0x000000FFU, 0x00000000U),
338	EMIT_MASKWRITE(0xF8006118, 0x7FFFFFFFU, 0x40000001U),
339	EMIT_MASKWRITE(0xF800611C, 0x7FFFFFFFU, 0x40000001U),
340	EMIT_MASKWRITE(0xF8006120, 0x7FFFFFFFU, 0x40000001U),
341	EMIT_MASKWRITE(0xF8006124, 0x7FFFFFFFU, 0x40000001U),
342	EMIT_MASKWRITE(0xF800612C, 0x000FFFFFU, 0x0003902DU),
343	EMIT_MASKWRITE(0xF8006130, 0x000FFFFFU, 0x00032022U),
344	EMIT_MASKWRITE(0xF8006134, 0x000FFFFFU, 0x0003341CU),
345	EMIT_MASKWRITE(0xF8006138, 0x000FFFFFU, 0x00036438U),
346	EMIT_MASKWRITE(0xF8006140, 0x000FFFFFU, 0x00000035U),
347	EMIT_MASKWRITE(0xF8006144, 0x000FFFFFU, 0x00000035U),
348	EMIT_MASKWRITE(0xF8006148, 0x000FFFFFU, 0x00000035U),
349	EMIT_MASKWRITE(0xF800614C, 0x000FFFFFU, 0x00000035U),
350	EMIT_MASKWRITE(0xF8006154, 0x000FFFFFU, 0x000000ADU),
351	EMIT_MASKWRITE(0xF8006158, 0x000FFFFFU, 0x000000A2U),
352	EMIT_MASKWRITE(0xF800615C, 0x000FFFFFU, 0x0000009CU),
353	EMIT_MASKWRITE(0xF8006160, 0x000FFFFFU, 0x000000B8U),
354	EMIT_MASKWRITE(0xF8006168, 0x001FFFFFU, 0x00000139U),
355	EMIT_MASKWRITE(0xF800616C, 0x001FFFFFU, 0x0000011DU),
356	EMIT_MASKWRITE(0xF8006170, 0x001FFFFFU, 0x00000122U),
357	EMIT_MASKWRITE(0xF8006174, 0x001FFFFFU, 0x0000012EU),
358	EMIT_MASKWRITE(0xF800617C, 0x000FFFFFU, 0x000000EDU),
359	EMIT_MASKWRITE(0xF8006180, 0x000FFFFFU, 0x000000E2U),
360	EMIT_MASKWRITE(0xF8006184, 0x000FFFFFU, 0x000000DCU),
361	EMIT_MASKWRITE(0xF8006188, 0x000FFFFFU, 0x000000F8U),
362	EMIT_MASKWRITE(0xF8006190, 0xFFFFFFFFU, 0x10040080U),
363	EMIT_MASKWRITE(0xF8006194, 0x000FFFFFU, 0x0001FC82U),
364	EMIT_MASKWRITE(0xF8006204, 0xFFFFFFFFU, 0x00000000U),
365	EMIT_MASKWRITE(0xF8006208, 0x000F03FFU, 0x000803FFU),
366	EMIT_MASKWRITE(0xF800620C, 0x000F03FFU, 0x000803FFU),
367	EMIT_MASKWRITE(0xF8006210, 0x000F03FFU, 0x000803FFU),
368	EMIT_MASKWRITE(0xF8006214, 0x000F03FFU, 0x000803FFU),
369	EMIT_MASKWRITE(0xF8006218, 0x000F03FFU, 0x000003FFU),
370	EMIT_MASKWRITE(0xF800621C, 0x000F03FFU, 0x000003FFU),
371	EMIT_MASKWRITE(0xF8006220, 0x000F03FFU, 0x000003FFU),
372	EMIT_MASKWRITE(0xF8006224, 0x000F03FFU, 0x000003FFU),
373	EMIT_MASKWRITE(0xF80062A8, 0x00000FF7U, 0x00000000U),
374	EMIT_MASKWRITE(0xF80062AC, 0xFFFFFFFFU, 0x00000000U),
375	EMIT_MASKWRITE(0xF80062B0, 0x003FFFFFU, 0x00005125U),
376	EMIT_MASKWRITE(0xF80062B4, 0x0003FFFFU, 0x000012A8U),
377	EMIT_MASKPOLL(0xF8000B74, 0x00002000U),
378	EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000081U),
379	EMIT_MASKPOLL(0xF8006054, 0x00000007U),
380	EMIT_EXIT(),
381};
382
383static unsigned long ps7_mio_init_data_2_0[] = {
384	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
385	EMIT_MASKWRITE(0xF8000B40, 0x00000FFFU, 0x00000600U),
386	EMIT_MASKWRITE(0xF8000B44, 0x00000FFFU, 0x00000600U),
387	EMIT_MASKWRITE(0xF8000B48, 0x00000FFFU, 0x00000672U),
388	EMIT_MASKWRITE(0xF8000B4C, 0x00000FFFU, 0x00000672U),
389	EMIT_MASKWRITE(0xF8000B50, 0x00000FFFU, 0x00000674U),
390	EMIT_MASKWRITE(0xF8000B54, 0x00000FFFU, 0x00000674U),
391	EMIT_MASKWRITE(0xF8000B58, 0x00000FFFU, 0x00000600U),
392	EMIT_MASKWRITE(0xF8000B5C, 0xFFFFFFFFU, 0x0018C61CU),
393	EMIT_MASKWRITE(0xF8000B60, 0xFFFFFFFFU, 0x00F9861CU),
394	EMIT_MASKWRITE(0xF8000B64, 0xFFFFFFFFU, 0x00F9861CU),
395	EMIT_MASKWRITE(0xF8000B68, 0xFFFFFFFFU, 0x00F9861CU),
396	EMIT_MASKWRITE(0xF8000B6C, 0x00007FFFU, 0x00000260U),
397	EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000021U),
398	EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000020U),
399	EMIT_MASKWRITE(0xF8000B70, 0x07FFFFFFU, 0x00000823U),
400	EMIT_MASKWRITE(0xF8000700, 0x00003FFFU, 0x00001600U),
401	EMIT_MASKWRITE(0xF8000704, 0x00003FFFU, 0x00001608U),
402	EMIT_MASKWRITE(0xF8000708, 0x00003FFFU, 0x00000600U),
403	EMIT_MASKWRITE(0xF800070C, 0x00003FFFU, 0x00000608U),
404	EMIT_MASKWRITE(0xF8000710, 0x00003FFFU, 0x00000608U),
405	EMIT_MASKWRITE(0xF8000714, 0x00003FFFU, 0x00000608U),
406	EMIT_MASKWRITE(0xF8000718, 0x00003FFFU, 0x00000608U),
407	EMIT_MASKWRITE(0xF800071C, 0x00003FFFU, 0x00000608U),
408	EMIT_MASKWRITE(0xF8000720, 0x00003FFFU, 0x00000640U),
409	EMIT_MASKWRITE(0xF8000724, 0x00003FFFU, 0x00001608U),
410	EMIT_MASKWRITE(0xF8000728, 0x00003FFFU, 0x00001608U),
411	EMIT_MASKWRITE(0xF800072C, 0x00003FFFU, 0x00001608U),
412	EMIT_MASKWRITE(0xF8000730, 0x00003FFFU, 0x00001600U),
413	EMIT_MASKWRITE(0xF8000734, 0x00003FFFU, 0x00001608U),
414	EMIT_MASKWRITE(0xF8000738, 0x00003FFFU, 0x00001600U),
415	EMIT_MASKWRITE(0xF800073C, 0x00003FFFU, 0x00001608U),
416	EMIT_MASKWRITE(0xF8000740, 0x00003FFFU, 0x00001608U),
417	EMIT_MASKWRITE(0xF8000744, 0x00003FFFU, 0x00001608U),
418	EMIT_MASKWRITE(0xF8000748, 0x00003FFFU, 0x00001608U),
419	EMIT_MASKWRITE(0xF800074C, 0x00003FFFU, 0x00001608U),
420	EMIT_MASKWRITE(0xF8000750, 0x00003FFFU, 0x00001608U),
421	EMIT_MASKWRITE(0xF8000754, 0x00003FFFU, 0x00001608U),
422	EMIT_MASKWRITE(0xF8000758, 0x00003FFFU, 0x00001608U),
423	EMIT_MASKWRITE(0xF800075C, 0x00003FFFU, 0x00001608U),
424	EMIT_MASKWRITE(0xF8000760, 0x00003FFFU, 0x00001608U),
425	EMIT_MASKWRITE(0xF8000764, 0x00003FFFU, 0x00001608U),
426	EMIT_MASKWRITE(0xF8000768, 0x00003FFFU, 0x00001608U),
427	EMIT_MASKWRITE(0xF800076C, 0x00003FFFU, 0x00001608U),
428	EMIT_MASKWRITE(0xF8000770, 0x00003FFFU, 0x00001608U),
429	EMIT_MASKWRITE(0xF8000774, 0x00003FFFU, 0x00001608U),
430	EMIT_MASKWRITE(0xF8000778, 0x00003FFFU, 0x00001608U),
431	EMIT_MASKWRITE(0xF800077C, 0x00003FFFU, 0x00001608U),
432	EMIT_MASKWRITE(0xF8000780, 0x00003FFFU, 0x00001608U),
433	EMIT_MASKWRITE(0xF8000784, 0x00003FFFU, 0x00001608U),
434	EMIT_MASKWRITE(0xF8000788, 0x00003FFFU, 0x00001608U),
435	EMIT_MASKWRITE(0xF800078C, 0x00003FFFU, 0x00001608U),
436	EMIT_MASKWRITE(0xF8000790, 0x00003FFFU, 0x00001608U),
437	EMIT_MASKWRITE(0xF8000794, 0x00003FFFU, 0x00001608U),
438	EMIT_MASKWRITE(0xF8000798, 0x00003FFFU, 0x00001608U),
439	EMIT_MASKWRITE(0xF800079C, 0x00003FFFU, 0x00001608U),
440	EMIT_MASKWRITE(0xF80007A0, 0x00003FFFU, 0x00001640U),
441	EMIT_MASKWRITE(0xF80007A4, 0x00003FFFU, 0x00001640U),
442	EMIT_MASKWRITE(0xF80007A8, 0x00003FFFU, 0x00001640U),
443	EMIT_MASKWRITE(0xF80007AC, 0x00003FFFU, 0x00001640U),
444	EMIT_MASKWRITE(0xF80007B0, 0x00003FFFU, 0x00001620U),
445	EMIT_MASKWRITE(0xF80007B4, 0x00003FFFU, 0x00001621U),
446	EMIT_MASKWRITE(0xF80007B8, 0x00003FFFU, 0x000016A0U),
447	EMIT_MASKWRITE(0xF80007BC, 0x00003FFFU, 0x000016A0U),
448	EMIT_MASKWRITE(0xF80007C0, 0x00003FFFU, 0x000016A0U),
449	EMIT_MASKWRITE(0xF80007C4, 0x00003FFFU, 0x000016A0U),
450	EMIT_MASKWRITE(0xF80007C8, 0x00003FFFU, 0x000016A0U),
451	EMIT_MASKWRITE(0xF80007CC, 0x00003FFFU, 0x00001600U),
452	EMIT_MASKWRITE(0xF80007D0, 0x00003FFFU, 0x000016E0U),
453	EMIT_MASKWRITE(0xF80007D4, 0x00003FFFU, 0x000016E1U),
454	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
455	EMIT_EXIT(),
456};
457
458static unsigned long ps7_peripherals_init_data_2_0[] = {
459	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
460	EMIT_MASKWRITE(0xF8000B48, 0x00000180U, 0x00000180U),
461	EMIT_MASKWRITE(0xF8000B4C, 0x00000180U, 0x00000180U),
462	EMIT_MASKWRITE(0xF8000B50, 0x00000180U, 0x00000180U),
463	EMIT_MASKWRITE(0xF8000B54, 0x00000180U, 0x00000180U),
464	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
465	EMIT_MASKWRITE(0xE000E018, 0x00001000U, 0x00001000U),
466	EMIT_MASKWRITE(0xE000D000, 0x00080000U, 0x00080000U),
467	EMIT_MASKWRITE(0xF8007000, 0x20000000U, 0x00000000U),
468	EMIT_MASKWRITE(0xE000E014, 0x00FFFFFFU, 0x00049BAAU),
469	EMIT_MASKWRITE(0xE000E010, 0x03EFFFFFU, 0x000000F0U),
470	EMIT_MASKWRITE(0xE2000000, 0x0000FFFFU, 0x000000F0U),
471	EMIT_MASKDELAY(0xF8F00200, 1),
472	EMIT_MASKDELAY(0xF8F00200, 1),
473	EMIT_MASKDELAY(0xF8F00200, 1),
474	EMIT_MASKDELAY(0xF8F00200, 1),
475	EMIT_MASKDELAY(0xF8F00200, 1),
476	EMIT_MASKDELAY(0xF8F00200, 1),
477	EMIT_MASKWRITE(0xE000A204, 0xFFFFFFFFU, 0x00000001U),
478	EMIT_MASKWRITE(0xE000A000, 0xFFFFFFFFU, 0xFFFE0000U),
479	EMIT_MASKWRITE(0xE000A208, 0xFFFFFFFFU, 0x00000001U),
480	EMIT_EXIT(),
481};
482
483static unsigned long ps7_post_config_2_0[] = {
484	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
485	EMIT_MASKWRITE(0xF8000900, 0x0000000FU, 0x0000000FU),
486	EMIT_MASKWRITE(0xF8000240, 0xFFFFFFFFU, 0x00000000U),
487	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
488	EMIT_EXIT(),
489};
490
491static unsigned long ps7_pll_init_data_1_0[] = {
492	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
493	EMIT_MASKWRITE(0xF8000110, 0x003FFFF0U, 0x000FA220U),
494	EMIT_MASKWRITE(0xF8000100, 0x0007F000U, 0x00028000U),
495	EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000010U),
496	EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000001U),
497	EMIT_MASKWRITE(0xF8000100, 0x00000001U, 0x00000000U),
498	EMIT_MASKPOLL(0xF800010C, 0x00000001U),
499	EMIT_MASKWRITE(0xF8000100, 0x00000010U, 0x00000000U),
500	EMIT_MASKWRITE(0xF8000120, 0x1F003F30U, 0x1F000200U),
501	EMIT_MASKWRITE(0xF8000114, 0x003FFFF0U, 0x0012C220U),
502	EMIT_MASKWRITE(0xF8000104, 0x0007F000U, 0x00020000U),
503	EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000010U),
504	EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000001U),
505	EMIT_MASKWRITE(0xF8000104, 0x00000001U, 0x00000000U),
506	EMIT_MASKPOLL(0xF800010C, 0x00000002U),
507	EMIT_MASKWRITE(0xF8000104, 0x00000010U, 0x00000000U),
508	EMIT_MASKWRITE(0xF8000124, 0xFFF00003U, 0x0C200003U),
509	EMIT_MASKWRITE(0xF8000118, 0x003FFFF0U, 0x001452C0U),
510	EMIT_MASKWRITE(0xF8000108, 0x0007F000U, 0x0001E000U),
511	EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000010U),
512	EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000001U),
513	EMIT_MASKWRITE(0xF8000108, 0x00000001U, 0x00000000U),
514	EMIT_MASKPOLL(0xF800010C, 0x00000004U),
515	EMIT_MASKWRITE(0xF8000108, 0x00000010U, 0x00000000U),
516	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
517	EMIT_EXIT(),
518};
519
520static unsigned long ps7_clock_init_data_1_0[] = {
521	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
522	EMIT_MASKWRITE(0xF8000128, 0x03F03F01U, 0x00700F01U),
523	EMIT_MASKWRITE(0xF8000148, 0x00003F31U, 0x00000A01U),
524	EMIT_MASKWRITE(0xF8000154, 0x00003F33U, 0x00001402U),
525	EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000602U),
526	EMIT_MASKWRITE(0xF800015C, 0x03F03F33U, 0x00100102U),
527	EMIT_MASKWRITE(0xF8000160, 0x007F007FU, 0x004C0000U),
528	EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000501U),
529	EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00400500U),
530	EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
531	EMIT_MASKWRITE(0xF800012C, 0x01FFCCCDU, 0x016E800DU),
532	EMIT_MASKWRITE(0xF8000304, 0x00000001U, 0x00000000U),
533	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
534	EMIT_EXIT(),
535};
536
537static unsigned long ps7_ddr_init_data_1_0[] = {
538	EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000080U),
539	EMIT_MASKWRITE(0xF8006004, 0x1FFFFFFFU, 0x00081081U),
540	EMIT_MASKWRITE(0xF8006008, 0x03FFFFFFU, 0x03C0780FU),
541	EMIT_MASKWRITE(0xF800600C, 0x03FFFFFFU, 0x02001001U),
542	EMIT_MASKWRITE(0xF8006010, 0x03FFFFFFU, 0x00014001U),
543	EMIT_MASKWRITE(0xF8006014, 0x001FFFFFU, 0x0004159BU),
544	EMIT_MASKWRITE(0xF8006018, 0xF7FFFFFFU, 0x44E438D2U),
545	EMIT_MASKWRITE(0xF800601C, 0xFFFFFFFFU, 0x720238E5U),
546	EMIT_MASKWRITE(0xF8006020, 0xFFFFFFFCU, 0x27287290U),
547	EMIT_MASKWRITE(0xF8006024, 0x0FFFFFFFU, 0x0000003CU),
548	EMIT_MASKWRITE(0xF8006028, 0x00003FFFU, 0x00002007U),
549	EMIT_MASKWRITE(0xF800602C, 0xFFFFFFFFU, 0x00000008U),
550	EMIT_MASKWRITE(0xF8006030, 0xFFFFFFFFU, 0x00040930U),
551	EMIT_MASKWRITE(0xF8006034, 0x13FF3FFFU, 0x000116D4U),
552	EMIT_MASKWRITE(0xF8006038, 0x00001FC3U, 0x00000000U),
553	EMIT_MASKWRITE(0xF800603C, 0x000FFFFFU, 0x00000777U),
554	EMIT_MASKWRITE(0xF8006040, 0xFFFFFFFFU, 0xFFF00000U),
555	EMIT_MASKWRITE(0xF8006044, 0x0FFFFFFFU, 0x0F666666U),
556	EMIT_MASKWRITE(0xF8006048, 0x3FFFFFFFU, 0x0003C248U),
557	EMIT_MASKWRITE(0xF8006050, 0xFF0F8FFFU, 0x77010800U),
558	EMIT_MASKWRITE(0xF8006058, 0x0001FFFFU, 0x00000101U),
559	EMIT_MASKWRITE(0xF800605C, 0x0000FFFFU, 0x00005003U),
560	EMIT_MASKWRITE(0xF8006060, 0x000017FFU, 0x0000003EU),
561	EMIT_MASKWRITE(0xF8006064, 0x00021FE0U, 0x00020000U),
562	EMIT_MASKWRITE(0xF8006068, 0x03FFFFFFU, 0x00284141U),
563	EMIT_MASKWRITE(0xF800606C, 0x0000FFFFU, 0x00001610U),
564	EMIT_MASKWRITE(0xF80060A0, 0x00FFFFFFU, 0x00008000U),
565	EMIT_MASKWRITE(0xF80060A4, 0xFFFFFFFFU, 0x10200802U),
566	EMIT_MASKWRITE(0xF80060A8, 0x0FFFFFFFU, 0x0690CB73U),
567	EMIT_MASKWRITE(0xF80060AC, 0x000001FFU, 0x000001FEU),
568	EMIT_MASKWRITE(0xF80060B0, 0x1FFFFFFFU, 0x1CFFFFFFU),
569	EMIT_MASKWRITE(0xF80060B4, 0x000007FFU, 0x00000200U),
570	EMIT_MASKWRITE(0xF80060B8, 0x01FFFFFFU, 0x00200066U),
571	EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000003U),
572	EMIT_MASKWRITE(0xF80060C4, 0x00000003U, 0x00000000U),
573	EMIT_MASKWRITE(0xF80060C8, 0x000000FFU, 0x00000000U),
574	EMIT_MASKWRITE(0xF80060DC, 0x00000001U, 0x00000000U),
575	EMIT_MASKWRITE(0xF80060F0, 0x0000FFFFU, 0x00000000U),
576	EMIT_MASKWRITE(0xF80060F4, 0x0000000FU, 0x00000008U),
577	EMIT_MASKWRITE(0xF8006114, 0x000000FFU, 0x00000000U),
578	EMIT_MASKWRITE(0xF8006118, 0x7FFFFFFFU, 0x40000001U),
579	EMIT_MASKWRITE(0xF800611C, 0x7FFFFFFFU, 0x40000001U),
580	EMIT_MASKWRITE(0xF8006120, 0x7FFFFFFFU, 0x40000001U),
581	EMIT_MASKWRITE(0xF8006124, 0x7FFFFFFFU, 0x40000001U),
582	EMIT_MASKWRITE(0xF800612C, 0x000FFFFFU, 0x0003902DU),
583	EMIT_MASKWRITE(0xF8006130, 0x000FFFFFU, 0x00032022U),
584	EMIT_MASKWRITE(0xF8006134, 0x000FFFFFU, 0x0003341CU),
585	EMIT_MASKWRITE(0xF8006138, 0x000FFFFFU, 0x00036438U),
586	EMIT_MASKWRITE(0xF8006140, 0x000FFFFFU, 0x00000035U),
587	EMIT_MASKWRITE(0xF8006144, 0x000FFFFFU, 0x00000035U),
588	EMIT_MASKWRITE(0xF8006148, 0x000FFFFFU, 0x00000035U),
589	EMIT_MASKWRITE(0xF800614C, 0x000FFFFFU, 0x00000035U),
590	EMIT_MASKWRITE(0xF8006154, 0x000FFFFFU, 0x000000ADU),
591	EMIT_MASKWRITE(0xF8006158, 0x000FFFFFU, 0x000000A2U),
592	EMIT_MASKWRITE(0xF800615C, 0x000FFFFFU, 0x0000009CU),
593	EMIT_MASKWRITE(0xF8006160, 0x000FFFFFU, 0x000000B8U),
594	EMIT_MASKWRITE(0xF8006168, 0x001FFFFFU, 0x00000139U),
595	EMIT_MASKWRITE(0xF800616C, 0x001FFFFFU, 0x0000011DU),
596	EMIT_MASKWRITE(0xF8006170, 0x001FFFFFU, 0x00000122U),
597	EMIT_MASKWRITE(0xF8006174, 0x001FFFFFU, 0x0000012EU),
598	EMIT_MASKWRITE(0xF800617C, 0x000FFFFFU, 0x000000EDU),
599	EMIT_MASKWRITE(0xF8006180, 0x000FFFFFU, 0x000000E2U),
600	EMIT_MASKWRITE(0xF8006184, 0x000FFFFFU, 0x000000DCU),
601	EMIT_MASKWRITE(0xF8006188, 0x000FFFFFU, 0x000000F8U),
602	EMIT_MASKWRITE(0xF8006190, 0xFFFFFFFFU, 0x10040080U),
603	EMIT_MASKWRITE(0xF8006194, 0x000FFFFFU, 0x0001FC82U),
604	EMIT_MASKWRITE(0xF8006204, 0xFFFFFFFFU, 0x00000000U),
605	EMIT_MASKWRITE(0xF8006208, 0x000F03FFU, 0x000803FFU),
606	EMIT_MASKWRITE(0xF800620C, 0x000F03FFU, 0x000803FFU),
607	EMIT_MASKWRITE(0xF8006210, 0x000F03FFU, 0x000803FFU),
608	EMIT_MASKWRITE(0xF8006214, 0x000F03FFU, 0x000803FFU),
609	EMIT_MASKWRITE(0xF8006218, 0x000F03FFU, 0x000003FFU),
610	EMIT_MASKWRITE(0xF800621C, 0x000F03FFU, 0x000003FFU),
611	EMIT_MASKWRITE(0xF8006220, 0x000F03FFU, 0x000003FFU),
612	EMIT_MASKWRITE(0xF8006224, 0x000F03FFU, 0x000003FFU),
613	EMIT_MASKWRITE(0xF80062A8, 0x00000FF7U, 0x00000000U),
614	EMIT_MASKWRITE(0xF80062AC, 0xFFFFFFFFU, 0x00000000U),
615	EMIT_MASKWRITE(0xF80062B0, 0x003FFFFFU, 0x00005125U),
616	EMIT_MASKWRITE(0xF80062B4, 0x0003FFFFU, 0x000012A8U),
617	EMIT_MASKPOLL(0xF8000B74, 0x00002000U),
618	EMIT_MASKWRITE(0xF8006000, 0x0001FFFFU, 0x00000081U),
619	EMIT_MASKPOLL(0xF8006054, 0x00000007U),
620	EMIT_EXIT(),
621};
622
623static unsigned long ps7_mio_init_data_1_0[] = {
624	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
625	EMIT_MASKWRITE(0xF8000B40, 0x00000FFFU, 0x00000600U),
626	EMIT_MASKWRITE(0xF8000B44, 0x00000FFFU, 0x00000600U),
627	EMIT_MASKWRITE(0xF8000B48, 0x00000FFFU, 0x00000672U),
628	EMIT_MASKWRITE(0xF8000B4C, 0x00000FFFU, 0x00000672U),
629	EMIT_MASKWRITE(0xF8000B50, 0x00000FFFU, 0x00000674U),
630	EMIT_MASKWRITE(0xF8000B54, 0x00000FFFU, 0x00000674U),
631	EMIT_MASKWRITE(0xF8000B58, 0x00000FFFU, 0x00000600U),
632	EMIT_MASKWRITE(0xF8000B5C, 0xFFFFFFFFU, 0x0018C61CU),
633	EMIT_MASKWRITE(0xF8000B60, 0xFFFFFFFFU, 0x00F9861CU),
634	EMIT_MASKWRITE(0xF8000B64, 0xFFFFFFFFU, 0x00F9861CU),
635	EMIT_MASKWRITE(0xF8000B68, 0xFFFFFFFFU, 0x00F9861CU),
636	EMIT_MASKWRITE(0xF8000B6C, 0x000073FFU, 0x00000260U),
637	EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000021U),
638	EMIT_MASKWRITE(0xF8000B70, 0x00000021U, 0x00000020U),
639	EMIT_MASKWRITE(0xF8000B70, 0x07FFFFFFU, 0x00000823U),
640	EMIT_MASKWRITE(0xF8000700, 0x00003FFFU, 0x00001600U),
641	EMIT_MASKWRITE(0xF8000704, 0x00003FFFU, 0x00001608U),
642	EMIT_MASKWRITE(0xF8000708, 0x00003FFFU, 0x00000600U),
643	EMIT_MASKWRITE(0xF800070C, 0x00003FFFU, 0x00000608U),
644	EMIT_MASKWRITE(0xF8000710, 0x00003FFFU, 0x00000608U),
645	EMIT_MASKWRITE(0xF8000714, 0x00003FFFU, 0x00000608U),
646	EMIT_MASKWRITE(0xF8000718, 0x00003FFFU, 0x00000608U),
647	EMIT_MASKWRITE(0xF800071C, 0x00003FFFU, 0x00000608U),
648	EMIT_MASKWRITE(0xF8000720, 0x00003FFFU, 0x00000640U),
649	EMIT_MASKWRITE(0xF8000724, 0x00003FFFU, 0x00001608U),
650	EMIT_MASKWRITE(0xF8000728, 0x00003FFFU, 0x00001608U),
651	EMIT_MASKWRITE(0xF800072C, 0x00003FFFU, 0x00001608U),
652	EMIT_MASKWRITE(0xF8000730, 0x00003FFFU, 0x00001600U),
653	EMIT_MASKWRITE(0xF8000734, 0x00003FFFU, 0x00001608U),
654	EMIT_MASKWRITE(0xF8000738, 0x00003FFFU, 0x00001600U),
655	EMIT_MASKWRITE(0xF800073C, 0x00003FFFU, 0x00001608U),
656	EMIT_MASKWRITE(0xF8000740, 0x00003FFFU, 0x00001608U),
657	EMIT_MASKWRITE(0xF8000744, 0x00003FFFU, 0x00001608U),
658	EMIT_MASKWRITE(0xF8000748, 0x00003FFFU, 0x00001608U),
659	EMIT_MASKWRITE(0xF800074C, 0x00003FFFU, 0x00001608U),
660	EMIT_MASKWRITE(0xF8000750, 0x00003FFFU, 0x00001608U),
661	EMIT_MASKWRITE(0xF8000754, 0x00003FFFU, 0x00001608U),
662	EMIT_MASKWRITE(0xF8000758, 0x00003FFFU, 0x00001608U),
663	EMIT_MASKWRITE(0xF800075C, 0x00003FFFU, 0x00001608U),
664	EMIT_MASKWRITE(0xF8000760, 0x00003FFFU, 0x00001608U),
665	EMIT_MASKWRITE(0xF8000764, 0x00003FFFU, 0x00001608U),
666	EMIT_MASKWRITE(0xF8000768, 0x00003FFFU, 0x00001608U),
667	EMIT_MASKWRITE(0xF800076C, 0x00003FFFU, 0x00001608U),
668	EMIT_MASKWRITE(0xF8000770, 0x00003FFFU, 0x00001608U),
669	EMIT_MASKWRITE(0xF8000774, 0x00003FFFU, 0x00001608U),
670	EMIT_MASKWRITE(0xF8000778, 0x00003FFFU, 0x00001608U),
671	EMIT_MASKWRITE(0xF800077C, 0x00003FFFU, 0x00001608U),
672	EMIT_MASKWRITE(0xF8000780, 0x00003FFFU, 0x00001608U),
673	EMIT_MASKWRITE(0xF8000784, 0x00003FFFU, 0x00001608U),
674	EMIT_MASKWRITE(0xF8000788, 0x00003FFFU, 0x00001608U),
675	EMIT_MASKWRITE(0xF800078C, 0x00003FFFU, 0x00001608U),
676	EMIT_MASKWRITE(0xF8000790, 0x00003FFFU, 0x00001608U),
677	EMIT_MASKWRITE(0xF8000794, 0x00003FFFU, 0x00001608U),
678	EMIT_MASKWRITE(0xF8000798, 0x00003FFFU, 0x00001608U),
679	EMIT_MASKWRITE(0xF800079C, 0x00003FFFU, 0x00001608U),
680	EMIT_MASKWRITE(0xF80007A0, 0x00003FFFU, 0x00001640U),
681	EMIT_MASKWRITE(0xF80007A4, 0x00003FFFU, 0x00001640U),
682	EMIT_MASKWRITE(0xF80007A8, 0x00003FFFU, 0x00001640U),
683	EMIT_MASKWRITE(0xF80007AC, 0x00003FFFU, 0x00001640U),
684	EMIT_MASKWRITE(0xF80007B0, 0x00003FFFU, 0x00001620U),
685	EMIT_MASKWRITE(0xF80007B4, 0x00003FFFU, 0x00001621U),
686	EMIT_MASKWRITE(0xF80007B8, 0x00003FFFU, 0x000016A0U),
687	EMIT_MASKWRITE(0xF80007BC, 0x00003FFFU, 0x000016A0U),
688	EMIT_MASKWRITE(0xF80007C0, 0x00003FFFU, 0x000016A0U),
689	EMIT_MASKWRITE(0xF80007C4, 0x00003FFFU, 0x000016A0U),
690	EMIT_MASKWRITE(0xF80007C8, 0x00003FFFU, 0x000016A0U),
691	EMIT_MASKWRITE(0xF80007CC, 0x00003FFFU, 0x00001600U),
692	EMIT_MASKWRITE(0xF80007D0, 0x00003FFFU, 0x000016E0U),
693	EMIT_MASKWRITE(0xF80007D4, 0x00003FFFU, 0x000016E1U),
694	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
695	EMIT_EXIT(),
696};
697
698static unsigned long ps7_peripherals_init_data_1_0[] = {
699	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
700	EMIT_MASKWRITE(0xF8000B48, 0x00000180U, 0x00000180U),
701	EMIT_MASKWRITE(0xF8000B4C, 0x00000180U, 0x00000180U),
702	EMIT_MASKWRITE(0xF8000B50, 0x00000180U, 0x00000180U),
703	EMIT_MASKWRITE(0xF8000B54, 0x00000180U, 0x00000180U),
704	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
705	EMIT_MASKWRITE(0xE000E018, 0x00001000U, 0x00001000U),
706	EMIT_MASKWRITE(0xE000D000, 0x00080000U, 0x00080000U),
707	EMIT_MASKWRITE(0xF8007000, 0x20000000U, 0x00000000U),
708	EMIT_MASKWRITE(0xE000E014, 0x00FFFFFFU, 0x00049BAAU),
709	EMIT_MASKWRITE(0xE000E010, 0x03EFFFFFU, 0x000000F0U),
710	EMIT_MASKWRITE(0xE2000000, 0x0000FFFFU, 0x000000F0U),
711	EMIT_MASKDELAY(0xF8F00200, 1),
712	EMIT_MASKDELAY(0xF8F00200, 1),
713	EMIT_MASKDELAY(0xF8F00200, 1),
714	EMIT_MASKDELAY(0xF8F00200, 1),
715	EMIT_MASKDELAY(0xF8F00200, 1),
716	EMIT_MASKDELAY(0xF8F00200, 1),
717	EMIT_MASKWRITE(0xE000A204, 0xFFFFFFFFU, 0x00000001U),
718	EMIT_MASKWRITE(0xE000A000, 0xFFFFFFFFU, 0xFFFE0000U),
719	EMIT_MASKWRITE(0xE000A208, 0xFFFFFFFFU, 0x00000001U),
720	EMIT_EXIT(),
721};
722
723static unsigned long ps7_post_config_1_0[] = {
724	EMIT_MASKWRITE(0xF8000008, 0x0000FFFFU, 0x0000DF0DU),
725	EMIT_MASKWRITE(0xF8000900, 0x0000000FU, 0x0000000FU),
726	EMIT_MASKWRITE(0xF8000240, 0xFFFFFFFFU, 0x00000000U),
727	EMIT_MASKWRITE(0xF8000004, 0x0000FFFFU, 0x0000767BU),
728	EMIT_EXIT(),
729};
730
731static unsigned long *ps7_mio_init_data = ps7_mio_init_data_3_0;
732static unsigned long *ps7_pll_init_data = ps7_pll_init_data_3_0;
733static unsigned long *ps7_clock_init_data = ps7_clock_init_data_3_0;
734static unsigned long *ps7_ddr_init_data = ps7_ddr_init_data_3_0;
735static unsigned long *ps7_peripherals_init_data = ps7_peripherals_init_data_3_0;
736
737int ps7_post_config(void)
738{
739	unsigned long si_ver = ps7GetSiliconVersion();
740	int ret = -1;
741
742	if (si_ver == PCW_SILICON_VERSION_1) {
743		ret = ps7_config(ps7_post_config_1_0);
744		if (ret != PS7_INIT_SUCCESS)
745			return ret;
746	} else if (si_ver == PCW_SILICON_VERSION_2) {
747		ret = ps7_config(ps7_post_config_2_0);
748		if (ret != PS7_INIT_SUCCESS)
749			return ret;
750	} else {
751		ret = ps7_config(ps7_post_config_3_0);
752		if (ret != PS7_INIT_SUCCESS)
753			return ret;
754	}
755	return PS7_INIT_SUCCESS;
756}
757
758int ps7_init(void)
759{
760	unsigned long si_ver = ps7GetSiliconVersion();
761	int ret;
762
763	if (si_ver == PCW_SILICON_VERSION_1) {
764		ps7_mio_init_data = ps7_mio_init_data_1_0;
765		ps7_pll_init_data = ps7_pll_init_data_1_0;
766		ps7_clock_init_data = ps7_clock_init_data_1_0;
767		ps7_ddr_init_data = ps7_ddr_init_data_1_0;
768		ps7_peripherals_init_data = ps7_peripherals_init_data_1_0;
769
770	} else if (si_ver == PCW_SILICON_VERSION_2) {
771		ps7_mio_init_data = ps7_mio_init_data_2_0;
772		ps7_pll_init_data = ps7_pll_init_data_2_0;
773		ps7_clock_init_data = ps7_clock_init_data_2_0;
774		ps7_ddr_init_data = ps7_ddr_init_data_2_0;
775		ps7_peripherals_init_data = ps7_peripherals_init_data_2_0;
776
777	} else {
778		ps7_mio_init_data = ps7_mio_init_data_3_0;
779		ps7_pll_init_data = ps7_pll_init_data_3_0;
780		ps7_clock_init_data = ps7_clock_init_data_3_0;
781		ps7_ddr_init_data = ps7_ddr_init_data_3_0;
782		ps7_peripherals_init_data = ps7_peripherals_init_data_3_0;
783	}
784
785	ret = ps7_config(ps7_mio_init_data);
786	if (ret != PS7_INIT_SUCCESS)
787		return ret;
788
789	ret = ps7_config(ps7_pll_init_data);
790	if (ret != PS7_INIT_SUCCESS)
791		return ret;
792
793	ret = ps7_config(ps7_clock_init_data);
794	if (ret != PS7_INIT_SUCCESS)
795		return ret;
796
797	ret = ps7_config(ps7_ddr_init_data);
798	if (ret != PS7_INIT_SUCCESS)
799		return ret;
800
801	ret = ps7_config(ps7_peripherals_init_data);
802	if (ret != PS7_INIT_SUCCESS)
803		return ret;
804	return PS7_INIT_SUCCESS;
805}
806