]> rtime.felk.cvut.cz Git - arc.git/blob - arch/ppc/mpc55xx/drivers/ip_adc_mpc56xx.h
Merge with 3ecb6845e742978827406b7da6f77dc350e6b55b
[arc.git] / arch / ppc / mpc55xx / drivers / ip_adc_mpc56xx.h
1 /****************************************************************************/\r
2 /*                             MODULE : ADC                                 */\r
3 /****************************************************************************/\r
4     struct ADC_tag {\r
5 \r
6         union {\r
7             vuint32_t R;\r
8             struct {\r
9                 vuint32_t OWREN:1;\r
10                 vuint32_t WLSIDE:1;\r
11                 vuint32_t MODE:1;\r
12                 vuint32_t EDGLEV:1;\r
13                 vuint32_t TRGEN:1;\r
14                 vuint32_t EDGE:1;\r
15                   vuint32_t:1;\r
16                 vuint32_t NSTART:1;\r
17                   vuint32_t:1;\r
18                 vuint32_t JTRGEN:1;\r
19                 vuint32_t JEDGE:1;\r
20                 vuint32_t JSTART:1;\r
21                   vuint32_t:11;\r
22                 vuint32_t ADCLKSEL:1;\r
23                 vuint32_t ABORTCHAIN:1;\r
24                 vuint32_t ABORT:1;\r
25                 vuint32_t ACK0:1;\r
26                   vuint32_t:4;\r
27                 vuint32_t PWDN:1;\r
28             } B;\r
29         } MCR;                         /* MAIN CONFIGURATION REGISTER */\r
30 \r
31         union {\r
32             vuint32_t R;\r
33             struct {\r
34                   vuint32_t:7;\r
35                 vuint32_t NSTART:1;\r
36                 vuint32_t JABORT:1;\r
37                   vuint32_t:2;\r
38                 vuint32_t JSTART:1;\r
39                   vuint32_t:4;\r
40                 vuint32_t CHADDR:7;\r
41                   vuint32_t:3;\r
42                 vuint32_t ACK0:1;\r
43                   vuint32_t:2;\r
44                 vuint32_t ADCSTATUS:3;\r
45             } B;\r
46         } MSR;                         /* MAIN STATUS REGISTER */\r
47 \r
48         int32_t ADC_reserved1[2];      /* (0x008 - 0x00F)/4 = 0x02 */\r
49 \r
50         union {\r
51             vuint32_t R;\r
52             struct {\r
53                   vuint32_t:28;\r
54                 vuint32_t JEOC:1;\r
55                 vuint32_t JECH:1;\r
56                 vuint32_t EOC:1;\r
57                 vuint32_t ECH:1;\r
58             } B;\r
59         } ISR;                         /* INTERRUPT STATUS REGISTER */\r
60 \r
61 \r
62         union {\r
63             vuint32_t R;\r
64             struct {\r
65                 vuint32_t EOC31:1;\r
66                 vuint32_t EOC30:1;\r
67                 vuint32_t EOC29:1;\r
68                 vuint32_t EOC28:1;\r
69                 vuint32_t EOC27:1;\r
70                 vuint32_t EOC26:1;\r
71                 vuint32_t EOC25:1;\r
72                 vuint32_t EOC24:1;\r
73                 vuint32_t EOC23:1;\r
74                 vuint32_t EOC22:1;\r
75                 vuint32_t EOC21:1;\r
76                 vuint32_t EOC20:1;\r
77                 vuint32_t EOC19:1;\r
78                 vuint32_t EOC18:1;\r
79                 vuint32_t EOC17:1;\r
80                 vuint32_t EOC16:1;\r
81                 vuint32_t EOC15:1;\r
82                 vuint32_t EOC14:1;\r
83                 vuint32_t EOC13:1;\r
84                 vuint32_t EOC12:1;\r
85                 vuint32_t EOC11:1;\r
86                 vuint32_t EOC10:1;\r
87                 vuint32_t EOC9:1;\r
88                 vuint32_t EOC8:1;\r
89                 vuint32_t EOC7:1;\r
90                 vuint32_t EOC6:1;\r
91                 vuint32_t EOC5:1;\r
92                 vuint32_t EOC4:1;\r
93                 vuint32_t EOC3:1;\r
94                 vuint32_t EOC2:1;\r
95                 vuint32_t EOC1:1;\r
96                 vuint32_t EOC0:1;\r
97             } B;\r
98         } CEOCFR[3];                   /* Channel Pending Registers - [0] not supported */\r
99 \r
100         union {\r
101             vuint32_t R;\r
102             struct {\r
103                   vuint32_t:28;\r
104                 vuint32_t MSKJEOC:1;\r
105                 vuint32_t MSKJECH:1;\r
106                 vuint32_t MSKEOC:1;\r
107                 vuint32_t MSKECH:1;\r
108             } B;\r
109         } IMR;                         /* INTERRUPT MASK REGISTER */\r
110 \r
111         union {\r
112             vuint32_t R;\r
113             struct {\r
114                 vuint32_t CIM31:1;\r
115                 vuint32_t CIM30:1;\r
116                 vuint32_t CIM29:1;\r
117                 vuint32_t CIM28:1;\r
118                 vuint32_t CIM27:1;\r
119                 vuint32_t CIM26:1;\r
120                 vuint32_t CIM25:1;\r
121                 vuint32_t CIM24:1;\r
122                 vuint32_t CIM23:1;\r
123                 vuint32_t CIM22:1;\r
124                 vuint32_t CIM21:1;\r
125                 vuint32_t CIM20:1;\r
126                 vuint32_t CIM19:1;\r
127                 vuint32_t CIM18:1;\r
128                 vuint32_t CIM17:1;\r
129                 vuint32_t CIM16:1;\r
130                 vuint32_t CIM15:1;\r
131                 vuint32_t CIM14:1;\r
132                 vuint32_t CIM13:1;\r
133                 vuint32_t CIM12:1;\r
134                 vuint32_t CIM11:1;\r
135                 vuint32_t CIM10:1;\r
136                 vuint32_t CIM9:1;\r
137                 vuint32_t CIM8:1;\r
138                 vuint32_t CIM7:1;\r
139                 vuint32_t CIM6:1;\r
140                 vuint32_t CIM5:1;\r
141                 vuint32_t CIM4:1;\r
142                 vuint32_t CIM3:1;\r
143                 vuint32_t CIM2:1;\r
144                 vuint32_t CIM1:1;\r
145                 vuint32_t CIM0:1;\r
146             } B;\r
147         } CIMR[3];                     /* Channel Interrupt Mask Registers - [0] not supported */\r
148 \r
149         union {\r
150             vuint32_t R;\r
151             struct {\r
152                   vuint32_t:24;\r
153                 vuint32_t WDG3H:1;\r
154                 vuint32_t WDG2H:1;\r
155                 vuint32_t WDG1H:1;\r
156                 vuint32_t WDG0H:1;\r
157                 vuint32_t WDG3L:1;\r
158                 vuint32_t WDG2L:1;\r
159                 vuint32_t WDG1L:1;\r
160                 vuint32_t WDG0L:1;\r
161             } B;\r
162         } WTISR;                       /* WATCHDOG INTERRUPT THRESHOLD REGISTER was WDGTHR */\r
163 \r
164         union {\r
165             vuint32_t R;\r
166             struct {\r
167                   vuint32_t:24;\r
168                 vuint32_t MSKWDG3H:1;\r
169                 vuint32_t MSKWDG2H:1;\r
170                 vuint32_t MSKWDG1H:1;\r
171                 vuint32_t MSKWDG0H:1;\r
172                 vuint32_t MSKWDG3L:1;\r
173                 vuint32_t MSKWDG2L:1;\r
174                 vuint32_t MSKWDG1L:1;\r
175                 vuint32_t MSKWDG0L:1;\r
176             } B;\r
177         } WTIMR;                       /* WATCHDOG INTERRUPT MASK REGISTER was IMWDGTHR */\r
178 \r
179         int32_t ADC_reserved2[2];      /* (0x038 - 0x03F)/4 = 0x02 */\r
180 \r
181     union {\r
182             vuint32_t R;\r
183             struct {\r
184                   vuint32_t:30;\r
185                 vuint32_t DCLR:1;\r
186                 vuint32_t DMAEN:1;\r
187             } B;\r
188         } DMAE;                        /* DMAE REGISTER */\r
189 \r
190         union {\r
191             vuint32_t R;\r
192             struct {\r
193                 vuint32_t DMA31:1;     //was unused [16]\r
194                 vuint32_t DMA30:1;\r
195                 vuint32_t DMA29:1;\r
196                 vuint32_t DMA28:1;\r
197                 vuint32_t DMA27:1;\r
198                 vuint32_t DMA26:1;\r
199                 vuint32_t DMA25:1;\r
200                 vuint32_t DMA24:1;\r
201                 vuint32_t DMA23:1;\r
202                 vuint32_t DMA22:1;\r
203                 vuint32_t DMA21:1;\r
204                 vuint32_t DMA20:1;\r
205                 vuint32_t DMA19:1;\r
206                 vuint32_t DMA18:1;\r
207                 vuint32_t DMA17:1;\r
208                 vuint32_t DMA16:1;\r
209                 vuint32_t DMA15:1;\r
210                 vuint32_t DMA14:1;\r
211                 vuint32_t DMA13:1;\r
212                 vuint32_t DMA12:1;\r
213                 vuint32_t DMA11:1;\r
214                 vuint32_t DMA10:1;\r
215                 vuint32_t DMA9:1;\r
216                 vuint32_t DMA8:1;\r
217                 vuint32_t DMA7:1;\r
218                 vuint32_t DMA6:1;\r
219                 vuint32_t DMA5:1;\r
220                 vuint32_t DMA4:1;\r
221                 vuint32_t DMA3:1;\r
222                 vuint32_t DMA2:1;\r
223                 vuint32_t DMA1:1;\r
224                 vuint32_t DMA0:1;\r
225             } B;\r
226         } DMAR[3];                     /* DMA Channel select Registers - [0] not supported */\r
227 \r
228         union {\r
229             vuint32_t R;\r
230             struct {\r
231                   vuint32_t:16;\r
232                 vuint32_t THREN:1;\r
233                 vuint32_t THRINV:1;\r
234                   vuint32_t:7;\r
235                 vuint32_t THRCH:7;\r
236             } B;\r
237         } TRC[4];                      /* Threshold Control Registers */\r
238 \r
239         union {\r
240             vuint32_t R;\r
241             struct {\r
242                   vuint32_t:6;\r
243                 vuint32_t THRH:10;\r
244                   vuint32_t:6;\r
245                 vuint32_t THRL:10;\r
246             } B;\r
247         } THRHLR[4];                   /* Threshold Registers */\r
248 \r
249         int32_t ADC_reserved3[9];      /* (0x070 - 0x08F)/4 = 0x09 */\r
250 \r
251     union {\r
252             vuint32_t R;\r
253             struct {\r
254                   vuint32_t:16;\r
255                 vuint32_t INPLATCH:1;\r
256                   vuint32_t:1;\r
257                 vuint32_t OFFSHIFT:2;  //!!! This field only in CTR[0]\r
258                   vuint32_t:1;\r
259                 vuint32_t INPCMP:2;\r
260                   vuint32_t:1;\r
261                 vuint32_t INPSAMP:8;\r
262             } B;\r
263         } CTR[3];                      /* Conversion Timing Register - [0] not supported */\r
264 \r
265     int32_t ADC_reserved4[1];          /* (0x0A0 - 0x0A3)/4 = 0x01 */\r
266 \r
267     union {\r
268             vuint32_t R;\r
269             struct {\r
270                 vuint32_t CH31:1;\r
271                 vuint32_t CH30:1;\r
272                 vuint32_t CH29:1;\r
273                 vuint32_t CH28:1;\r
274                 vuint32_t CH27:1;\r
275                 vuint32_t CH26:1;\r
276                 vuint32_t CH25:1;\r
277                 vuint32_t CH24:1;\r
278                 vuint32_t CH23:1;\r
279                 vuint32_t CH22:1;\r
280                 vuint32_t CH21:1;\r
281                 vuint32_t CH20:1;\r
282                 vuint32_t CH19:1;\r
283                 vuint32_t CH18:1;\r
284                 vuint32_t CH17:1;\r
285                 vuint32_t CH16:1;\r
286                 vuint32_t CH15:1;\r
287                 vuint32_t CH14:1;\r
288                 vuint32_t CH13:1;\r
289                 vuint32_t CH12:1;\r
290                 vuint32_t CH11:1;\r
291                 vuint32_t CH10:1;\r
292                 vuint32_t CH9:1;\r
293                 vuint32_t CH8:1;\r
294                 vuint32_t CH7:1;\r
295                 vuint32_t CH6:1;\r
296                 vuint32_t CH5:1;\r
297                 vuint32_t CH4:1;\r
298                 vuint32_t CH3:1;\r
299                 vuint32_t CH2:1;\r
300                 vuint32_t CH1:1;\r
301                 vuint32_t CH0:1;\r
302             } B;\r
303         } NCMR[3];                     /* NORMAL CONVERSION MASK REGISTER was [6] */\r
304 \r
305         int32_t ADC_reserved5[1];      /* (0x0B0 - 0x0B3)/4 = 0x01 */\r
306 \r
307         union {\r
308             vuint32_t R;\r
309             struct {\r
310                 vuint32_t CH31:1;\r
311                 vuint32_t CH30:1;\r
312                 vuint32_t CH29:1;\r
313                 vuint32_t CH28:1;\r
314                 vuint32_t CH27:1;\r
315                 vuint32_t CH26:1;\r
316                 vuint32_t CH25:1;\r
317                 vuint32_t CH24:1;\r
318                 vuint32_t CH23:1;\r
319                 vuint32_t CH22:1;\r
320                 vuint32_t CH21:1;\r
321                 vuint32_t CH20:1;\r
322                 vuint32_t CH19:1;\r
323                 vuint32_t CH18:1;\r
324                 vuint32_t CH17:1;\r
325                 vuint32_t CH16:1;\r
326                 vuint32_t CH15:1;\r
327                 vuint32_t CH14:1;\r
328                 vuint32_t CH13:1;\r
329                 vuint32_t CH12:1;\r
330                 vuint32_t CH11:1;\r
331                 vuint32_t CH10:1;\r
332                 vuint32_t CH9:1;\r
333                 vuint32_t CH8:1;\r
334                 vuint32_t CH7:1;\r
335                 vuint32_t CH6:1;\r
336                 vuint32_t CH5:1;\r
337                 vuint32_t CH4:1;\r
338                 vuint32_t CH3:1;\r
339                 vuint32_t CH2:1;\r
340                 vuint32_t CH1:1;\r
341                 vuint32_t CH0:1;\r
342             } B;\r
343         } JCMR[3];                     /* Injected CONVERSION MASK REGISTER */\r
344 \r
345         int32_t ADC_reserved6[1];      /* (0x0C0 - 0x0C3)/4 = 0x01 */\r
346 \r
347         union {\r
348             vuint32_t R;\r
349             struct {\r
350                   vuint32_t:24;\r
351                 vuint32_t DSD:8;\r
352             } B;\r
353         } DSDR;                        /* DECODE SIGNALS DELAY REGISTER was DSD */\r
354 \r
355         union {\r
356             vuint32_t R;\r
357             struct {\r
358                   vuint32_t:24;\r
359                 vuint32_t PDED:8;\r
360             } B;\r
361         } PDEDR;                       /* POWER DOWN DELAY REGISTER was PDD */\r
362 \r
363         int32_t ADC_reserved7[13];     /* (0x0CC - 0xFF)/4 = 0x0D */\r
364 \r
365         union {\r
366             vuint32_t R;\r
367             struct {\r
368                   vuint32_t:12;\r
369                 vuint32_t VALID:1;\r
370                 vuint32_t OVERW:1;\r
371                 vuint32_t RESULT:2;\r
372 #ifdef CFG_MPC5606B\r
373                 vuint32_t:4;\r
374                 vuint32_t CDATA:12;\r
375 #else\r
376                   vuint32_t:6;\r
377                 vuint32_t CDATA:10;\r
378 #endif\r
379             } B;\r
380         } CDR[96];                     /* Channel 0-95 Data REGISTER - 0-31, 48-63, 72-95 not supported */\r
381 \r
382 \r
383     };                                 /* end of ADC_tag */\r