blob: 7b72a87194903a44fee57794db2ab87e5235f62e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
|
#ifndef __SCI_IOMAP_H__
#define __SCI_IOMAP_H__
#ifndef __ASSEMBLER__
struct iomap_sprd {
unsigned long vaddr;
unsigned long paddr;
unsigned long length;
};
extern struct iotable_sprd io_addr_sprd;
struct iotable_sprd {
struct iomap_sprd AHB;
#define SPRD_AHB_PHYS io_addr_sprd.AHB.paddr
#define SPRD_AHB_BASE io_addr_sprd.AHB.vaddr
#define SPRD_AHB_SIZE io_addr_sprd.AHB.length
/* struct iomap_sprd HWLOCK0;
#define SPRD_HWLOCK0_PHYS io_addr_sprd.HWLOCK0.paddr
#define SPRD_HWLOCK0_BASE io_addr_sprd.HWLOCK0.vaddr
#define SPRD_HWLOCK0_SIZE io_addr_sprd.HWLOCK0.length
*/
struct iomap_sprd PUB;
#define SPRD_PUB_PHYS io_addr_sprd.PUB.paddr
#define SPRD_PUB_BASE io_addr_sprd.PUB.vaddr
#define SPRD_PUB_SIZE io_addr_sprd.PUB.length
struct iomap_sprd AONAPB;
#define SPRD_AONAPB_PHYS io_addr_sprd.AONAPB.paddr
#define SPRD_AONAPB_BASE io_addr_sprd.AONAPB.vaddr
#define SPRD_AONAPB_SIZE io_addr_sprd.AONAPB.length
struct iomap_sprd PMU;
#define SPRD_PMU_PHYS io_addr_sprd.PMU.paddr
#define SPRD_PMU_BASE io_addr_sprd.PMU.vaddr
#define SPRD_PMU_SIZE io_addr_sprd.PMU.length
struct iomap_sprd MMAHB;
#define SPRD_MMAHB_PHYS io_addr_sprd.MMAHB.paddr
#define SPRD_MMAHB_BASE io_addr_sprd.MMAHB.vaddr
#define SPRD_MMAHB_SIZE io_addr_sprd.MMAHB.length
struct iomap_sprd MMCKG;
#define SPRD_MMCKG_PHYS io_addr_sprd.MMCKG.paddr
#define SPRD_MMCKG_BASE io_addr_sprd.MMCKG.vaddr
#define SPRD_MMCKG_SIZE io_addr_sprd.MMCKG.length
#if defined(CONFIG_MACH_SP9830I) || defined(CONFIG_ARCH_SCX30G2) || defined(CONFIG_ARCH_SCX35LT8)
struct iomap_sprd CODECAHB;
#define SPRD_CODECAHB_PHYS io_addr_sprd.CODECAHB.paddr
#define SPRD_CODECAHB_BASE io_addr_sprd.CODECAHB.vaddr
#define SPRD_CODECAHB_SIZE io_addr_sprd.CODECAHB.length
#endif
struct iomap_sprd APBREG;
#define SPRD_APBREG_PHYS io_addr_sprd.APBREG.paddr
#define SPRD_APBREG_BASE io_addr_sprd.APBREG.vaddr
#define SPRD_APBREG_SIZE io_addr_sprd.APBREG.length
struct iomap_sprd GPUAPB;
#define SPRD_GPUAPB_PHYS io_addr_sprd.GPUAPB.paddr
#define SPRD_GPUAPB_BASE io_addr_sprd.GPUAPB.vaddr
#define SPRD_GPUAPB_SIZE io_addr_sprd.GPUAPB.length
struct iomap_sprd APBCKG;
#define SPRD_APBCKG_PHYS io_addr_sprd.APBCKG.paddr
#define SPRD_APBCKG_BASE io_addr_sprd.APBCKG.vaddr
#define SPRD_APBCKG_SIZE io_addr_sprd.APBCKG.length
/* seems not good to keep */
struct iomap_sprd DMA0;
#define SPRD_DMA0_PHYS io_addr_sprd.DMA0.paddr
#define SPRD_DMA0_BASE io_addr_sprd.DMA0.vaddr
#define SPRD_DMA0_SIZE io_addr_sprd.DMA0.length
struct iomap_sprd WDG;
#define SPRD_WDG_PHYS (io_addr_sprd.WDG.paddr)
#define SPRD_WDG_BASE (io_addr_sprd.WDG.vaddr)
#define SPRD_WDG_SIZE (io_addr_sprd.WDG.length)
struct iomap_sprd HWSPINLOCK0;
#define SPRD_HWSPINLOCK0_PHYS io_addr_sprd.HWSPINLOCK0.paddr
#define SPRD_HWSPINLOCK0_BASE io_addr_sprd.HWSPINLOCK0.vaddr
#define SPRD_HWSPINLOCK0_SIZE io_addr_sprd.HWSPINLOCK0.length
struct iomap_sprd HWSPINLOCK1;
#define SPRD_HWSPINLOCK1_PHYS io_addr_sprd.HWSPINLOCK1.paddr
#define SPRD_HWSPINLOCK1_BASE io_addr_sprd.HWSPINLOCK1.vaddr
#define SPRD_HWSPINLOCK1_SIZE io_addr_sprd.HWSPINLOCK1.length
/************** 64BIT private map **************/
#ifdef CONFIG_64BIT
struct iomap_sprd APCKG;
#define SPRD_APCKG_PHYS io_addr_sprd.APCKG.paddr
#define SPRD_APCKG_BASE io_addr_sprd.APCKG.vaddr
#define SPRD_APCKG_SIZE io_addr_sprd.APCKG.length
struct iomap_sprd AONDMA;
#define SPRD_AONDMA_PHYS io_addr_sprd.AONDMA.paddr
#define SPRD_AONDMA_BASE io_addr_sprd.AONDMA.vaddr
#define SPRD_AONDMA_SIZE io_addr_sprd.AONDMA.length
struct iomap_sprd PWM;
#define SPRD_PWM_PHYS io_addr_sprd.PWM.paddr
#define SPRD_PWM_BASE io_addr_sprd.PWM.vaddr
#define SPRD_PWM_SIZE io_addr_sprd.PWM.length
struct iomap_sprd ISP;
#define SPRD_ISP_PHYS io_addr_sprd.ISP.paddr
#define SPRD_ISP_BASE io_addr_sprd.ISP.vaddr
#define SPRD_ISP_SIZE io_addr_sprd.ISP.length
struct iomap_sprd CSI2;
#define SPRD_CSI2_PHYS io_addr_sprd.CSI2.paddr
#define SPRD_CSI2_BASE io_addr_sprd.CSI2.vaddr
#define SPRD_CSI2_SIZE io_addr_sprd.CSI2.length
struct iomap_sprd DCAM;
#define SPRD_DCAM_PHYS io_addr_sprd.DCAM.paddr
#define SPRD_DCAM_BASE io_addr_sprd.DCAM.vaddr
#define SPRD_DCAM_SIZE io_addr_sprd.DCAM.length
struct iomap_sprd PIN;
#define SPRD_PIN_PHYS io_addr_sprd.PIN.paddr
#define SPRD_PIN_BASE io_addr_sprd.PIN.vaddr
#define SPRD_PIN_SIZE io_addr_sprd.PIN.length
struct iomap_sprd GPIO;
#define SPRD_GPIO_PHYS io_addr_sprd.GPIO.paddr
#define SPRD_GPIO_BASE io_addr_sprd.GPIO.vaddr
#define SPRD_GPIO_SIZE io_addr_sprd.GPIO.length
struct iomap_sprd INTC2;
#define SPRD_INTC2_PHYS io_addr_sprd.INTC2.paddr
#define SPRD_INTC2_BASE io_addr_sprd.INTC2.vaddr
#define SPRD_INTC2_SIZE io_addr_sprd.INTC2.length
struct iomap_sprd SYSCNT;
#define SPRD_SYSCNT_PHYS io_addr_sprd.SYSCNT.paddr
#define SPRD_SYSCNT_BASE io_addr_sprd.SYSCNT.vaddr
#define SPRD_SYSCNT_SIZE io_addr_sprd.SYSCNT.length
struct iomap_sprd AONCKG;
#define SPRD_AONCKG_PHYS io_addr_sprd.AONCKG.paddr
#define SPRD_AONCKG_BASE io_addr_sprd.AONCKG.vaddr
#define SPRD_AONCKG_SIZE io_addr_sprd.AONCKG.length
struct iomap_sprd CORE;
#define SPRD_CORE_PHYS io_addr_sprd.CORE.paddr
#define SPRD_CORE_BASE io_addr_sprd.CORE.vaddr
#define SPRD_CORE_SIZE io_addr_sprd.CORE.length
struct iomap_sprd GPUCKG;
#define SPRD_GPUCKG_PHYS io_addr_sprd.GPUCKG.paddr
#define SPRD_GPUCKG_BASE io_addr_sprd.GPUCKG.vaddr
#define SPRD_GPUCKG_SIZE io_addr_sprd.GPUCKG.length
struct iomap_sprd INT;
#define SPRD_INT_PHYS io_addr_sprd.INT.paddr
#define SPRD_INT_BASE io_addr_sprd.INT.vaddr
#define SPRD_INT_SIZE io_addr_sprd.INT.length
struct iomap_sprd INTC0;
#define SPRD_INTC0_PHYS io_addr_sprd.INTC0.paddr
#define SPRD_INTC0_BASE io_addr_sprd.INTC0.vaddr
#define SPRD_INTC0_SIZE io_addr_sprd.INTC0.length
struct iomap_sprd INTC1;
#define SPRD_INTC1_PHYS io_addr_sprd.INTC1.paddr
#define SPRD_INTC1_BASE io_addr_sprd.INTC1.vaddr
#define SPRD_INTC1_SIZE io_addr_sprd.INTC1.length
struct iomap_sprd INTC3;
#define SPRD_INTC3_PHYS io_addr_sprd.INTC3.paddr
#define SPRD_INTC3_BASE io_addr_sprd.INTC3.vaddr
#define SPRD_INTC3_SIZE io_addr_sprd.INTC3.length
struct iomap_sprd UIDEFUSE;
#define SPRD_UIDEFUSE_PHYS io_addr_sprd.UIDEFUSE.paddr
#define SPRD_UIDEFUSE_BASE io_addr_sprd.UIDEFUSE.vaddr
#define SPRD_UIDEFUSE_SIZE io_addr_sprd.UIDEFUSE.length
struct iomap_sprd CA7WDG;
#define SPRD_CA7WDG_PHYS io_addr_sprd.CA7WDG.paddr
#define SPRD_CA7WDG_BASE io_addr_sprd.CA7WDG.vaddr
#define SPRD_CA7WDG_SIZE io_addr_sprd.CA7WDG.length
struct iomap_sprd EIC;
#define SPRD_EIC_PHYS io_addr_sprd.EIC.paddr
#define SPRD_EIC_BASE io_addr_sprd.EIC.vaddr
#define SPRD_EIC_SIZE io_addr_sprd.EIC.length
struct iomap_sprd IPI;
#define SPRD_IPI_PHYS io_addr_sprd.IPI.paddr
#define SPRD_IPI_BASE io_addr_sprd.IPI.vaddr
#define SPRD_IPI_SIZE io_addr_sprd.IPI.length
struct iomap_sprd LPDDR2;
#define SPRD_LPDDR2_PHYS io_addr_sprd.LPDDR2.paddr
#define SPRD_LPDDR2_BASE io_addr_sprd.LPDDR2.vaddr
#define SPRD_LPDDR2_SIZE io_addr_sprd.LPDDR2.length
struct iomap_sprd UART0;
#define SPRD_UART0_PHYS io_addr_sprd.UART0.paddr
#define SPRD_UART0_BASE io_addr_sprd.UART0.vaddr
#define SPRD_UART0_SIZE io_addr_sprd.UART0.length
struct iomap_sprd UART1;
#define SPRD_UART1_PHYS io_addr_sprd.UART1.paddr
#define SPRD_UART1_BASE io_addr_sprd.UART1.vaddr
#define SPRD_UART1_SIZE io_addr_sprd.UART1.length
struct iomap_sprd UART2;
#define SPRD_UART2_PHYS io_addr_sprd.UART2.paddr
#define SPRD_UART2_BASE io_addr_sprd.UART2.vaddr
#define SPRD_UART2_SIZE io_addr_sprd.UART2.length
struct iomap_sprd UART3;
#define SPRD_UART3_PHYS io_addr_sprd.UART3.paddr
#define SPRD_UART3_BASE io_addr_sprd.UART3.vaddr
#define SPRD_UART3_SIZE io_addr_sprd.UART3.length
struct iomap_sprd UART4;
#define SPRD_UART4_PHYS io_addr_sprd.UART4.paddr
#define SPRD_UART4_BASE io_addr_sprd.UART4.vaddr
#define SPRD_UART4_SIZE io_addr_sprd.UART4.length
/* indicate base address of maps */
unsigned long base;
/************** 32BIT private map **************/
#else /* 32BIT */
struct iomap_sprd AONCKG;
#define SPRD_AONCKG_PHYS io_addr_sprd.AONCKG.paddr
#define SPRD_AONCKG_BASE io_addr_sprd.AONCKG.vaddr
#define SPRD_AONCKG_SIZE io_addr_sprd.AONCKG.length
struct iomap_sprd CORE;
#define SPRD_CORE_PHYS io_addr_sprd.CORE.paddr
#define SPRD_CORE_BASE io_addr_sprd.CORE.vaddr
#define SPRD_CORE_SIZE io_addr_sprd.CORE.length
struct iomap_sprd GPUCKG;
#define SPRD_GPUCKG_PHYS io_addr_sprd.GPUCKG.paddr
#define SPRD_GPUCKG_BASE io_addr_sprd.GPUCKG.vaddr
#define SPRD_GPUCKG_SIZE io_addr_sprd.GPUCKG.length
struct iomap_sprd INT;
#define SPRD_INT_PHYS io_addr_sprd.INT.paddr
#define SPRD_INT_BASE io_addr_sprd.INT.vaddr
#define SPRD_INT_SIZE io_addr_sprd.INT.length
struct iomap_sprd INTC0;
#define SPRD_INTC0_PHYS io_addr_sprd.INTC0.paddr
#define SPRD_INTC0_BASE io_addr_sprd.INTC0.vaddr
#define SPRD_INTC0_SIZE io_addr_sprd.INTC0.length
struct iomap_sprd INTC1;
#define SPRD_INTC1_PHYS io_addr_sprd.INTC1.paddr
#define SPRD_INTC1_BASE io_addr_sprd.INTC1.vaddr
#define SPRD_INTC1_SIZE io_addr_sprd.INTC1.length
struct iomap_sprd INTC2;
#define SPRD_INTC2_PHYS io_addr_sprd.INTC2.paddr
#define SPRD_INTC2_BASE io_addr_sprd.INTC2.vaddr
#define SPRD_INTC2_SIZE io_addr_sprd.INTC2.length
struct iomap_sprd INTC3;
#define SPRD_INTC3_PHYS io_addr_sprd.INTC3.paddr
#define SPRD_INTC3_BASE io_addr_sprd.INTC3.vaddr
#define SPRD_INTC3_SIZE io_addr_sprd.INTC3.length
struct iomap_sprd UIDEFUSE;
#define SPRD_UIDEFUSE_PHYS io_addr_sprd.UIDEFUSE.paddr
#define SPRD_UIDEFUSE_BASE io_addr_sprd.UIDEFUSE.vaddr
#define SPRD_UIDEFUSE_SIZE io_addr_sprd.UIDEFUSE.length
struct iomap_sprd ISP;
#define SPRD_ISP_PHYS io_addr_sprd.ISP.paddr
#define SPRD_ISP_BASE io_addr_sprd.ISP.vaddr
#define SPRD_ISP_SIZE io_addr_sprd.ISP.length
struct iomap_sprd CA7WDG;
#define SPRD_CA7WDG_PHYS (io_addr_sprd.CA7WDG.paddr)
#define SPRD_CA7WDG_BASE (io_addr_sprd.CA7WDG.vaddr)
#define SPRD_CA7WDG_SIZE (io_addr_sprd.CA7WDG.length)
struct iomap_sprd CSI2;
#define SPRD_CSI2_PHYS io_addr_sprd.CSI2.paddr
#define SPRD_CSI2_BASE io_addr_sprd.CSI2.vaddr
#define SPRD_CSI2_SIZE io_addr_sprd.CSI2.length
struct iomap_sprd EIC;
#define SPRD_EIC_PHYS io_addr_sprd.EIC.paddr
#define SPRD_EIC_BASE io_addr_sprd.EIC.vaddr
#define SPRD_EIC_SIZE io_addr_sprd.EIC.length
struct iomap_sprd IPI;
#define SPRD_IPI_PHYS io_addr_sprd.IPI.paddr
#define SPRD_IPI_BASE io_addr_sprd.IPI.vaddr
#define SPRD_IPI_SIZE io_addr_sprd.IPI.length
struct iomap_sprd DCAM;
#define SPRD_DCAM_PHYS io_addr_sprd.DCAM.paddr
#define SPRD_DCAM_BASE io_addr_sprd.DCAM.vaddr
#define SPRD_DCAM_SIZE io_addr_sprd.DCAM.length
/* struct iomap_sprd VSP;
#define SPRD_VSP_PHYS io_addr_sprd.VSP.paddr
#define SPRD_VSP_BASE io_addr_sprd.VSP.vaddr
#define SPRD_VSP_SIZE io_addr_sprd.VSP.length
*/
struct iomap_sprd SYSCNT;
#define SPRD_SYSCNT_PHYS io_addr_sprd.SYSCNT.paddr
#define SPRD_SYSCNT_BASE io_addr_sprd.SYSCNT.vaddr
#define SPRD_SYSCNT_SIZE io_addr_sprd.SYSCNT.length
struct iomap_sprd PIN;
#define SPRD_PIN_PHYS io_addr_sprd.PIN.paddr
#define SPRD_PIN_BASE io_addr_sprd.PIN.vaddr
#define SPRD_PIN_SIZE io_addr_sprd.PIN.length
struct iomap_sprd GPIO;
#define SPRD_GPIO_PHYS io_addr_sprd.GPIO.paddr
#define SPRD_GPIO_BASE io_addr_sprd.GPIO.vaddr
#define SPRD_GPIO_SIZE io_addr_sprd.GPIO.length
#endif
};
#else /* __ASSEMBLER__ */
#if !defined(CONFIG_64BIT)
#define SPRD_UART1_PHYS 0x70100000
#endif
#endif /* __ASSEMBLER__ */
#if defined(CONFIG_ARCH_SCX30G2) || defined(CONFIG_MACH_SP9830I) || defined(CONFIG_ARCH_SCX35LT8)
#define REGS_CODEC_AHB_BASE SPRD_CODECAHB_BASE
#endif
#endif /* __SCI_IOMAP_H__ */
|