v2.4.8 -> v2.4.8.1
[opensuse:kernel.git] / include / asm-arm / arch-sa1100 / SA-1111.h
1 /*
2  * linux/include/asm/arch/SA-1111.h
3  *
4  * Copyright (C) 2000 John G Dorsey <john+@cs.cmu.edu>
5  *
6  * This file contains definitions for the SA-1111 Companion Chip.
7  * (Structure and naming borrowed from SA-1101.h, by Peter Danielsson.)
8  *
9  */
10
11 #ifndef _ASM_ARCH_SA1111
12 #define _ASM_ARCH_SA1111
13
14 #include <asm/arch/bitfield.h>
15
16 /*
17  * Macro that calculates real address for registers in the SA-1111
18  */
19
20 #define _SA1111( x )    ((x) + SA1111_BASE)
21
22 /*
23  * 26 bits of the SA-1110 address bus are available to the SA-1111.
24  * Use these when feeding target addresses to the DMA engines.
25  */
26
27 #define SA1111_ADDR_WIDTH       (26)
28 #define SA1111_ADDR_MASK        ((1<<SA1111_ADDR_WIDTH)-1)
29 #define SA1111_DMA_ADDR(x)      ((x)&SA1111_ADDR_MASK)
30
31 /*
32  * Don't ask the (SAC) DMA engines to move less than this amount.
33  */
34
35 #define SA1111_SAC_DMA_MIN_XFER (0x800)
36
37 /* System Bus Interface (SBI)
38  *
39  * Registers
40  *    SKCR      Control Register
41  *    SMCR      Shared Memory Controller Register
42  *    SKID      ID Register
43  */
44
45 #define _SKCR           _SA1111( 0x0000 )
46 #define _SMCR           _SA1111( 0x0004 )
47 #define _SKID           _SA1111( 0x0008 )
48
49 #if LANGUAGE == C
50
51 #define SKCR            (*((volatile Word *) SA1111_p2v (_SKCR)))
52 #define SMCR            (*((volatile Word *) SA1111_p2v (_SMCR)))
53 #define SKID            (*((volatile Word *) SA1111_p2v (_SKID)))
54
55 #endif  /* LANGUAGE == C */
56
57 #define SKCR_PLL_BYPASS (1<<0)
58 #define SKCR_RCLKEN     (1<<1)
59 #define SKCR_SLEEP      (1<<2)
60 #define SKCR_DOZE       (1<<3)
61 #define SKCR_VCO_OFF    (1<<4)
62 #define SKCR_SCANTSTEN  (1<<5)
63 #define SKCR_CLKTSTEN   (1<<6)
64 #define SKCR_RDYEN      (1<<7)
65 #define SKCR_SELAC      (1<<8)
66 #define SKCR_OPPC       (1<<9)
67 #define SKCR_PLLTSTEN   (1<<10)
68 #define SKCR_USBIOTSTEN (1<<11)
69 #define SKCR_OE_EN      (1<<13)
70
71 #define SMCR_DTIM       (1<<0)
72 #define SMCR_MBGE       (1<<1)
73 #define SMCR_DRAC_0     (1<<2)
74 #define SMCR_DRAC_1     (1<<3)
75 #define SMCR_DRAC_2     (1<<4)
76 #define SMCR_DRAC       Fld(3, 2)
77 #define SMCR_CLAT       (1<<5)
78
79 #define SKID_SIREV_MASK (0x000000f0)
80 #define SKID_MTREV_MASK (0x0000000f)
81 #define SKID_ID_MASK    (0xffffff00)
82 #define SKID_SA1111_ID  (0x690cc200)
83
84 /*
85  * System Controller
86  *
87  * Registers
88  *    SKPCR     Power Control Register
89  *    SKCDR     Clock Divider Register
90  *    SKAUD     Audio Clock Divider Register
91  *    SKPMC     PS/2 Mouse Clock Divider Register
92  *    SKPTC     PS/2 Track Pad Clock Divider Register
93  *    SKPEN0    PWM0 Enable Register
94  *    SKPWM0    PWM0 Clock Register
95  *    SKPEN1    PWM1 Enable Register
96  *    SKPWM1    PWM1 Clock Register
97  */
98
99 #define _SKPCR          _SA1111(0x0200)
100 #define _SKCDR          _SA1111(0x0204)
101 #define _SKAUD          _SA1111(0x0208)
102 #define _SKPMC          _SA1111(0x020c)
103 #define _SKPTC          _SA1111(0x0210)
104 #define _SKPEN0         _SA1111(0x0214)
105 #define _SKPWM0         _SA1111(0x0218)
106 #define _SKPEN1         _SA1111(0x021c)
107 #define _SKPWM1         _SA1111(0x0220)
108
109 #if LANGUAGE == C
110
111 #define SKPCR           (*((volatile Word *) SA1111_p2v (_SKPCR)))
112 #define SKCDR           (*((volatile Word *) SA1111_p2v (_SKCDR)))
113 #define SKAUD           (*((volatile Word *) SA1111_p2v (_SKAUD)))
114 #define SKPMC           (*((volatile Word *) SA1111_p2v (_SKPMC)))
115 #define SKPTC           (*((volatile Word *) SA1111_p2v (_SKPTC)))
116 #define SKPEN0          (*((volatile Word *) SA1111_p2v (_SKPEN0)))
117 #define SKPWM0          (*((volatile Word *) SA1111_p2v (_SKPWM0)))
118 #define SKPEN1          (*((volatile Word *) SA1111_p2v (_SKPEN1)))
119 #define SKPWM1          (*((volatile Word *) SA1111_p2v (_SKPWM1)))
120
121 #endif  /* LANGUAGE == C */
122
123 #define SKPCR_UCLKEN    (1<<0)
124 #define SKPCR_ACCLKEN   (1<<1)
125 #define SKPCR_I2SCLKEN  (1<<2)
126 #define SKPCR_L3CLKEN   (1<<3)
127 #define SKPCR_SCLKEN    (1<<4)
128 #define SKPCR_PMCLKEN   (1<<5)
129 #define SKPCR_PTCLKEN   (1<<6)
130 #define SKPCR_DCLKEN    (1<<7)
131 #define SKPCR_PWMCLKEN  (1<<8)
132
133 /*
134  * Serial Audio Controller
135  *
136  * Registers
137  *    SACR0             Serial Audio Common Control Register
138  *    SACR1             Serial Audio Alternate Mode (I2C/MSB) Control Register
139  *    SACR2             Serial Audio AC-link Control Register
140  *    SASR0             Serial Audio I2S/MSB Interface & FIFO Status Register
141  *    SASR1             Serial Audio AC-link Interface & FIFO Status Register
142  *    SASCR             Serial Audio Status Clear Register
143  *    L3_CAR            L3 Control Bus Address Register
144  *    L3_CDR            L3 Control Bus Data Register
145  *    ACCAR             AC-link Command Address Register
146  *    ACCDR             AC-link Command Data Register
147  *    ACSAR             AC-link Status Address Register
148  *    ACSDR             AC-link Status Data Register
149  *    SADTCS            Serial Audio DMA Transmit Control/Status Register
150  *    SADTSA            Serial Audio DMA Transmit Buffer Start Address A
151  *    SADTCA            Serial Audio DMA Transmit Buffer Count Register A
152  *    SADTSB            Serial Audio DMA Transmit Buffer Start Address B
153  *    SADTCB            Serial Audio DMA Transmit Buffer Count Register B
154  *    SADRCS            Serial Audio DMA Receive Control/Status Register
155  *    SADRSA            Serial Audio DMA Receive Buffer Start Address A
156  *    SADRCA            Serial Audio DMA Receive Buffer Count Register A
157  *    SADRSB            Serial Audio DMA Receive Buffer Start Address B
158  *    SADRCB            Serial Audio DMA Receive Buffer Count Register B
159  *    SAITR             Serial Audio Interrupt Test Register
160  *    SADR              Serial Audio Data Register (16 x 32-bit)
161  */
162
163 #define _SACR0          _SA1111( 0x0600 )
164 #define _SACR1          _SA1111( 0x0604 )
165 #define _SACR2          _SA1111( 0x0608 )
166 #define _SASR0          _SA1111( 0x060c )
167 #define _SASR1          _SA1111( 0x0610 )
168 #define _SASCR          _SA1111( 0x0618 )
169 #define _L3_CAR         _SA1111( 0x061c )
170 #define _L3_CDR         _SA1111( 0x0620 )
171 #define _ACCAR          _SA1111( 0x0624 )
172 #define _ACCDR          _SA1111( 0x0628 )
173 #define _ACSAR          _SA1111( 0x062c )
174 #define _ACSDR          _SA1111( 0x0630 )
175 #define _SADTCS         _SA1111( 0x0634 )
176 #define _SADTSA         _SA1111( 0x0638 )
177 #define _SADTCA         _SA1111( 0x063c )
178 #define _SADTSB         _SA1111( 0x0640 )
179 #define _SADTCB         _SA1111( 0x0644 )
180 #define _SADRCS         _SA1111( 0x0648 )
181 #define _SADRSA         _SA1111( 0x064c )
182 #define _SADRCA         _SA1111( 0x0650 )
183 #define _SADRSB         _SA1111( 0x0654 )
184 #define _SADRCB         _SA1111( 0x0658 )
185 #define _SAITR          _SA1111( 0x065c )
186 #define _SADR           _SA1111( 0x0680 )
187
188 #if LANGUAGE == C
189
190 #define SACR0           (*((volatile Word *) SA1111_p2v (_SACR0)))
191 #define SACR1           (*((volatile Word *) SA1111_p2v (_SACR1)))
192 #define SACR2           (*((volatile Word *) SA1111_p2v (_SACR2)))
193 #define SASR0           (*((volatile Word *) SA1111_p2v (_SASR0)))
194 #define SASR1           (*((volatile Word *) SA1111_p2v (_SASR1)))
195 #define SASCR           (*((volatile Word *) SA1111_p2v (_SASCR)))
196 #define L3_CAR          (*((volatile Word *) SA1111_p2v (_L3_CAR)))
197 #define L3_CDR          (*((volatile Word *) SA1111_p2v (_L3_CDR)))
198 #define ACCAR           (*((volatile Word *) SA1111_p2v (_ACCAR)))
199 #define ACCDR           (*((volatile Word *) SA1111_p2v (_ACCDR)))
200 #define ACSAR           (*((volatile Word *) SA1111_p2v (_ACSAR)))
201 #define ACSDR           (*((volatile Word *) SA1111_p2v (_ACSDR)))
202 #define SADTCS          (*((volatile Word *) SA1111_p2v (_SADTCS)))
203 #define SADTSA          (*((volatile Word *) SA1111_p2v (_SADTSA)))
204 #define SADTCA          (*((volatile Word *) SA1111_p2v (_SADTCA)))
205 #define SADTSB          (*((volatile Word *) SA1111_p2v (_SADTSB)))
206 #define SADTCB          (*((volatile Word *) SA1111_p2v (_SADTCB)))
207 #define SADRCS          (*((volatile Word *) SA1111_p2v (_SADRCS)))
208 #define SADRSA          (*((volatile Word *) SA1111_p2v (_SADRSA)))
209 #define SADRCA          (*((volatile Word *) SA1111_p2v (_SADRCA)))
210 #define SADRSB          (*((volatile Word *) SA1111_p2v (_SADRSB)))
211 #define SADRCB          (*((volatile Word *) SA1111_p2v (_SADRCB)))
212 #define SAITR           (*((volatile Word *) SA1111_p2v (_SAITR)))
213 #define SADR            (*((volatile Word *) SA1111_p2v (_SADR)))
214
215 #endif  /* LANGUAGE == C */
216
217 #define SACR0_ENB       (1<<0)
218 #define SACR0_BCKD      (1<<2)
219 #define SACR0_RST       (1<<3)
220
221 #define SACR1_AMSL      (1<<0)
222 #define SACR1_L3EN      (1<<1)
223 #define SACR1_L3MB      (1<<2)
224 #define SACR1_DREC      (1<<3)
225 #define SACR1_DRPL      (1<<4)
226 #define SACR1_ENLBF     (1<<5)
227
228 #define SACR2_TS3V      (1<<0)
229 #define SACR2_TS4V      (1<<1)
230 #define SACR2_WKUP      (1<<2)
231 #define SACR2_DREC      (1<<3)
232 #define SACR2_DRPL      (1<<4)
233 #define SACR2_ENLBF     (1<<5)
234 #define SACR2_RESET     (1<<6)
235
236 #define SASR0_TNF       (1<<0)
237 #define SASR0_RNE       (1<<1)
238 #define SASR0_BSY       (1<<2)
239 #define SASR0_TFS       (1<<3)
240 #define SASR0_RFS       (1<<4)
241 #define SASR0_TUR       (1<<5)
242 #define SASR0_ROR       (1<<6)
243 #define SASR0_L3WD      (1<<16)
244 #define SASR0_L3RD      (1<<17)
245
246 #define SASR1_TNF       (1<<0)
247 #define SASR1_RNE       (1<<1)
248 #define SASR1_BSY       (1<<2)
249 #define SASR1_TFS       (1<<3)
250 #define SASR1_RFS       (1<<4)
251 #define SASR1_TUR       (1<<5)
252 #define SASR1_ROR       (1<<6)
253 #define SASR1_CADT      (1<<16)
254 #define SASR1_SADR      (1<<17)
255 #define SASR1_RSTO      (1<<18)
256 #define SASR1_CLPM      (1<<19)
257 #define SASR1_CRDY      (1<<20)
258 #define SASR1_RS3V      (1<<21)
259 #define SASR1_RS4V      (1<<22)
260
261 #define SASCR_TUR       (1<<5)
262 #define SASCR_ROR       (1<<6)
263 #define SASCR_DTS       (1<<16)
264 #define SASCR_RDD       (1<<17)
265 #define SASCR_STO       (1<<18)
266
267 #define SADTCS_TDEN     (1<<0)
268 #define SADTCS_TDIE     (1<<1)
269 #define SADTCS_TDBDA    (1<<3)
270 #define SADTCS_TDSTA    (1<<4)
271 #define SADTCS_TDBDB    (1<<5)
272 #define SADTCS_TDSTB    (1<<6)
273 #define SADTCS_TBIU     (1<<7)
274
275 #define SADRCS_RDEN     (1<<0)
276 #define SADRCS_RDIE     (1<<1)
277 #define SADRCS_RDBDA    (1<<3)
278 #define SADRCS_RDSTA    (1<<4)
279 #define SADRCS_RDBDB    (1<<5)
280 #define SADRCS_RDSTB    (1<<6)
281 #define SADRCS_RBIU     (1<<7)
282
283 #define SAD_CS_DEN      (1<<0)
284 #define SAD_CS_DIE      (1<<1)  /* Not functional on metal 1 */
285 #define SAD_CS_DBDA     (1<<3)  /* Not functional on metal 1 */
286 #define SAD_CS_DSTA     (1<<4)
287 #define SAD_CS_DBDB     (1<<5)  /* Not functional on metal 1 */
288 #define SAD_CS_DSTB     (1<<6)
289 #define SAD_CS_BIU      (1<<7)  /* Not functional on metal 1 */
290
291 #define SAITR_TFS       (1<<0)
292 #define SAITR_RFS       (1<<1)
293 #define SAITR_TUR       (1<<2)
294 #define SAITR_ROR       (1<<3)
295 #define SAITR_CADT      (1<<4)
296 #define SAITR_SADR      (1<<5)
297 #define SAITR_RSTO      (1<<6)
298 #define SAITR_TDBDA     (1<<8)
299 #define SAITR_TDBDB     (1<<9)
300 #define SAITR_RDBDA     (1<<10)
301 #define SAITR_RDBDB     (1<<11)
302
303 /*
304  * General-Purpose I/O Interface
305  *
306  * Registers
307  *    PA_DDR            GPIO Block A Data Direction
308  *    PA_DRR/PA_DWR     GPIO Block A Data Value Register (read/write)
309  *    PA_SDR            GPIO Block A Sleep Direction
310  *    PA_SSR            GPIO Block A Sleep State
311  *    PB_DDR            GPIO Block B Data Direction
312  *    PB_DRR/PB_DWR     GPIO Block B Data Value Register (read/write)
313  *    PB_SDR            GPIO Block B Sleep Direction
314  *    PB_SSR            GPIO Block B Sleep State
315  *    PC_DDR            GPIO Block C Data Direction
316  *    PC_DRR/PC_DWR     GPIO Block C Data Value Register (read/write)
317  *    PC_SDR            GPIO Block C Sleep Direction
318  *    PC_SSR            GPIO Block C Sleep State
319  */
320
321 #define _PA_DDR         _SA1111( 0x1000 )
322 #define _PA_DRR         _SA1111( 0x1004 )
323 #define _PA_DWR         _SA1111( 0x1004 )
324 #define _PA_SDR         _SA1111( 0x1008 )
325 #define _PA_SSR         _SA1111( 0x100c )
326 #define _PB_DDR         _SA1111( 0x1010 )
327 #define _PB_DRR         _SA1111( 0x1014 )
328 #define _PB_DWR         _SA1111( 0x1014 )
329 #define _PB_SDR         _SA1111( 0x1018 )
330 #define _PB_SSR         _SA1111( 0x101c )
331 #define _PC_DDR         _SA1111( 0x1020 )
332 #define _PC_DRR         _SA1111( 0x1024 )
333 #define _PC_DWR         _SA1111( 0x1024 )
334 #define _PC_SDR         _SA1111( 0x1028 )
335 #define _PC_SSR         _SA1111( 0x102c )
336
337 #if LANGUAGE == C
338
339 #define PA_DDR          (*((volatile Word *) SA1111_p2v (_PA_DDR)))
340 #define PA_DRR          (*((volatile Word *) SA1111_p2v (_PA_DRR)))
341 #define PA_DWR          (*((volatile Word *) SA1111_p2v (_PA_DWR)))
342 #define PA_SDR          (*((volatile Word *) SA1111_p2v (_PA_SDR)))
343 #define PA_SSR          (*((volatile Word *) SA1111_p2v (_PA_SSR)))
344 #define PB_DDR          (*((volatile Word *) SA1111_p2v (_PB_DDR)))
345 #define PB_DRR          (*((volatile Word *) SA1111_p2v (_PB_DRR)))
346 #define PB_DWR          (*((volatile Word *) SA1111_p2v (_PB_DWR)))
347 #define PB_SDR          (*((volatile Word *) SA1111_p2v (_PB_SDR)))
348 #define PB_SSR          (*((volatile Word *) SA1111_p2v (_PB_SSR)))
349 #define PC_DDR          (*((volatile Word *) SA1111_p2v (_PC_DDR)))
350 #define PC_DRR          (*((volatile Word *) SA1111_p2v (_PC_DRR)))
351 #define PC_DWR          (*((volatile Word *) SA1111_p2v (_PC_DWR)))
352 #define PC_SDR          (*((volatile Word *) SA1111_p2v (_PC_SDR)))
353 #define PC_SSR          (*((volatile Word *) SA1111_p2v (_PC_SSR)))
354
355 #endif  /* LANGUAGE == C */
356
357 /*
358  * Interrupt Controller
359  *
360  * Registers
361  *    INTTEST0          Test register 0
362  *    INTTEST1          Test register 1
363  *    INTEN0            Interrupt Enable register 0
364  *    INTEN1            Interrupt Enable register 1
365  *    INTPOL0           Interrupt Polarity selection 0
366  *    INTPOL1           Interrupt Polarity selection 1
367  *    INTTSTSEL         Interrupt source selection
368  *    INTSTATCLR0       Interrupt Status/Clear 0
369  *    INTSTATCLR1       Interrupt Status/Clear 1
370  *    INTSET0           Interrupt source set 0
371  *    INTSET1           Interrupt source set 1
372  *    WAKE_EN0          Wake-up source enable 0
373  *    WAKE_EN1          Wake-up source enable 1
374  *    WAKE_POL0         Wake-up polarity selection 0
375  *    WAKE_POL1         Wake-up polarity selection 1
376  */
377
378 #define _INTTEST0       _SA1111( 0x1600 )
379 #define _INTTEST1       _SA1111( 0x1604 )
380 #define _INTEN0         _SA1111( 0x1608 )
381 #define _INTEN1         _SA1111( 0x160c )
382 #define _INTPOL0        _SA1111( 0x1610 )
383 #define _INTPOL1        _SA1111( 0x1614 )
384 #define _INTTSTSEL      _SA1111( 0x1618 )
385 #define _INTSTATCLR0    _SA1111( 0x161c )
386 #define _INTSTATCLR1    _SA1111( 0x1620 )
387 #define _INTSET0        _SA1111( 0x1624 )
388 #define _INTSET1        _SA1111( 0x1628 )
389 #define _WAKE_EN0       _SA1111( 0x162c )
390 #define _WAKE_EN1       _SA1111( 0x1630 )
391 #define _WAKE_POL0      _SA1111( 0x1634 )
392 #define _WAKE_POL1      _SA1111( 0x1638 )
393
394 #if LANGUAGE == C
395
396 #define INTTEST0        (*((volatile Word *) SA1111_p2v (_INTTEST0)))
397 #define INTTEST1        (*((volatile Word *) SA1111_p2v (_INTTEST1)))
398 #define INTEN0          (*((volatile Word *) SA1111_p2v (_INTEN0)))
399 #define INTEN1          (*((volatile Word *) SA1111_p2v (_INTEN1)))
400 #define INTPOL0         (*((volatile Word *) SA1111_p2v (_INTPOL0)))
401 #define INTPOL1         (*((volatile Word *) SA1111_p2v (_INTPOL1)))
402 #define INTTSTSEL       (*((volatile Word *) SA1111_p2v (_INTTSTSEL)))
403 #define INTSTATCLR0     (*((volatile Word *) SA1111_p2v (_INTSTATCLR0)))
404 #define INTSTATCLR1     (*((volatile Word *) SA1111_p2v (_INTSTATCLR1)))
405 #define INTSET0         (*((volatile Word *) SA1111_p2v (_INTSET0)))
406 #define INTSET1         (*((volatile Word *) SA1111_p2v (_INTSET1)))
407 #define WAKE_EN0        (*((volatile Word *) SA1111_p2v (_WAKE_EN0)))
408 #define WAKE_EN1        (*((volatile Word *) SA1111_p2v (_WAKE_EN1)))
409 #define WAKE_POL0       (*((volatile Word *) SA1111_p2v (_WAKE_POL0)))
410 #define WAKE_POL1       (*((volatile Word *) SA1111_p2v (_WAKE_POL1)))
411
412 #endif  /* LANGUAGE == C */
413
414 /*
415  * PS/2 Trackpad and Mouse Interfaces
416  *
417  * Registers   (prefix kbd applies to trackpad interface, mse to mouse)
418  *    KBDCR     Control Register
419  *    KBDSTAT       Status Register
420  *    KBDDATA       Transmit/Receive Data register
421  *    KBDCLKDIV     Clock Division Register
422  *    KBDPRECNT     Clock Precount Register
423  *    KBDTEST1      Test register 1
424  *    KBDTEST2      Test register 2
425  *    KBDTEST3      Test register 3
426  *    KBDTEST4      Test register 4
427  *    MSECR
428  *    MSESTAT
429  *    MSEDATA
430  *    MSECLKDIV
431  *    MSEPRECNT
432  *    MSETEST1
433  *    MSETEST2
434  *    MSETEST3
435  *    MSETEST4
436  *
437  */
438
439 #define _KBD( x )   _SA1111( 0x0A00 )
440 #define _MSE( x )   _SA1111( 0x0C00 )
441
442 #define _KBDCR      _SA1111( 0x0A00 )
443 #define _KBDSTAT    _SA1111( 0x0A04 )
444 #define _KBDDATA    _SA1111( 0x0A08 )
445 #define _KBDCLKDIV  _SA1111( 0x0A0C )
446 #define _KBDPRECNT  _SA1111( 0x0A10 )
447 #define _MSECR      _SA1111( 0x0C00 )
448 #define _MSESTAT    _SA1111( 0x0C04 )
449 #define _MSEDATA    _SA1111( 0x0C08 )
450 #define _MSECLKDIV  _SA1111( 0x0C0C )
451 #define _MSEPRECNT  _SA1111( 0x0C10 )
452
453 #if ( LANGUAGE == C )
454
455 #define KBDCR       (*((volatile Word *) SA1111_p2v (_KBDCR)))
456 #define KBDSTAT     (*((volatile Word *) SA1111_p2v (_KBDSTAT)))
457 #define KBDDATA     (*((volatile Word *) SA1111_p2v (_KBDDATA)))
458 #define KBDCLKDIV   (*((volatile Word *) SA1111_p2v (_KBDCLKDIV)))
459 #define KBDPRECNT   (*((volatile Word *) SA1111_p2v (_KBDPRECNT)))
460 #define KBDTEST1    (*((volatile Word *) SA1111_p2v (_KBDTEST1)))
461 #define KBDTEST2    (*((volatile Word *) SA1111_p2v (_KBDTEST2)))
462 #define KBDTEST3    (*((volatile Word *) SA1111_p2v (_KBDTEST3)))
463 #define KBDTEST4    (*((volatile Word *) SA1111_p2v (_KBDTEST4)))
464 #define MSECR       (*((volatile Word *) SA1111_p2v (_MSECR)))
465 #define MSESTAT     (*((volatile Word *) SA1111_p2v (_MSESTAT)))
466 #define MSEDATA     (*((volatile Word *) SA1111_p2v (_MSEDATA)))
467 #define MSECLKDIV   (*((volatile Word *) SA1111_p2v (_MSECLKDIV)))
468 #define MSEPRECNT   (*((volatile Word *) SA1111_p2v (_MSEPRECNT)))
469 #define MSETEST1    (*((volatile Word *) SA1111_p2v (_MSETEST1)))
470 #define MSETEST2    (*((volatile Word *) SA1111_p2v (_MSETEST2)))
471 #define MSETEST3    (*((volatile Word *) SA1111_p2v (_MSETEST3)))
472 #define MSETEST4    (*((volatile Word *) SA1111_p2v (_MSETEST4)))
473
474 #define KBDCR_ENA        0x08
475 #define KBDCR_FKD        0x02
476 #define KBDCR_FKC        0x01
477
478 #define KBDSTAT_TXE      0x80
479 #define KBDSTAT_TXB      0x40
480 #define KBDSTAT_RXF      0x20
481 #define KBDSTAT_RXB      0x10
482 #define KBDSTAT_ENA      0x08
483 #define KBDSTAT_RXP      0x04
484 #define KBDSTAT_KBD      0x02
485 #define KBDSTAT_KBC      0x01
486
487 #define KBDCLKDIV_DivVal     Fld(4,0)
488
489 #define MSECR_ENA        0x08
490 #define MSECR_FKD        0x02
491 #define MSECR_FKC        0x01
492
493 #define MSESTAT_TXE      0x80
494 #define MSESTAT_TXB      0x40
495 #define MSESTAT_RXF      0x20
496 #define MSESTAT_RXB      0x10
497 #define MSESTAT_ENA      0x08
498 #define MSESTAT_RXP      0x04
499 #define MSESTAT_MSD      0x02
500 #define MSESTAT_MSC      0x01
501
502 #define MSECLKDIV_DivVal     Fld(4,0)
503
504 #define KBDTEST1_CD      0x80
505 #define KBDTEST1_RC1         0x40
506 #define KBDTEST1_MC      0x20
507 #define KBDTEST1_C       Fld(2,3)
508 #define KBDTEST1_T2      0x40
509 #define KBDTEST1_T1      0x20
510 #define KBDTEST1_T0      0x10
511 #define KBDTEST2_TICBnRES    0x08
512 #define KBDTEST2_RKC         0x04
513 #define KBDTEST2_RKD         0x02
514 #define KBDTEST2_SEL         0x01
515 #define KBDTEST3_ms_16       0x80
516 #define KBDTEST3_us_64       0x40
517 #define KBDTEST3_us_16       0x20
518 #define KBDTEST3_DIV8        0x10
519 #define KBDTEST3_DIn         0x08
520 #define KBDTEST3_CIn         0x04
521 #define KBDTEST3_KD      0x02
522 #define KBDTEST3_KC      0x01
523 #define KBDTEST4_BC12        0x80
524 #define KBDTEST4_BC11        0x40
525 #define KBDTEST4_TRES        0x20
526 #define KBDTEST4_CLKOE       0x10
527 #define KBDTEST4_CRES        0x08
528 #define KBDTEST4_RXB         0x04
529 #define KBDTEST4_TXB         0x02
530 #define KBDTEST4_SRX         0x01
531
532 #define MSETEST1_CD      0x80
533 #define MSETEST1_RC1         0x40
534 #define MSETEST1_MC      0x20
535 #define MSETEST1_C       Fld(2,3)
536 #define MSETEST1_T2      0x40
537 #define MSETEST1_T1      0x20
538 #define MSETEST1_T0      0x10
539 #define MSETEST2_TICBnRES    0x08
540 #define MSETEST2_RKC         0x04
541 #define MSETEST2_RKD         0x02
542 #define MSETEST2_SEL         0x01
543 #define MSETEST3_ms_16       0x80
544 #define MSETEST3_us_64       0x40
545 #define MSETEST3_us_16       0x20
546 #define MSETEST3_DIV8        0x10
547 #define MSETEST3_DIn         0x08
548 #define MSETEST3_CIn         0x04
549 #define MSETEST3_KD      0x02
550 #define MSETEST3_KC      0x01
551 #define MSETEST4_BC12        0x80
552 #define MSETEST4_BC11        0x40
553 #define MSETEST4_TRES        0x20
554 #define MSETEST4_CLKOE       0x10
555 #define MSETEST4_CRES        0x08
556 #define MSETEST4_RXB         0x04
557 #define MSETEST4_TXB         0x02
558 #define MSETEST4_SRX         0x01
559
560 #endif  /* LANGUAGE == C */
561
562 /*
563  * PCMCIA Interface
564  *
565  * Registers
566  *    PCSR      Status Register
567  *    PCCR      Control Register
568  *    PCSSR     Sleep State Register
569  */
570
571 #define _PCCR           _SA1111( 0x1800 )
572 #define _PCSSR          _SA1111( 0x1804 )
573 #define _PCSR           _SA1111( 0x1808 )
574
575 #if LANGUAGE == C
576
577 #define PCCR            (*((volatile Word *) SA1111_p2v (_PCCR)))
578 #define PCSSR           (*((volatile Word *) SA1111_p2v (_PCSSR)))
579 #define PCSR            (*((volatile Word *) SA1111_p2v (_PCSR)))
580
581 #endif  /* LANGUAGE == C */
582
583 #define PCSR_S0_READY   (1<<0)
584 #define PCSR_S1_READY   (1<<1)
585 #define PCSR_S0_DETECT  (1<<2)
586 #define PCSR_S1_DETECT  (1<<3)
587 #define PCSR_S0_VS1     (1<<4)
588 #define PCSR_S0_VS2     (1<<5)
589 #define PCSR_S1_VS1     (1<<6)
590 #define PCSR_S1_VS2     (1<<7)
591 #define PCSR_S0_WP      (1<<8)
592 #define PCSR_S1_WP      (1<<9)
593 #define PCSR_S0_BVD1    (1<<10)
594 #define PCSR_S0_BVD2    (1<<11)
595 #define PCSR_S1_BVD1    (1<<12)
596 #define PCSR_S1_BVD2    (1<<13)
597
598 #define PCCR_S0_RST     (1<<0)
599 #define PCCR_S1_RST     (1<<1)
600 #define PCCR_S0_FLT     (1<<2)
601 #define PCCR_S1_FLT     (1<<3)
602 #define PCCR_S0_PWAITEN (1<<4)
603 #define PCCR_S1_PWAITEN (1<<5)
604 #define PCCR_S0_PSE     (1<<6)
605 #define PCCR_S1_PSE     (1<<7)
606
607 #define PCSSR_S0_SLEEP  (1<<0)
608 #define PCSSR_S1_SLEEP  (1<<1)
609
610 #endif  /* _ASM_ARCH_SA1111 */