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