aureg.h revision 1.14 1 1.14 shige /* $NetBSD: aureg.h,v 1.14 2006/02/24 14:34:31 shige Exp $ */
2 1.1 simonb
3 1.1 simonb /*
4 1.1 simonb * Copyright 2002 Wasabi Systems, Inc.
5 1.1 simonb * All rights reserved.
6 1.1 simonb *
7 1.1 simonb * Written by Simon Burge for Wasabi Systems, Inc.
8 1.1 simonb *
9 1.1 simonb * Redistribution and use in source and binary forms, with or without
10 1.1 simonb * modification, are permitted provided that the following conditions
11 1.1 simonb * are met:
12 1.1 simonb * 1. Redistributions of source code must retain the above copyright
13 1.1 simonb * notice, this list of conditions and the following disclaimer.
14 1.1 simonb * 2. Redistributions in binary form must reproduce the above copyright
15 1.1 simonb * notice, this list of conditions and the following disclaimer in the
16 1.1 simonb * documentation and/or other materials provided with the distribution.
17 1.1 simonb * 3. All advertising materials mentioning features or use of this software
18 1.1 simonb * must display the following acknowledgement:
19 1.1 simonb * This product includes software developed for the NetBSD Project by
20 1.1 simonb * Wasabi Systems, Inc.
21 1.1 simonb * 4. The name of Wasabi Systems, Inc. may not be used to endorse
22 1.1 simonb * or promote products derived from this software without specific prior
23 1.1 simonb * written permission.
24 1.1 simonb *
25 1.1 simonb * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
26 1.1 simonb * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27 1.1 simonb * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 1.1 simonb * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC
29 1.1 simonb * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 1.1 simonb * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 1.1 simonb * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 1.1 simonb * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 1.1 simonb * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 1.1 simonb * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 1.1 simonb * POSSIBILITY OF SUCH DAMAGE.
36 1.1 simonb */
37 1.1 simonb
38 1.11 gdamore #ifndef _MIPS_ALCHEMY_AUREG_H
39 1.11 gdamore #define _MIPS_ALCHEMY_AUREG_H
40 1.1 simonb
41 1.1 simonb /************************************************************************/
42 1.1 simonb /******************** AC97 Controller registers *********************/
43 1.1 simonb /************************************************************************/
44 1.1 simonb #define AC97_BASE 0x10000000
45 1.1 simonb
46 1.1 simonb /************************************************************************/
47 1.1 simonb /*********************** USB Host registers *************************/
48 1.1 simonb /************************************************************************/
49 1.1 simonb #define USBH_BASE 0x10100000
50 1.11 gdamore #define AU1550_USBH_BASE 0x14020000
51 1.1 simonb
52 1.1 simonb #define USBH_ENABLE 0x7fffc
53 1.11 gdamore #define USBH_SIZE 0x100000
54 1.7 tron
55 1.7 tron #define AU1550_USBH_ENABLE 0x7ffc
56 1.7 tron #define AU1550_USBH_SIZE 0x60000
57 1.1 simonb
58 1.1 simonb /************************************************************************/
59 1.1 simonb /********************** USB Device registers ************************/
60 1.1 simonb /************************************************************************/
61 1.1 simonb #define USBD_BASE 0x10200000
62 1.1 simonb
63 1.1 simonb /************************************************************************/
64 1.1 simonb /************************* IRDA registers ***************************/
65 1.1 simonb /************************************************************************/
66 1.1 simonb #define IRDA_BASE 0x10300000
67 1.1 simonb
68 1.1 simonb /************************************************************************/
69 1.1 simonb /****************** Interrupt Controller registers ******************/
70 1.1 simonb /************************************************************************/
71 1.1 simonb
72 1.11 gdamore #define IC0_BASE 0x10400000
73 1.11 gdamore #define IC1_BASE 0x11800000
74 1.1 simonb
75 1.1 simonb /*
76 1.1 simonb * The *_READ registers read the current value of the register
77 1.1 simonb * The *_SET registers set to 1 all bits that are written 1
78 1.1 simonb * The *_CLEAR registers clear to zero all bits that are written as 1
79 1.1 simonb */
80 1.1 simonb #define IC_CONFIG0_READ 0x40 /* See table below */
81 1.1 simonb #define IC_CONFIG0_SET 0x40
82 1.1 simonb #define IC_CONFIG0_CLEAR 0x44
83 1.1 simonb
84 1.1 simonb #define IC_CONFIG1_READ 0x48 /* See table below */
85 1.1 simonb #define IC_CONFIG1_SET 0x48
86 1.1 simonb #define IC_CONFIG1_CLEAR 0x4c
87 1.1 simonb
88 1.1 simonb #define IC_CONFIG2_READ 0x50 /* See table below */
89 1.1 simonb #define IC_CONFIG2_SET 0x50
90 1.1 simonb #define IC_CONFIG2_CLEAR 0x54
91 1.1 simonb
92 1.1 simonb #define IC_REQUEST0_INT 0x54 /* Show active interrupts on request 0 */
93 1.1 simonb
94 1.1 simonb #define IC_SOURCE_READ 0x58 /* Interrupt source */
95 1.1 simonb #define IC_SOURCE_SET 0x58 /* 0 - test bit used as source */
96 1.1 simonb #define IC_SOURCE_CLEAR 0x5c /* 1 - peripheral/GPIO used as source */
97 1.1 simonb
98 1.1 simonb #define IC_REQUEST1_INT 0x5c /* Show active interrupts on request 1 */
99 1.1 simonb
100 1.1 simonb #define IC_ASSIGN_REQUEST_READ 0x60 /* Assigns the interrupt to one of the */
101 1.1 simonb #define IC_ASSIGN_REQUEST_SET 0x60 /* CPU requests (0 - assign to request 1, */
102 1.1 simonb #define IC_ASSIGN_REQUEST_CLEAR 0x64 /* 1 - assign to request 0) */
103 1.1 simonb
104 1.1 simonb #define IC_WAKEUP_READ 0x68 /* Controls whether the interrupt can */
105 1.1 simonb #define IC_WAKEUP_SET 0x68 /* cause a wakeup from IDLE */
106 1.1 simonb #define IC_WAKEUP_CLEAR 0x6c
107 1.1 simonb
108 1.1 simonb #define IC_MASK_READ 0x70 /* Enables/Disables the interrupt */
109 1.1 simonb #define IC_MASK_SET 0x70
110 1.1 simonb #define IC_MASK_CLEAR 0x74
111 1.1 simonb
112 1.1 simonb #define IC_RISING_EDGE_DETECT 0x78 /* Check/clear rising edge interrupts */
113 1.1 simonb #define IC_RISING_EDGE_DETECT_CLEAR 0x78
114 1.1 simonb
115 1.1 simonb #define IC_FAILLING_EDGE_DETECT 0x7c /* Check/clear falling edge interrupts */
116 1.1 simonb #define IC_FAILLING_EDGE_DETECT_CLEAR 0x7c
117 1.1 simonb
118 1.1 simonb #define IC_TEST_BIT 0x80 /* single bit source select testing register */
119 1.1 simonb
120 1.1 simonb /*
121 1.1 simonb * Interrupt Configuration Register Functions
122 1.1 simonb *
123 1.1 simonb * Cfg2[n] Cfg1[n] Cfg0[n] Function
124 1.1 simonb * 0 0 0 Interrupts Disabled
125 1.1 simonb * 0 0 1 Rising Edge Enabled
126 1.1 simonb * 0 1 0 Falling Edge Enabled
127 1.1 simonb * 0 1 1 Rising and Falling Edge Enabled
128 1.1 simonb * 1 0 0 Interrupts Disabled
129 1.1 simonb * 1 0 1 High Level Enabled
130 1.1 simonb * 1 1 0 Low Level Enabled
131 1.1 simonb * 1 1 1 Both Levels and Both Edges Enabled
132 1.1 simonb */
133 1.1 simonb
134 1.1 simonb /************************************************************************/
135 1.14 shige /************* Programable Serial Controller registers **************/
136 1.14 shige /************************************************************************/
137 1.14 shige
138 1.14 shige #define PSC0_BASE 0x011A0000
139 1.14 shige #define PSC1_BASE 0x011B0000
140 1.14 shige #define PSC2_BASE 0x010A0000
141 1.14 shige #define PSC3_BASE 0x010B0000
142 1.14 shige
143 1.14 shige
144 1.14 shige /************************************************************************/
145 1.1 simonb /********************** Ethernet MAC registers **********************/
146 1.1 simonb /************************************************************************/
147 1.1 simonb
148 1.1 simonb #define MAC0_BASE 0x10500000
149 1.1 simonb #define MAC1_BASE 0x10510000
150 1.1 simonb #define MACx_SIZE 0x28
151 1.1 simonb
152 1.1 simonb #define AU1500_MAC0_BASE 0x11500000 /* Grr, difference on Au1500 */
153 1.1 simonb #define AU1500_MAC1_BASE 0x11510000 /* Grr, difference on Au1500 */
154 1.1 simonb
155 1.1 simonb #define MAC0_ENABLE 0x10520000
156 1.1 simonb #define MAC1_ENABLE 0x10520004
157 1.1 simonb #define MACENx_SIZE 0x04
158 1.1 simonb
159 1.1 simonb #define AU1500_MAC0_ENABLE 0x11520000 /* Grr, difference on Au1500 */
160 1.2 simonb #define AU1500_MAC1_ENABLE 0x11520004 /* Grr, difference on Au1500 */
161 1.1 simonb
162 1.1 simonb #define MAC0_DMA_BASE 0x14004000
163 1.1 simonb #define MAC1_DMA_BASE 0x14004200
164 1.1 simonb #define MACx_DMA_SIZE 0x140
165 1.1 simonb
166 1.1 simonb /************************************************************************/
167 1.13 gdamore /********************** Static Bus registers ************************/
168 1.13 gdamore /************************************************************************/
169 1.13 gdamore #define STATIC_BUS_BASE 0x14001000
170 1.13 gdamore
171 1.13 gdamore /************************************************************************/
172 1.1 simonb /******************** Secure Digital registers **********************/
173 1.1 simonb /************************************************************************/
174 1.1 simonb #define SD0_BASE 0x10600000
175 1.1 simonb #define SD1_BASE 0x10680000
176 1.1 simonb
177 1.1 simonb /************************************************************************/
178 1.1 simonb /************************* I^2S registers ***************************/
179 1.1 simonb /************************************************************************/
180 1.1 simonb #define I2S_BASE 0x11000000
181 1.1 simonb
182 1.1 simonb /************************************************************************/
183 1.1 simonb /************************** UART registers **************************/
184 1.1 simonb /************************************************************************/
185 1.1 simonb
186 1.11 gdamore #define UART0_BASE 0x11100000
187 1.11 gdamore #define UART1_BASE 0x11200000
188 1.11 gdamore #define UART2_BASE 0x11300000
189 1.11 gdamore #define UART3_BASE 0x11400000
190 1.1 simonb
191 1.1 simonb /************************************************************************/
192 1.1 simonb /************************* SSI registers ****************************/
193 1.1 simonb /************************************************************************/
194 1.1 simonb #define SSI0_BASE 0x11600000
195 1.1 simonb #define SSI1_BASE 0x11680000
196 1.1 simonb
197 1.1 simonb /************************************************************************/
198 1.1 simonb /************************ GPIO2 registers ***************************/
199 1.1 simonb /************************************************************************/
200 1.13 gdamore #define GPIO_BASE 0x11900100
201 1.13 gdamore
202 1.13 gdamore /************************************************************************/
203 1.13 gdamore /************************ GPIO2 registers ***************************/
204 1.13 gdamore /************************************************************************/
205 1.1 simonb #define GPIO2_BASE 0x11700000
206 1.1 simonb
207 1.1 simonb /************************************************************************/
208 1.8 gdamore /************************* PCI registers ****************************/
209 1.8 gdamore /************************************************************************/
210 1.8 gdamore #define PCI_BASE 0x14005000
211 1.8 gdamore #define PCI_HEADER 0x14005100
212 1.8 gdamore #define PCI_MEM_BASE 0x400000000ULL
213 1.8 gdamore #define PCI_IO_BASE 0x500000000ULL
214 1.8 gdamore #define PCI_CONFIG_BASE 0x600000000ULL
215 1.8 gdamore
216 1.8 gdamore /************************************************************************/
217 1.12 gdamore /*********************** PCMCIA registers ***************************/
218 1.12 gdamore /************************************************************************/
219 1.13 gdamore #define PCMCIA_BASE 0xF00000000ULL
220 1.12 gdamore
221 1.12 gdamore /************************************************************************/
222 1.1 simonb /****************** Programmable Counter registers ******************/
223 1.1 simonb /************************************************************************/
224 1.1 simonb
225 1.1 simonb #define SYS_BASE 0x11900000
226 1.1 simonb
227 1.1 simonb #define PC_BASE SYS_BASE
228 1.1 simonb
229 1.1 simonb #define PC_TRIM0 0x00 /* PC0 Divide (16 bits) */
230 1.1 simonb #define PC_COUNTER_WRITE0 0x04 /* set PC0 */
231 1.1 simonb #define PC_MATCH0_0 0x08 /* match counter & interrupt */
232 1.1 simonb #define PC_MATCH1_0 0x0c /* match counter & interrupt */
233 1.1 simonb #define PC_MATCH2_0 0x10 /* match counter & interrupt */
234 1.1 simonb #define PC_COUNTER_CONTROL 0x14 /* Programmable Counter Control */
235 1.1 simonb #define CC_E1S 0x00800000 /* Enable PC1 write status */
236 1.1 simonb #define CC_T1S 0x00100000 /* Trim PC1 write status */
237 1.1 simonb #define CC_M21 0x00080000 /* Match 2 of PC1 write status */
238 1.1 simonb #define CC_M11 0x00040000 /* Match 1 of PC1 write status */
239 1.1 simonb #define CC_M01 0x00020000 /* Match 0 of PC1 write status */
240 1.1 simonb #define CC_C1S 0x00010000 /* PC1 write status */
241 1.1 simonb #define CC_BP 0x00004000 /* Bypass OSC (use GPIO1) */
242 1.1 simonb #define CC_EN1 0x00002000 /* Enable PC1 */
243 1.1 simonb #define CC_BT1 0x00001000 /* Bypass Trim on PC1 */
244 1.1 simonb #define CC_EN0 0x00000800 /* Enable PC0 */
245 1.1 simonb #define CC_BT0 0x00000400 /* Bypass Trim on PC0 */
246 1.1 simonb #define CC_EO 0x00000100 /* Enable Oscillator */
247 1.1 simonb #define CC_E0S 0x00000080 /* Enable PC0 write status */
248 1.1 simonb #define CC_32S 0x00000020 /* 32.768kHz OSC status */
249 1.1 simonb #define CC_T0S 0x00000010 /* Trim PC0 write status */
250 1.1 simonb #define CC_M20 0x00000008 /* Match 2 of PC0 write status */
251 1.1 simonb #define CC_M10 0x00000004 /* Match 1 of PC0 write status */
252 1.1 simonb #define CC_M00 0x00000002 /* Match 0 of PC0 write status */
253 1.1 simonb #define CC_C0S 0x00000001 /* PC0 write status */
254 1.1 simonb #define PC_COUNTER_READ_0 0x40 /* get PC0 */
255 1.1 simonb #define PC_TRIM1 0x44 /* PC1 Divide (16 bits) */
256 1.1 simonb #define PC_COUNTER_WRITE1 0x48 /* set PC1 */
257 1.1 simonb #define PC_MATCH0_1 0x4c /* match counter & interrupt */
258 1.1 simonb #define PC_MATCH1_1 0x50 /* match counter & interrupt */
259 1.1 simonb #define PC_MATCH2_1 0x54 /* match counter & interrupt */
260 1.1 simonb #define PC_COUNTER_READ_1 0x58 /* get PC1 */
261 1.1 simonb
262 1.1 simonb #define PC_SIZE 0x5c /* size of register set */
263 1.1 simonb #define PC_RATE 32768 /* counter rate is 32.768kHz */
264 1.3 hpeyerl
265 1.3 hpeyerl /************************************************************************/
266 1.3 hpeyerl /******************* Frequency Generator Registers ******************/
267 1.3 hpeyerl /************************************************************************/
268 1.3 hpeyerl
269 1.3 hpeyerl #define SYS_FREQCTRL0 (SYS_BASE + 0x20)
270 1.3 hpeyerl #define SFC_FRDIV2(f) (f<<22) /* 29:22. Freq Divider 2 */
271 1.3 hpeyerl #define SFC_FE2 (1<<21) /* Freq generator output enable 2 */
272 1.3 hpeyerl #define SFC_FS2 (1<<20) /* Freq generator source 2 */
273 1.3 hpeyerl #define SFC_FRDIV1(f) (f<<12) /* 19:12. Freq Divider 1 */
274 1.3 hpeyerl #define SFC_FE1 (1<<11) /* Freq generator output enable 1 */
275 1.3 hpeyerl #define SFC_FS1 (1<<10) /* Freq generator source 1 */
276 1.3 hpeyerl #define SFC_FRDIV0(f) (f<<2) /* 9:2. Freq Divider 0 */
277 1.3 hpeyerl #define SFC_FE0 2 /* Freq generator output enable 0 */
278 1.3 hpeyerl #define SFC_FS0 1 /* Freq generator source 0 */
279 1.3 hpeyerl
280 1.3 hpeyerl #define SYS_FREQCTRL1 (SYS_BASE + 0x24)
281 1.3 hpeyerl #define SFC_FRDIV5(f) (f<<22) /* 29:22. Freq Divider 5 */
282 1.3 hpeyerl #define SFC_FE5 (1<<21) /* Freq generator output enable 5 */
283 1.3 hpeyerl #define SFC_FS5 (1<<20) /* Freq generator source 5 */
284 1.3 hpeyerl #define SFC_FRDIV4(f) (f<<12) /* 19:12. Freq Divider 4 */
285 1.3 hpeyerl #define SFC_FE4 (1<<11) /* Freq generator output enable 4 */
286 1.3 hpeyerl #define SFC_FS4 (1<<10) /* Freq generator source 4 */
287 1.3 hpeyerl #define SFC_FRDIV3(f) (f<<2) /* 9:2. Freq Divider 3 */
288 1.3 hpeyerl #define SFC_FE3 2 /* Freq generator output enable 3 */
289 1.3 hpeyerl #define SFC_FS3 1 /* Freq generator source 3 */
290 1.3 hpeyerl
291 1.3 hpeyerl /************************************************************************/
292 1.3 hpeyerl /****************** Clock Source Control Registers ******************/
293 1.3 hpeyerl /************************************************************************/
294 1.3 hpeyerl
295 1.3 hpeyerl #define SYS_CLKSRC (SYS_BASE + 0x28)
296 1.3 hpeyerl #define SCS_ME1(n) (n<<27) /* EXTCLK1 Clock Mux input select */
297 1.3 hpeyerl #define SCS_ME0(n) (n<<22) /* EXTCLK0 Clock Mux input select */
298 1.3 hpeyerl #define SCS_MPC(n) (n<<17) /* PCI clock mux input select */
299 1.3 hpeyerl #define SCS_MUH(n) (n<<12) /* USB Host clock mux input select */
300 1.3 hpeyerl #define SCS_MUD(n) (n<<7) /* USB Device clock mux input select */
301 1.3 hpeyerl #define SCS_MEx_AUX 0x1 /* Aux clock */
302 1.3 hpeyerl #define SCS_MEx_FREQ0 0x2 /* FREQ0 */
303 1.3 hpeyerl #define SCS_MEx_FREQ1 0x3 /* FREQ1 */
304 1.3 hpeyerl #define SCS_MEx_FREQ2 0x4 /* FREQ2 */
305 1.3 hpeyerl #define SCS_MEx_FREQ3 0x5 /* FREQ3 */
306 1.3 hpeyerl #define SCS_MEx_FREQ4 0x6 /* FREQ4 */
307 1.3 hpeyerl #define SCS_MEx_FREQ5 0x7 /* FREQ5 */
308 1.3 hpeyerl #define SCS_DE1 (1<<26) /* EXTCLK1 clock divider select */
309 1.3 hpeyerl #define SCS_CE1 (1<<25) /* EXTCLK1 clock select */
310 1.3 hpeyerl #define SCS_DE0 (1<<21) /* EXTCLK0 clock divider select */
311 1.3 hpeyerl #define SCS_CE0 (1<<20) /* EXTCLK0 clock select */
312 1.3 hpeyerl #define SCS_DPC (1<<16) /* PCI clock divider select */
313 1.3 hpeyerl #define SCS_CPC (1<<15) /* PCI clock select */
314 1.3 hpeyerl #define SCS_DUH (1<<11) /* USB Host clock divider select */
315 1.3 hpeyerl #define SCS_CUH (1<<10) /* USB Host clock select */
316 1.3 hpeyerl #define SCS_DUD (1<<6) /* USB Device clock divider select */
317 1.3 hpeyerl #define SCS_CUD (1<<5) /* USB Device clock select */
318 1.3 hpeyerl
319 1.3 hpeyerl /************************************************************************/
320 1.3 hpeyerl /*************************** PLL Control *****************************/
321 1.3 hpeyerl /************************************************************************/
322 1.3 hpeyerl
323 1.3 hpeyerl #define SYS_CPUPLL (SYS_BASE + 0x60)
324 1.3 hpeyerl #define SYS_AUXPLL (SYS_BASE + 0x64)
325 1.11 gdamore
326 1.11 gdamore #endif /* _MIPS_ALCHEMY_AUREG_H */
327