xref: /netbsd/sys/arch/newsmips/dev/dmac_0448.h (revision c4a72b64)
1 /*	$NetBSD: dmac_0448.h,v 1.3 2002/05/31 21:19:03 thorpej Exp $	*/
2 /*
3  * Copyright (c) 1992, 1993
4  *	The Regents of the University of California.  All rights reserved.
5  *
6  * This code is derived from software contributed to Berkeley by
7  * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  * 3. All advertising materials mentioning features or use of this software
18  *    must display the following acknowledgement:
19  *	This product includes software developed by the University of
20  *	California, Berkeley and its contributors.
21  * 4. Neither the name of the University nor the names of its contributors
22  *    may be used to endorse or promote products derived from this software
23  *    without specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35  * SUCH DAMAGE.
36  *
37  * from: $Hdr: dmac_0448.h,v 4.300 91/06/09 06:21:36 root Rel41 $ SONY
38  *
39  *	@(#)dmac_0448.h	8.1 (Berkeley) 6/11/93
40  */
41 
42 /*
43  * Copyright (c) 1989- by SONY Corporation.
44  */
45 /*
46  *	dmac_0448.h
47  *		DMAC L7A0448
48  */
49 
50 /*	dmac register base address	*/
51 #define DMAC_BASE		0xbfe00000
52 
53 /*	register definition	*/
54 #define DMAC_GSTAT		(DMAC_BASE + 0xf)
55 #define DMAC_GSEL		(DMAC_BASE + 0xe)
56 
57 #define DMAC_CSTAT		(DMAC_BASE + 0x2)
58 #define DMAC_CCTL		(DMAC_BASE + 0x3)
59 #define DMAC_CTRCL		(DMAC_BASE + 0x4)
60 #define DMAC_CTRCM		(DMAC_BASE + 0x5)
61 #define DMAC_CTRCH		(DMAC_BASE + 0x6)
62 #define DMAC_CTAG		(DMAC_BASE + 0x7)
63 #define DMAC_CWID		(DMAC_BASE + 0x8)
64 #define DMAC_COFSL		(DMAC_BASE + 0x9)
65 #define DMAC_COFSH		(DMAC_BASE + 0xa)
66 #define DMAC_CMAP		(DMAC_BASE + 0xc)
67 #define DMAC_CMAPH		(DMAC_BASE + 0xc)
68 #define DMAC_CMAPL		(DMAC_BASE + 0xd)
69 
70 #ifdef __mips__
71 #define	VOLATILE	volatile
72 #else
73 #define	VOLATILE
74 #endif
75 
76 #ifndef U_CHAR
77 #define U_CHAR	unsigned VOLATILE char
78 #endif
79 
80 #ifndef U_SHORT
81 #define U_SHORT	unsigned VOLATILE short
82 #endif
83 
84 #define dmac_gstat		*(U_CHAR *)DMAC_GSTAT
85 #define dmac_gsel		*(U_CHAR *)DMAC_GSEL
86 
87 #define dmac_cstat		*(U_CHAR *)DMAC_CSTAT
88 #define dmac_cctl		*(U_CHAR *)DMAC_CCTL
89 #define dmac_ctrcl		*(U_CHAR *)DMAC_CTRCL
90 #define dmac_ctrcm		*(U_CHAR *)DMAC_CTRCM
91 #define dmac_ctrch		*(U_CHAR *)DMAC_CTRCH
92 #define dmac_ctag		*(U_CHAR *)DMAC_CTAG
93 #define dmac_cwid		*(U_CHAR *)DMAC_CWID
94 #define dmac_cofsl		*(U_CHAR *)DMAC_COFSL
95 #define dmac_cofsh		*(U_CHAR *)DMAC_COFSH
96 #define dmac_cmap		*(U_SHORT *)DMAC_CMAP
97 #define dmac_cmaph		*(U_CHAR *)DMAC_CMAPH
98 #define dmac_cmapl		*(U_CHAR *)DMAC_CMAPL
99 
100 /*	status/control bit definition	*/
101 #define	DM_TCZ			0x80
102 #define	DM_A28			0x40
103 #define	DM_AFIX			0x20
104 #define	DM_APAD			0x10
105 #define	DM_ZINTEN		0x8
106 #define	DM_RST			0x4
107 #define	DM_MODE			0x2
108 #define DM_ENABLE		1
109 
110 /*	general status bit definition	*/
111 #define CH_INT(x)		(u_char)(1 << (2 * x))
112 #define CH0_INT			1
113 #define CH1_INT			4
114 #define CH2_INT			0x10
115 #define CH3_INT			0x40
116 
117 #define CH_MRQ(x)		(u_char)(1 << (2 * x + 1))
118 #define CH0_MRQ			2
119 #define CH1_MRQ			8
120 #define CH2_MRQ			0x20
121 #define CH3_MRQ			0x80
122 
123 /*	channel definition	*/
124 #define	CH_SCSI			0
125 #define	CH_FDC			1
126 #define	CH_AUDIO		2
127 #define	CH_VIDEO		3
128 
129 /*	dma status		*/
130 
131 	struct	dm_stat {
132 		unsigned int dm_gstat;
133 		unsigned int dm_cstat;
134 		unsigned int dm_cctl;
135 		unsigned int dm_tcnt;
136 		unsigned int dm_offset;
137 		unsigned int dm_tag;
138 		unsigned int dm_width;
139 	} ;
140 
141 #define	DMAC_WAIT	nops(10)
142 
143 #define PINTEN		0xbfc80001
144 # define	DMA_INTEN	0x10
145 #define PINTSTAT	0xbfc80003
146