source: rtems/c/src/lib/libbsp/arm/vegaplus/include/registers.h @ 4564566

4.104.114.84.95
Last change on this file since 4564566 was 4564566, checked in by Joel Sherrill <joel.sherrill@…>, on 09/13/00 at 13:45:05

2000-09-13 Emmanuel Raguet <raguet@…>

  • vegaplus BSP submitted by Emmanuel Raguet <raguet@…> and Eric Valette <valette@…>.
  • vegaplus/bsp_specs, configure.in, console/Makefile.am, include/Makefile.am, include/bsp.h, include/registers.h, irq/Makefile.am, irq/bsp_irq_asm.S, irq/bsp_irq_init.c, irq/irq.c, irq/irq.h, start/Makefile.am, start/start.S, startup/Makefile.am, startup/bspstart.c, startup/exit.c, startup/linkcmds, wrapup/Makefile.am: New files.
  • Property mode set to 100644
File size: 42.4 KB
Line 
1/*
2 *  VEGA PLUS registers declaration
3 *
4 * Copyright (c) 2000 Canon Research France SA.
5 * Emmanuel Raguet, mailto:raguet@crf.canon.fr
6 *
7 * The license and distribution terms for this file may be
8 * found in found in the file LICENSE in this distribution or at
9 * http://www.OARcorp.com/rtems/license.html.
10 *
11 */
12
13
14#ifndef  __LMREGS_H__
15#define __LMREGS_H__ 
16
17/*
18 * VARIABLE DECLARATION   
19 ******************************************************************************
20 */
21
22/* register area size                                                         */
23#define LM_REG_AREA_SIZ (0x4000/4)     
24
25/*** Register mapping : defined by indexes in an array                      ***/
26/*** NOTE : only 1 register every 4 byte address location (+ some holes)      */
27#ifndef __asm__
28extern volatile unsigned long *Regs;        /* Chip registers        */
29#endif
30
31
32
33/******************************************************************************
34 * RADIO CONTROLLER BLOCK                 0x0C00 - 0x0FFF                    *
35 ******************************************************************************
36 */
37
38#define RC_BASE         0xC00
39
40#define RCCNTL          ((RC_BASE+0x00)/4)
41#define RCIOCNTL0       ((RC_BASE+0x04)/4)
42#define RCIOCNTL1       ((RC_BASE+0x08)/4)
43#define SYNTCNTL0       ((RC_BASE+0x0C)/4)
44#define SYNTCNTL1       ((RC_BASE+0x10)/4)
45#define SYNTCNTL2       ((RC_BASE+0x14)/4)
46#define SYNTFCNTL       ((RC_BASE+0x18)/4)
47#define SYNTPCNTL       ((RC_BASE+0x1C)/4)
48#define RSSICNTL        ((RC_BASE+0x20)/4)
49#define RSSIBASEL       ((RC_BASE+0x24)/4)
50#define RSSIBASEH       ((RC_BASE+0x28)/4)
51#define CURRSSI         ((RC_BASE+0x2C)/4)
52#define RFSCAN          ((RC_BASE+0x30)/4)
53#define CURRF           ((RC_BASE+0x34)/4)
54#define CURRSSIA        ((RC_BASE+0x38)/4)
55#define CURRSSIB        ((RC_BASE+0x3C)/4)
56#define CURRSSIAB       ((RC_BASE+0x40)/4)
57#define ADCDATAL        ((RC_BASE+0x44)/4)
58#define ADCDATAH        ((RC_BASE+0x48)/4)
59#define SLICECNTL       ((RC_BASE+0x4C)/4)
60#define RCIOCNTL2       ((RC_BASE+0x50)/4)
61#define RCIOCNTL3       ((RC_BASE+0x54)/4)
62#define ADCREF1L        ((RC_BASE+0x58)/4)
63#define ADCREF1H        ((RC_BASE+0x5C)/4)
64#define ADCREF2L        ((RC_BASE+0x60)/4)
65#define ADCREF2H        ((RC_BASE+0x64)/4)
66#define ADCCNTL1        ((RC_BASE+0x68)/4)
67#define ADCCNTL2        ((RC_BASE+0x6C)/4)
68#define TESTREG         ((RC_BASE+0x70)/4)
69#define SYNTLCNTL       ((RC_BASE+0x74)/4)
70#define SYNTCNTL3       ((RC_BASE+0x78)/4)
71#define ADCPERIOD       ((RC_BASE+0x7C)/4)
72#define SYNTIOCNTL      ((RC_BASE+0x80)/4)   /* added 30/08/99 */
73
74
75/* modified 30/08/99 by LHT */
76#define SHAPE0          ((RC_BASE+0x100)/4)  /* previously 0x80 */
77#define SHAPE1          ((RC_BASE+0x104)/4)
78#define SHAPE2          ((RC_BASE+0x108)/4)
79#define SHAPE3          ((RC_BASE+0x10C)/4)
80#define SHAPE4          ((RC_BASE+0x110)/4)
81#define SHAPE5          ((RC_BASE+0x114)/4)
82#define SHAPE6          ((RC_BASE+0x118)/4)
83#define SHAPE7          ((RC_BASE+0x11C)/4)
84#define SHAPE8          ((RC_BASE+0x120)/4)
85#define SHAPE9          ((RC_BASE+0x124)/4)
86#define SHAPE10         ((RC_BASE+0x128)/4)
87#define SHAPE11         ((RC_BASE+0x12C)/4)
88#define SHAPE12         ((RC_BASE+0x130)/4)
89#define SHAPERMID       ((RC_BASE+0x134)/4)
90#define SHAPERCNTL      ((RC_BASE+0x138)/4)
91#define CURSHAPE        ((RC_BASE+0x13C)/4)
92
93/** PLP BLOCK                               0x1400 - 0x17FF                   */
94
95#define PLP_BASE        0x1400
96#define DCNTL0          ((PLP_BASE+0x00)/4)
97#define DCNTL1          ((PLP_BASE+0x04)/4)
98#define SYNC0           ((PLP_BASE+0x08)/4)
99#define SYNC1           ((PLP_BASE+0x0C)/4)
100#define RXSTARTDL       ((PLP_BASE+0x10)/4)
101#define TXSTARTDL       ((PLP_BASE+0x14)/4)
102#define RXSTOPDL        ((PLP_BASE+0x1C)/4)
103#define RXSYNCT         ((PLP_BASE+0x20)/4)
104#define HALF_TXSLOT     ((PLP_BASE+0x24)/4)
105#define SCB_NUMBER      ((PLP_BASE+0x28)/4)
106#define SCB_OPPNUMBER   ((PLP_BASE+0x2C)/4)
107#define TXFRAME         ((PLP_BASE+0x40)/4)
108#define MSLTPTR         ((PLP_BASE+0x44)/4)
109#define CLOCK_CORR      ((PLP_BASE+0x48)/4)
110#define PRESYNC         ((PLP_BASE+0x4C)/4)
111#define PLPFINE         ((PLP_BASE+0x50)/4)
112#define PLPINDEL        ((PLP_BASE+0x54)/4)
113#define TXRXSKW         ((PLP_BASE+0x58)/4)
114#define PLPALIN         ((PLP_BASE+0x5C)/4)
115#define SUSPRFCNTL      ((PLP_BASE+0x60)/4)
116#define SUSPCNTL        ((PLP_BASE+0x64)/4)
117#define SUSPFC          ((PLP_BASE+0x68)/4)
118#define TSTCNTL         ((PLP_BASE+0x6C)/4)
119#define TSTDST          ((PLP_BASE+0x70)/4)
120#define TSTTXD          ((PLP_BASE+0x74)/4)
121#define TSTRXD          ((PLP_BASE+0x78)/4)
122#define PLPID           ((PLP_BASE+0x7C)/4)
123
124
125/** ENCRYPTION ENGINE                       0x1800 - 0x1BFF                   */
126
127#define EE_BASE          0x1800
128#define EECNTL          ((EE_BASE+0x00)/4)
129#define EEBASEL         ((EE_BASE+0x08)/4)
130#define EEBASEH         ((EE_BASE+0x0C)/4)
131#define MFL             ((EE_BASE+0x10)/4)
132#define MFM             ((EE_BASE+0x14)/4)
133#define MFH             ((EE_BASE+0x18)/4)
134
135/** TELEPHONE ANSWERING DEVICE              0x1C00 - 0x1FFF                   */
136
137#define TAD_BASE        0x1C00
138#define TADCNTL         ((TAD_BASE+0x00)/4)
139#define TADCODE1        ((TAD_BASE+0x04)/4)
140#define TADCODE2        ((TAD_BASE+0x08)/4)
141#define TADCODE3        ((TAD_BASE+0x0C)/4)
142#define TADSTAT         ((TAD_BASE+0x10)/4)
143#define TADADDRL        ((TAD_BASE+0x14)/4)
144#define TADADDRM        ((TAD_BASE+0x18)/4)
145#define TADADDRH        ((TAD_BASE+0x1C)/4)
146#define TADLEN          ((TAD_BASE+0x20)/4)
147#define TADAUXDAT1      ((TAD_BASE+0x24)/4)
148#define TADAUXDAT2      ((TAD_BASE+0x28)/4)
149#define TADSHMEML       ((TAD_BASE+0x2C)/4)
150#define TADSHMEMH       ((TAD_BASE+0x30)/4)
151#define TADCMD          ((TAD_BASE+0x34)/4)
152
153/** VOICE INTERFACE BLOCK                   0x2000 - 0x23FF                   */
154
155#define PAINT_BASE      0x2000
156#define PAINTCNTL       ((PAINT_BASE+0x00)/4)
157#define PAINTPLLCNTL    ((PAINT_BASE+0x08)/4)
158#define PAINTPLLSTAT    ((PAINT_BASE+0x0C)/4)
159#define VBAFECNTL       ((PAINT_BASE+0x10)/4)
160#define VBAFEAMP        ((PAINT_BASE+0x14)/4)
161#define VBAFEPREAMP     ((PAINT_BASE+0x18)/4)
162#define PCMAUX          ((PAINT_BASE+0x1C)/4)
163#define PCM0RX          ((PAINT_BASE+0x20)/4)
164#define PCM0TX          ((PAINT_BASE+0x24)/4)
165#define PCM1RX          ((PAINT_BASE+0x28)/4)
166#define PCM1TX          ((PAINT_BASE+0x2C)/4)
167#define ADPCM0RX        ((PAINT_BASE+0x30)/4)
168#define ADPCM0TX        ((PAINT_BASE+0x34)/4)
169#define ADPCM1RX        ((PAINT_BASE+0x38)/4)
170#define ADPCM1TX        ((PAINT_BASE+0x3C)/4)
171#define MPDCNTL         ((PAINT_BASE+0x40)/4)
172#define MPDREADY        ((PAINT_BASE+0x44)/4)
173#define MPDABS          ((PAINT_BASE+0x48)/4)
174#define MPDS1           ((PAINT_BASE+0x4C)/4)
175#define MPDS2           ((PAINT_BASE+0x50)/4)
176#define HPPCMCNTL       ((PAINT_BASE+0x60)/4)
177#define HPOUT           ((PAINT_BASE+0x64)/4)
178#define HPIN            ((PAINT_BASE+0x68)/4)
179#define PAINTBASE0      ((PAINT_BASE+0x70)/4)
180#define PAINTBASE1      ((PAINT_BASE+0x74)/4)
181#define G726AI0         ((PAINT_BASE+0x80)/4)
182#define G726AI1         ((PAINT_BASE+0x84)/4)
183#define G726GAIN0       ((PAINT_BASE+0x88)/4)
184#define G726GAIN1       ((PAINT_BASE+0x8C)/4)
185#define G726VOL         ((PAINT_BASE+0x90)/4)
186#define G726GST         ((PAINT_BASE+0x94)/4)
187#define G726CNTL0       ((PAINT_BASE+0x98)/4)
188#define G726CNTL1       ((PAINT_BASE+0x9C)/4)
189#define G726CHANNEL     ((PAINT_BASE+0xA0)/4)
190#define G726CHANENB     ((PAINT_BASE+0xA4)/4)
191
192/** GENERAL REGISTERS BLOCK                 0x2800 - 0x2CFF                   */
193
194#define MISC_BASE       0x2800
195#define CHIPID          ((MISC_BASE+0x00)/4)
196#define DEVICEID        ((MISC_BASE+0x04)/4)
197#define IOACNTL         ((MISC_BASE+0x10)/4)
198#define IOADATA         ((MISC_BASE+0x18)/4)
199#define IOBCNTL         ((MISC_BASE+0x20)/4)
200#define IOBDATA         ((MISC_BASE+0x28)/4)
201#define IOCCNTL1        ((MISC_BASE+0x30)/4)
202#define IOCCNTL2        ((MISC_BASE+0x34)/4)
203#define IOCDATA         ((MISC_BASE+0x38)/4)
204#define IODCNTL1        ((MISC_BASE+0x40)/4)
205#define IODCNTL2        ((MISC_BASE+0x44)/4)
206#define IODDATA         ((MISC_BASE+0x48)/4)
207#define IOECNTL1        ((MISC_BASE+0x50)/4)
208#define IOECNTL2        ((MISC_BASE+0x54)/4)
209#define IOEDATA         ((MISC_BASE+0x58)/4)
210#define IOFCNTL         ((MISC_BASE+0x60)/4)
211#define IOFDATA         ((MISC_BASE+0x68)/4)
212#define IOGCNTL         ((MISC_BASE+0x70)/4)
213#define IOGDATA         ((MISC_BASE+0x78)/4)
214#define IOHCNTL         ((MISC_BASE+0x80)/4)
215#define IOHDATA         ((MISC_BASE+0x88)/4)
216#define RINGCNTL        ((MISC_BASE+0x90)/4)
217#define RINGFREQ        ((MISC_BASE+0x94)/4)
218#define RSCNTL          ((MISC_BASE+0xA0)/4)
219/*#ifndef PRODUCT_VERSION*/     
220#define RSRXD           ((MISC_BASE+0xA4)/4)
221#define RSTXD           ((MISC_BASE+0xA8)/4)
222/*#endif*/
223#define PWMCNTL         ((MISC_BASE+0xB0)/4)
224#define PWMTIMER0       ((MISC_BASE+0xB4)/4)
225#define PWMTIMER1       ((MISC_BASE+0xB8)/4)
226#define LCDEECNTL1      ((MISC_BASE+0xC0)/4)
227#define LCDEECNTL2      ((MISC_BASE+0xC4)/4)
228#define LCDEEDAIN       ((MISC_BASE+0xC8)/4)
229#define LCDEEDAOUT      ((MISC_BASE+0xCC)/4)
230#define KEYROW          ((MISC_BASE+0xE0)/4)
231#define KEYCOL          ((MISC_BASE+0xE4)/4)
232#define KEYDEBOUNCE     ((MISC_BASE+0xE8)/4)
233#define DIAGCNTL1       ((MISC_BASE+0xEC)/4)
234#define DIAGCNTL2       ((MISC_BASE+0xF0)/4)
235#define CLKCNTL         ((MISC_BASE+0xF4)/4)
236#define OSCCOR          ((MISC_BASE+0xF8)/4)
237
238/* PRODUCT_VERSION */   
239/* Added 30/08/99 : New Control register for UART control */
240#define UART_BASE       0x3000
241#define RSRBR           ((UART_BASE+0x00)/4)
242#define RSTHR           ((UART_BASE+0x00)/4)
243#define RSIER           ((UART_BASE+0x04)/4)
244#define RSIIR           ((UART_BASE+0x08)/4)
245#define RSFCR           ((UART_BASE+0x08)/4)
246#define RSLCR           ((UART_BASE+0x0C)/4)
247#define RSLSR           ((UART_BASE+0x14)/4)
248#define RSDLL           ((UART_BASE+0x00)/4)
249#define RSDLH           ((UART_BASE+0x04)/4)
250#define RSCNT           ((UART_BASE+0x20)/4)
251/*PRODUCT_VERSION*/
252
253
254/** THUMB and INTERFACES BLOCK              0x3400 - 0x4FFF                   */
255
256#define TIM_BASE        0x3400
257#define WDCNTL          ((TIM_BASE+0x00)/4)
258#define TIMERLOAD0      ((TIM_BASE+0x80)/4)
259#define TIMER0          ((TIM_BASE+0x8C)/4)
260#define TIMERCNTL0      ((TIM_BASE+0x98)/4)
261#define TIMERLOAD1      ((TIM_BASE+0xA0)/4)
262#define TIMER1          ((TIM_BASE+0xAC)/4)
263#define TIMERCNTL1      ((TIM_BASE+0xB8)/4)
264
265#define INTC_BASE       0x3800
266#define INTMASK         ((INTC_BASE+0x20)/4)
267#define INTSTAT         ((INTC_BASE+0x24)/4)
268#define INTACK          ((INTC_BASE+0x24)/4)
269#define INTACK2         ((INTC_BASE+0x24))
270#define INTIS           ((INTC_BASE+0x28)/4)
271#define INTIS2          ((INTC_BASE+0x28))
272#define INTHPAI         ((INTC_BASE+0x00)/4)
273#define INTHPAI2        ((INTC_BASE+0x00))
274#define INTLEVEL        ((INTC_BASE+0x04)/4)
275#define INTEOI          ((INTC_BASE+0x08)/4)
276#define INTEOI2         ((INTC_BASE+0x08))
277#define INTMASKALL      ((INTC_BASE+0x0C)/4)
278#define INTTAB          ((INTC_BASE+0x10)/4)
279#define INTCNTL0        ((INTC_BASE+0x80)/4)
280#define INTCNTL1        ((INTC_BASE+0x84)/4)
281#define INTCNTL2        ((INTC_BASE+0x88)/4)
282#define INTCNTL3        ((INTC_BASE+0x8C)/4)
283#define INTCNTL4        ((INTC_BASE+0x90)/4)
284#define INTCNTL5        ((INTC_BASE+0x94)/4)
285#define INTCNTL6        ((INTC_BASE+0x98)/4)
286#define INTCNTL7        ((INTC_BASE+0x9C)/4)
287#define INTCNTL8        ((INTC_BASE+0xA0)/4)
288#define INTCNTL9        ((INTC_BASE+0xA4)/4)
289#define INTCNTL10       ((INTC_BASE+0xA8)/4)
290#define INTCNTL11       ((INTC_BASE+0xAC)/4)
291#define INTCNTL12       ((INTC_BASE+0xB0)/4)
292#define INTCNTL13       ((INTC_BASE+0xB4)/4)
293#define INTCNTL14       ((INTC_BASE+0xB8)/4)
294#define INTCNTL15       ((INTC_BASE+0xBC)/4)
295#define INTGCNTL        ((INTC_BASE+0x7C)/4)
296
297/* these "define" are used for the asm code of int managment */
298#define INTPHAI3  0xF3800
299#define INTSTAT3  0xF3824
300#define INTIS3    0xF3828
301#define INTACK3   0xF3824
302#define INTEOI3   0xF3808
303
304#define TI_BASE         0x3C00
305#define CSCNTL0_0       ((TI_BASE+0x00)/4)
306#define CSCNTL0_1       ((TI_BASE+0x04)/4)
307#define CSCNTL0_2       ((TI_BASE+0x08)/4)
308#define CSCNTL0_3       ((TI_BASE+0x0C)/4)
309#define CSCNTL0_4       ((TI_BASE+0x10)/4)
310#define CSCNTL0_5       ((TI_BASE+0x14)/4)
311#define CSCNTL0_6       ((TI_BASE+0x18)/4)
312#define CSCNTL1_0       ((TI_BASE+0x20)/4)
313#define CSCNTL1_1       ((TI_BASE+0x24)/4)
314#define CSCNTL1_2       ((TI_BASE+0x28)/4)
315#define CSCNTL1_3       ((TI_BASE+0x2C)/4)
316#define CSCNTL1_4       ((TI_BASE+0x30)/4)
317#define CSCNTL1_5       ((TI_BASE+0x34)/4)
318#define CSCNTL1_6       ((TI_BASE+0x38)/4)
319#define CSGCNTL         ((TI_BASE+0x40)/4)
320#define MUXADCNTL       ((TI_BASE+0x48)/4)
321#define PORTCNTL        ((TI_BASE+0x60)/4)
322#define DCC             ((TI_BASE+0x78)/4)
323#define BRK0            ((TI_BASE+0x100)/4)
324#define BRK1            ((TI_BASE+0x104)/4)
325#define BRK2            ((TI_BASE+0x108)/4)
326#define BRK3            ((TI_BASE+0x10C)/4)
327#define BRK4            ((TI_BASE+0x110)/4)
328#define BRK5            ((TI_BASE+0x114)/4)
329#define BRK6            ((TI_BASE+0x118)/4)
330#define BRK7            ((TI_BASE+0x11C)/4)
331#define BRKMSK          ((TI_BASE+0x140)/4)
332#define BRKSTAT         ((TI_BASE+0x144)/4)
333#define SLEEPTIMER      ((TI_BASE+0x204)/4)
334#define SLEEPCNTL       ((TI_BASE+0x208)/4)
335
336
337
338/******************************************************************************
339 * BIT MASKS for Chip registers
340 ******************************************************************************
341 */
342
343/** TELEPHONE ANSWERING DEVICE BLOCK (TAD)                                    */
344
345/* TADCNTL register                                                           */
346#define IRQCNTL         0x01
347#define CE_CNTL         0x02
348#define MSKTAD          0x04
349#define TAD_PAD_ENB     0x40
350#define TADENB          0x80
351
352/* TADSTAT register                                                           */
353#define RBN             0x01
354#define TRANSFER        0x02
355#define ACTIVE          0x04
356
357/* TADCMD register                                                            */
358#define MSK_TADCMD      0x0F                /* Mask on TADCMD                 */
359#define CONTINUE        0x10
360
361
362
363/** RADIO CONTROLER BLOCK (RC3)                                               */
364
365/* SLICECNTL register                                                         */
366#define MSK_SLICEDL     0x07                /* Mask on SLICEDL field          */
367#define MSK_SCNTL       0x18                /* Mask on SCNTL field            */
368#define SELOCK          0x20
369#define MSK_MUXSLICE    0xC0
370
371/* RCIOCNTL0 register                                                         */
372#define D2SBYPASS       0x01
373#define DRBYPASS        0x02
374#define RXINV           0x04
375#define SELANT          0x10
376#define ANT             0x20
377#define LDINV0          0x40
378#define LDINV1          0x80
379
380/* RCIOCNTL1 register                                                         */
381#define MSK_GPO         0x0F                /* Mask on GPO field              */
382#define P00ENB          0x10
383#define ABORT           0x20
384#define TXIO            0x40
385#define TXINV           0x80
386
387/* RCIOCNTL2 register                                                         */
388#define SELRFCLK        0x01
389#define SELRXPWR        0x02
390#define TXPWRINV        0x04
391#define RXPWRINV        0x08
392#define SYNTHPWR0INV    0x10
393#define SYNTHPWR1INV    0x20
394#define TXDRONINV       0x40
395#define SELTXDRON       0x80
396
397/* RCIOCNTL3 register                                                         */
398#define D2SMODE         0x01
399#define DRCNTL          0x02
400#define MSK_SELGPO      0x0C                /* Mask on SELGPO field           */
401#define MSK_SUSPANT     0x30                /* Mask on SUSO/ANT field         */
402
403/* SHAPERCNTL register                                                        */
404#define INV             0x01
405#define MID             0x02
406#define PWRDWN          0x04
407#define DACENB          0x80
408
409/* SYNTFCNTL register                                                         */
410#define SYNT_FREQ       0x80
411
412/* SYNTCNTL0 register                                                         */
413#define PWRFREQ         0x01
414#define CLKPHASE        0x08
415#define LETYPE          0x10
416#define RPIPEON         0x20
417#define PWRSGN          0x40
418#define OUTLOCK         0x80
419
420/* SYNTCNTL1 register                                                         */
421#define SLE0            0x01
422#define SLE1            0x02
423#define SLE2            0x04
424#define LEMODE          0x08
425#define LESEL           0x10
426#define SCLK            0x20
427#define SDATA           0x40
428#define HPMODE_SYNT     0x80
429
430/* SYNTCNTL2 register                                                         */
431#define START_DONE      0x80
432#define MSK_N           0x03                /* Mask on N field                */
433
434/* SYNTCNTL3 register                                                         */
435#define RXPWRDNSEN      0x01
436#define RXPWRUNSEN      0x02
437#define TXPWRDNSEN      0x04
438#define TXPWRUNSEN      0x08
439#define SEQCNTL         0x10
440#define ALIGN           0x20
441#define PLLWORD         0x40
442#define PRESEQ          0x80
443
444/* RFSCAN register                                                            */
445#define MSK_RF          0x0F                /* Mask on RF field               */
446#define RFMAX           0x80
447
448/* RSSIRANGE register                                                         */
449#define MSK_VREFP       0x03                /* Mask on VREFP field            */
450#define MSK_VREFN       0x0C                /* Mask on VREFN field            */
451
452/* RSSICNTL register                                                          */
453#define MSK_MODE_RSSI   0x03                /* Mask on MODE field             */
454#define MARKFF          0x04
455#define TXMARK          0x08
456#define ALL_RSSI        0x10
457#define RSSIACT         0x20
458#define RSSIDIS         0x40
459#define RSSIENB         0x80
460
461/* RCCNTL register                                                            */
462#define RCCNTL_ENABLE   0x80
463
464
465/* ADCCNTL1 register                                                          */
466#define ADCSTART        0x80
467#define SCAN            0x40
468#define ADCENB          0x80
469#define MSK_ADCSEL      0x07
470
471/* ADCCNTL2 register                                                          */
472#define ADCOVER1        0x01
473#define ADCOVER2        0x02
474#define ADCDWN1         0x04
475#define ADCDWN2         0x08
476
477
478
479/** PLP BLOCK                                                                 */
480
481/* DCNTL0 register                                                            */
482#define TMUXINT         0x01
483#define MUTEIP          0x02
484#define Q1Q2_PLP        0x04
485#define TRANSP          0x08
486#define CRYPTALL        0x10
487#define TXSENSE         0x20
488#define ZACT            0x40
489#define PLPENB          0x80
490
491/* DCNTL1 register                                                            */
492#define ONECT           0x10
493#define WOMODE          0x40
494#define WOENB           0x80
495#define MSK_RPIPE       0x07                /* mask on RPIPE field            */
496
497/* RXSYNCT register                                                           */
498#define PRSIZE          0x04
499#define PREEN           0x08
500#define PRETYPE         0x40
501#define PROLONG         0x80
502
503#define MSK_SYCNT       0x30                /* mask on SYCNT field            */
504#define MSK_PTHR        0x03                /* mask on PTHR field             */
505
506/* CLOCK_CORR register                                                        */
507#define SIGN            0x80
508
509/* PRESYNC register                                                           */
510#define PRESENB         0x80
511
512#define MSK_PRES        0x0F                /* mask on PRES field             */
513
514
515/* PLPALIN register                                                           */
516#define SYNM            0x08
517#define BITSLIP         0x10
518#define SLOTFAIL        0x20
519#define DFFAIL          0x40
520#define LONGDF          0x80
521#define MODE_PLPALIN    0x03                /* mask on PLP alignment mode     */
522
523/* SUSPCNTL register                                                          */
524#define SUSPENB         0x01
525
526/* TSTCNTL register                                                           */
527#define DISBSCR         0x01
528#define TX_TST          0x02
529#define DATADIR         0x04
530
531/* TSTDST register                                                            */
532#define RDY             0x80
533
534/** ENCRYPTION ENGINE                                                         */
535
536/* EECNTL register                                                            */
537/* Bit ENABLE already defined                                                 */
538#define EECNTL_ENABLE   0x80
539
540
541/** PAINT+ BLOCK                                                              */
542
543/* PAINTCNTL register                                                         */
544#define MUTEDIS0        0x0001
545#define MUTEDIS1        0x0002
546#define MEMLOOP0        0x0004
547#define MEMLOOP1        0x0008
548#define RATE0           0x0010
549#define RATE1           0x0020
550#define CHAN0ENB        0x0040
551#define CHAN1ENB        0x0080
552#define BG0ENABLE       0x0100
553#define BG1ENABLE       0x0200
554#define PADENABLE       0x2000
555#define FORCE13         0x4000
556#define PAINTENB        0x8000
557
558
559/* PAINTPLLCNTL register                                                      */
560#define MSK_MC          0x001F              /* Mask on MC field               */
561#define MCSIGN          0x0020
562#define MANUAL          0x0080
563#define RANG0           0x0100
564#define RANG1           0x0200
565#define RANG2           0x0400
566#define MSK_RANG        0x0700              /* Mask on RANG field             */
567#define FREEZD          0x1000
568#define FREEZP          0x2000
569#define PPFP            0x8000
570
571/* PAINTPLLSTAT register                                                      */
572#define MSK_DPHI        0x01FF              /* Mask on DPHI field             */
573#define LOCKD           0x1000
574#define LOCKP           0x2000
575#define NOSIG           0x8000
576
577/* HPPCMCNTL register                                                         */
578#define LEN0            0x0001
579#define LEN1            0x0002
580#define LEN2            0x0004
581#define MSK_LEN         0x0007              /* Mask on LEN field              */
582#define FREQ0           0x0010
583#define FREQ1           0x0020
584#define MSK_PCMFREQ     0x0030              /* Mask on FREQ field             */
585#define FSTYP0          0x0100
586#define FSTYP1          0x0200
587#define MSK_FSTYP       0x0300              /* Mask on FSTYP field            */
588#define IOD0            0x0400
589#define IOD1            0x0800
590#define MSK_IOD         0x0C00              /* Mask on FSTYP field            */
591#define IOCK            0x1000
592#define MASTER          0x4000
593#define PCMENB          0x8000
594
595/* VBAFECNTL register                                                         */
596#define MSK_VOLMIC      0x0007              /* Mask on VOLMIV field           */
597#define MICDIF          0x0010
598#define ENBMICREF       0x0080
599#define MODE0           0x0100
600#define MODE1           0x0200
601#define MODE2           0x0400
602#define LOOP0           0x1000
603#define LOOP1           0x2000
604#define FLOAT           0x4000
605#define VBAFENB         0x8000
606
607/* VBAFEAMP register                                                          */
608#define MSK_VOL1OUT     0x000F              /* Mask on VOL1OUT field          */
609#define ENBCH1          0x0010
610#define MSK_VOL2OUT     0x0F00              /* Mask on VOL2OUT field          */
611#define ENBCH2          0x1000
612
613/* VBAFEPREAMP register                                                       */
614#define MSK_VOLIN       0x000F              /* Mask on VOLIN field            */
615#define MSK_ATT         0x0070              /* Mask on ATT field              */
616#define PRCNF0          0x0100
617#define PRCNF1          0x0200
618#define PRCNF2          0x0400
619
620/* MPDCNTL register                                                           */
621#define MPD_FREQ        0x0001
622#define MPD_ENB         0x0080
623
624/* MPDREADY register                                                          */
625#define MPD_RDY         0x0001
626
627/* G726CNTL0 register                                                         */
628#define RXTONE0         0x0001
629#define RXTONE1         0x0002
630#define TXTONE0         0x0004
631#define TXTONE1         0x0008
632#define SCALE0          0x0010
633#define SCALE1          0x0020
634#define MSK_SCALE       0x0030              /* Mask on SCALE field            */
635
636/* G726CNTL1 register                                                         */
637#define LAW             0x0001
638#define UPCM            0x0002
639#define G726_TXMUTE     0x0004
640#define G726_RXMUTE     0x0008
641#define SIDETONE        0x0010
642#define SCA             0x0020
643#define G726ENB         0x0080
644
645/* G726CHANNEL register                                                       */
646#define CHAN            0x0002
647
648/* G726CHANENB register                                                       */
649#define G726ENB0        0x0001
650#define G726ENB1        0x0003
651
652
653/** GENERAL REGISTERS BLOCK                                                   */
654
655/* RINGCNTL register                                                          */
656/* Bit ENABLE already defined                                                 */
657#define RINGCNTL_ENABLE   0x80
658#define FULL_BRIDGE     0x40
659#define MSK_DELAY       0x30
660#define RING_PADENB     0x08
661#define MSK_LEVEL       0x07                /* mask on LEVEL field            */
662
663/* RSIER register   (UART Interrupt enable register definition)               */
664#define         LINE_STATUS_ENABLE      0x04
665#define         TX_INT_ENABLE                   0x02
666#define         RX_INT_ENABLE                   0x01
667
668/* RSIIR register   (UART Interrupt identification register definition)       */
669#define         FIFO_ENABLE_MASK                0xC0
670#define         INT_ID_MASK                             0x0E
671#define         PENDING_INT_FLAG                0x01
672#define         LINE_STATUS_INT         0x06 /* values for interrupt identification  */
673#define         RX_INT                                  0x04
674#define         FIFO_TIMEOUT_INT                0x0C
675#define         TX_EMPTY_INT                    0x02
676
677/* RSFCR register   (UART Tx/Rx FIFO control register definition)             */
678#define         RX_LEVEL_MASK                   0xC0
679#define         CLEAR_TX_FIFO                   0x04
680#define         CLEAR_RX_FIFO                   0x02
681#define         FIFO_ENABLE                             0x01
682#define         _1_BYTE_RECEIVED                0x00 /* RX level values (Interrupt trigger ) */
683#define         _4_BYTE_RECEIVED                0x40
684#define         _8_BYTE_RECEIVED                0x80
685#define         _14_BYTE_RECEIVED               0xC0
686
687/* RSLCR register   (UART line control register definition)                   */
688#define         DIV_ENABLE                              0x80
689#define         TX_BREAK_ENABLE         0x40
690#define         PARITY_ENABLE                   0x08
691#define         PARITY_MASK                             0x30
692#define         _1_STOP_BIT                             0x00
693#define         _2_STOP_BIT                             0x04
694#define         WORD_LENGTH_MASK                0x03
695#define         ODD_PARITY                              0x00    /* possible value for the parity */
696#define         EVEN_PARITY                             0x10
697#define         PARITY_EQUAL1                   0x20
698#define         PARITY_EQUAL0                   0x30
699#define         _5_BITS_CHAR                    0x00    /* possible value for the word length  */
700#define         _6_BITS_CHAR                    0x01
701#define         _7_BITS_CHAR                    0x02
702#define         _8_BITS_CHAR                    0x03
703
704/* RSLSR Register   (UART line status register definition)                    */
705#define         RX_FIFO_ERROR                   0x80
706#define         TXEMPTY                                 0x40
707#define         HOLD_EMPTY                              0x20
708#define         BREAK                                           0x10
709#define         FRAME_ERROR                             0x08
710#define         PARITY_ERROR                    0x04
711#define         OVERRUN_ERROR                   0x02
712#define         RX_READY                                        0x01
713
714/* RSDLL Register   (UART clock divider low register definition)              */
715/* note RSDLH is always 0x00 */
716#define RS_4800                                         0x18
717#define RS_9600                                         0x0C
718#define RS_19200                                        0x06
719#define RS_38400                                                0x03
720#define RS_57600                                                0x02
721#define RS_115200                                       0x01
722
723/* RSCNT Register   (UART control register definition)                        */
724#define         UART_PAD_ENABLE         0x02
725
726/* PWMCNTL register                                                           */
727#define PWMENB          0x80
728#define MSK_PWMFREQ     0x03                /* mask on PWMFREQ field          */
729#define PWM1_PADENB     0x40
730#define PWM0_PADENB     0x20
731#define MIRROR          0x10
732
733
734/* LCDEECNTL1 register                                                        */
735/* Bit ENABLE already defined                                                 */
736#define LCDEE_ENABLE   0x80
737#define DA1_DA0         0x40
738#define MSK_LCDEEFREQ   0x03                /* mask on LCDEEFREQ field        */
739#define LCDEE_PADENB    0x40
740
741/* LCDEECNTL2 register                                                        */
742#define SENDACK         0x01
743#define RXACK           0x02
744#define STOP            0x08
745#define START           0x10
746#define RX_LCDEE        0x20
747#define TX_LCDEE        0x40
748
749/* DIAGCNTL1 register                                                         */
750#define DIAGL_PADENB    0x01
751#define DIAGH_PADENB    0x02
752
753/* DIAGCNTL2 register                                                         */
754#define DLSEL           0x0F                /* mask on DLSEL field            */
755#define DHSEL           0xF0                /* mask on DHSEL field            */
756
757/* KEYROW register                                                            */
758#define MSK_ROW         0x1F                /* mask on ROW field              */
759#define KEYRELEASE      0x80
760
761/* CLKCNTL register                                                           */
762#define MOSCDISABLE     0x02
763#define OVERSAM         0x04
764#define SQUARER         0x08
765#define SWRESET         0x80
766#define SWFLAG          0x80
767#define TSTN_DISABLE    0x40
768#define MODE55          0x10
769
770/** THUMB and INTERFACES BLOCK                                                */
771
772/* CSCNTL0[6:0] registers                                                     */
773#define MSK_SETUP       0x0007
774#define SETUP_RD        0x0040
775#define SETUP_HZ        0x0080
776#define MSK_WIDTH       0x1F00
777#define MSK_HZWS        0xE000
778
779/* CSCNTL1[6:0] registers                                                     */
780#define MSK_CSMODE      0x0003
781#define MSK_HOLD        0x0070
782#define HOLD_RD         0x0080
783#define MSK_WIDTH_WR    0x0700
784#define USE_WIDTH_WR    0x4000
785#define WR_SHIFED       0x8000
786
787#define CSMODE_8        0x0000
788#define CSMODE_16_WHWL  0x0002
789#define CSMODE_16_BHBL  0x0003
790
791
792/* MUXADCNTL register                                                         */
793#define MSK_AHOLD       0x0007
794#define MSK_ALEWIDTH    0x0070
795
796/* PORTCNTL register                                                          */
797#define CS0_             0x0001
798#define CS1_             0x0002
799#define CS2_             0x0004
800#define CS3_             0x0008
801#define CS4_             0x0010
802#define CS5_             0x0020
803#define CS6_             0x0040
804#define DATA_H          0x0080
805#define INT0            0x0100
806#define INT1            0x0200
807#define INT2            0x0400
808#define INT3            0x0800
809#define MSK_ADDRESS     0x7000
810#define EXTMEM          0x8000
811
812#define ADDRESS_128K    0x0000
813#define ADDRESS_256K    0x1000
814#define ADDRESS_512K    0x2000
815#define ADDRESS_1M      0x3000
816#define ADDRESS_2M      0x4000
817
818
819/* CSGCNTL register                                                           */
820#define CSSWITCH        0x0040
821
822
823/* SLEEPCNTL register                                                         */
824#define EXPIRED         0x01
825#define SLEEP_ENABLE    0x80
826
827/* WDCNTL register                                                            */
828#define WDSTROKE        0x80
829#define WDFLAG          0x80                /* same bit                       */
830
831
832/* DCC register                                                               */
833/* bit ENABLE=0x80 already defined */
834#define DCC_ENABLE   0x80
835
836
837/* TIMERCNTL[0:1] register                                                    */
838/* bit ENABLE=0x80 already defined */
839#define TIMER_ENABLE   0x80
840#define RELOAD          0x0040
841#define MSK_FREQ        0x0003              /* mask on FREQ field             */
842#define TIMER_13824kHz  0x0003
843#define TIMER_864kHz    0x0002
844#define TIMER_216kHz    0x0001
845#define TIMER_27kHz     0x0000
846
847
848/* INTMASKALL register                                                        */
849#define MASKIRQ         0x80
850#define MASKFIQ         0x40
851
852/* INTEOI register                                                            */
853#define EOI             0x80
854
855/* INTMASK register                                                           */
856/* INTSTAT register                                                           */
857/* INTIS register                                                             */
858
859#define PLP             0x0001
860#define PCM             0x0002
861#define SRX             0x0004
862#define STX             0x0008
863#define TMR0            0x0010
864#define TMR1            0x0020
865#define LCDEE           0x0100
866#define KPAD            0x0200
867#define TAD             0x0400
868#define ADC             0x0800
869#define EXT0            0x1000
870#define EXT1            0x2000
871#define EXT2            0x4000
872#define EXT3            0x8000
873
874/* INTCNTL[0:15] register                                                     */
875#define MSK_PRIO        0x0007
876#define RE              0x0008
877#define RISING          0x0040
878#define EDGE            0x0080
879
880/* INTHPAI register                                                           */
881#define AUTOACK         0x0080
882
883
884/******************************************************************************
885 * Memory Mapping definition
886 ******************************************************************************
887 */
888
889#define CSN0_BASE_ADR   0x00200000          /* Base Address of CSN0           */
890#define CSN1_BASE_ADR   0x00400000          /* Base Address of CSN1           */
891#define CSN2_BASE_ADR   0x00600000          /* Base Address of CSN2           */
892#define CSN3_BASE_ADR   0x00800000          /* Base Address of CSN3           */
893#define CSN4_BASE_ADR   0x00A00000          /* Base Address of CSN4           */
894#define CSN5_BASE_ADR   0x00C00000          /* Base Address of CSN5           */
895#define CSN6_BASE_ADR   0x00E00000          /* Base Address of CSN6           */
896
897#define IRAM_BASE_ADR   0x00000000          /* Base Addr. of int. Data Memory */
898#define SHRAM_BASE_ADR  0x00080000          /* Base Address of Share Memory   */
899#define REGS_BASE_ADR   0x000F0000          /* Base Address of registers      */
900#define RADRAM_BASE_ADR 0x000F0000          /* Base Address of registers      */
901
902
903/******************************************************************************
904 * Slot Control bloc
905 ******************************************************************************
906 */
907
908#ifndef __asm__
909/*** Slot Control Block structure                                           ***/
910typedef volatile struct                     /* normal Slot Control Block      */
911{
912    unsigned char RAD0;
913    unsigned char RAD1;
914    unsigned char MODE;
915    unsigned char CNTL0;
916    unsigned char CNTL1;
917    unsigned char CNTL2;
918    unsigned char STAT0;                       
919    unsigned char STAT1;
920    unsigned char STAT2;
921    unsigned char CRYPT;
922    unsigned char MUTE;
923    unsigned char INT_;
924    unsigned char AMSG;
925    unsigned char AHDR;
926    unsigned short APTR;
927    unsigned short IPTR;
928    unsigned short CfPTR;
929    unsigned short OtPTR;
930    unsigned char OFFCNTL;
931    unsigned char WINCNTL;
932} LM_SCB;
933
934typedef LM_SCB *LM_SCB_P;                   /* pointer to Slot Control Block  */
935#endif
936
937/*** BIT MASKS for Slot Control Block parameters                            ***/
938
939/* RAD0 parameter                                                             */
940#define RC_RSSIENB  0x80                    /* RSSI measurement control       */
941#define RC_ANTENNA2 0x08                    /* antenna[2] selection           */
942#define RC_ANTENNA1 0x04                    /* antenna[1] selection           */
943#define RC_ANTENNA0 0x02                    /* antenna[0] selection           */
944#define RC_SYNOUT   0x01                    /* synthesiser selection          */
945
946#define RC_ANTSEL   0x0E                    /* mask on RC antenna selection   */
947
948/* RAD1 parameter                                                             */
949#define RC_RFC      0xF0                    /* mask on RC RF carrier number   */
950#define RC_RFSCAN   0x08                    /* RF carrier source selection    */
951#define RC_SYNLATCH 0x04                    /* synthesizer #n Latch Enabled   */
952#define RC_SYN_TX   0x03                    /* slot is TX (synthesizer data)  */
953#define RC_SYN_RX   0x02                    /* slot is RX (synthesizer data)  */
954
955#define RC_SYNSLOT  0x03                    /* mask on Synthesizer slot type  */
956
957/* MODE parameter                                                             */
958#define AUTOB1      0x80
959#define AUTOB0      0x40
960#define P00         0x20
961
962#define MSK_MODE    0x1F                    /* mask on SCB MODE field         */
963
964/* CNTL0 parameter                                                            */
965#define LU7CH       0x80
966
967#define MSK_BOFF    0x7F                    /* mask on BOFF field             */
968
969/* CNTL1 parameter                                                            */
970#define TX          0x80
971#define RESYNC      0x40
972#define Q1          0x40                    /* Q1/RESYNC mapped on same bit   */
973#define INHBST      0x20
974#define Q2          0x20                    /* Q2/INHBST mapped on same bit   */
975#define CTPACK      0x10
976
977#define MSK_CTFLEN  0x0F                    /* mask on CTFLEN field           */
978
979/* CNTL2 parameter                                                            */
980#define SLTEN       0x80
981#define SINV        0x40
982#define ALL         0x20
983#define CO_CL       0x20                   /* CO_CL/ALL mapped on same bit    */
984#define INTEN       0x10
985#define SCOR1       0x08
986#define SCOR0       0x04
987#define BINTE       0x02
988#define BINTU       0x01
989
990#define MSK_SCOR    0x0C                    /* mask on SCOR field             */
991
992/* STAT0 parameter                                                            */
993#define ZFAIL0      0x80
994#define ZFAIL1      0x40
995#define ZFAIL2      0x20
996#define ZFAIL3      0x10
997#define SCRD1       0x08
998#define SCRD0       0x04
999#define PRED1       0x02
1000#define PRED0       0x01
1001
1002#define MSK_ZFAIL   0xF0                    /* mask on ZFAIL field            */
1003#define MSK_SCRD    0x0C                    /* mask on SCRD field             */
1004#define MSK_PRED    0x03                    /* mask on PRED field             */
1005
1006/* STAT1 parameter                                                            */
1007#define BCRC7       0x80
1008#define BCRC6       0x40
1009#define BCRC5       0x20
1010#define BCRC4       0x10
1011#define BCRC3       0x08
1012#define BCRC2       0x04
1013#define BCRC1       0x02
1014#define BCRC0       0x01
1015
1016/* STAT2 parameter                                                            */
1017#define TMUX        0x80
1018#define RADIO       0x40
1019#define RFPI        0x20
1020#define XCRC        0x10
1021#define ACRC        0x08
1022#define SYNC        0x04
1023#define BCRC        0x02
1024#define BCRC8       0x01
1025
1026/* CRYPT parameter                                                            */
1027#define LONG        0x80
1028#define INIP        0x40
1029#define ACRYPT      0x20
1030#define BCRYPT      0x10
1031
1032#define MSK_EETBL   0x0F                    /* mask on EETBL field            */
1033
1034/* MUTE  parameter                                                            */
1035#define NOTI        0x80
1036#define XFAIL       0x40
1037#define AFAIL       0x20
1038#define NOSYNC      0x10                    /*NOSYNC/TXMUTE mapped on same bit*/
1039#define TXMUTE      0x10
1040
1041#define MSK_CHAN    0x0F                    /* mask on CHAN field             */
1042
1043/* INT   parameter                                                            */
1044/* Bit RADIO is already defined                                               */
1045#define Q1Q2        0x80
1046#define RFP_I       0x20
1047#define X_CRC       0x10
1048#define R_CRC       0x08
1049#define SYNCFAIL    0x04
1050#define ASYNCOK     0x02
1051#define ZFIELD      0x01
1052
1053/* AMSG  parameter                                                            */
1054#define PP_FP       0x80   
1055#define CT          0x40
1056#define NT          0x20                    /* NT/CTSEND mapped on same bit   */
1057#define CTSEND      0x20
1058#define MTFIRST     0x10                    /* MTFIRST/QT mapped on same bit  */
1059#define QT          0x10
1060#define MT          0x08
1061#define MTWAIT      0x04
1062#define PT          0x02
1063#define ESCAPE      0x01
1064
1065/* WINCNTL  parameter                                                         */
1066#define LM_WIN_NONE 0x00                    /* no sync window                 */
1067#define LM_WIN_OPEN 0x3F                    /* wide open window size          */
1068#define MSK_WINSZ   0x3F
1069
1070
1071
1072
1073
1074/*
1075 * Some macros to mask the VEGA+ interrupt sources                           
1076 ******************************************************************************
1077 */
1078
1079#define LM_MaskPLP()           (LM_Regs[INTMASK] |= PLP)
1080#define LM_MaskPCM()           (LM_Regs[INTMASK] |= PCM)
1081
1082/* Vega+ product version */
1083#define LM_MaskUART()          (LM_Regs[INTMASK] |= SRX)
1084#define LM_MaskSRX()           (LM_Regs[RSIER]   &= ~RX_INT_ENABLE)
1085#define LM_MaskSTX()           (LM_Regs[RSIER]   &= ~TX_INT_ENABLE)
1086#define LM_MaskUARTStatus()    (LM_Regs[RSIER]   &= ~LINE_STATUS_ENABLE)
1087
1088
1089#define LM_MaskTMR0()          (LM_Regs[INTMASK] |= TMR0)
1090#define LM_MaskTMR1()          (LM_Regs[INTMASK] |= TMR1)
1091#define LM_MaskLCDEE()         (LM_Regs[INTMASK] |= LCDEE)
1092#define LM_MaskKPAD()          (LM_Regs[INTMASK] |= KPAD)
1093#define LM_MaskTAD()           (LM_Regs[INTMASK] |= TAD)
1094#define LM_MaskADC()           (LM_Regs[INTMASK] |= ADC)
1095#define LM_MaskEXT0()          (LM_Regs[INTMASK] |= EXT0)
1096#define LM_MaskEXT1()          (LM_Regs[INTMASK] |= EXT1)
1097#define LM_MaskEXT2()          (LM_Regs[INTMASK] |= EXT2)
1098#define LM_MaskEXT3()          (LM_Regs[INTMASK] |= EXT3)
1099
1100/* Some macros to ummask the VEGA+ interrupt sources                          */
1101#define LM_UnMaskPLP()         (LM_Regs[INTMASK] &= ~PLP)
1102#define LM_UnMaskPCM()         (LM_Regs[INTMASK] &= ~PCM)
1103
1104/* Vega+ product version */
1105#define LM_UnMaskUART()        (LM_Regs[INTMASK] &= ~SRX)
1106#define LM_UnMaskSRX()         (LM_Regs[RSIER]   |= RX_INT_ENABLE)
1107#define LM_UnMaskSTX()         (LM_Regs[RSIER]   |= TX_INT_ENABLE)
1108#define LM_UnMaskUARTStatus()  (LM_Regs[RSIER]   |= LINE_STATUS_ENABLE)
1109
1110#define LM_UnMaskTMR0()        (LM_Regs[INTMASK] &= ~TMR0)
1111#define LM_UnMaskTMR1()        (LM_Regs[INTMASK] &= ~TMR1)
1112#define LM_UnMaskLCDEE()       (LM_Regs[INTMASK] &= ~LCDEE)
1113#define LM_UnMaskKPAD()        (LM_Regs[INTMASK] &= ~KPAD)
1114#define LM_UnMaskTAD()         (LM_Regs[INTMASK] &= ~TAD)
1115#define LM_UnMaskADC()         (LM_Regs[INTMASK] &= ~ADC)
1116#define LM_UnMaskEXT0()        (LM_Regs[INTMASK] &= ~EXT0)
1117#define LM_UnMaskEXT1()        (LM_Regs[INTMASK] &= ~EXT1)
1118#define LM_UnMaskEXT2()        (LM_Regs[INTMASK] &= ~EXT2)
1119#define LM_UnMaskEXT3()        (LM_Regs[INTMASK] &= ~EXT3)
1120
1121/* Some macros to Acknoledge the VEGA+ interrupt sources                      */
1122#define LM_AckPLP()            (LM_Regs[INTACK] |= PLP)
1123#define LM_AckPCM()            (LM_Regs[INTACK] |= PCM)
1124#define LM_AckTMR0()           (LM_Regs[INTACK] |= TMR0)
1125#define LM_AckTMR1()           (LM_Regs[INTACK] |= TMR1)
1126#define LM_AckEXT0()           (LM_Regs[INTACK] |= EXT0)
1127#define LM_AckEXT1()           (LM_Regs[INTACK] |= EXT1)
1128#define LM_AckEXT2()           (LM_Regs[INTACK] |= EXT2)
1129#define LM_AckEXT3()           (LM_Regs[INTACK] |= EXT3)
1130
1131/*#define INIT_LMREGS_MAPPING() { LM_Regs = (unsigned long*)REGS_BASE_ADR; }*/
1132
1133#endif /*__LMREGS_H__*/
Note: See TracBrowser for help on using the repository browser.