xref: /freebsd/sys/isa/isa_dmareg.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1b22bf660SYoshihiro Takahashi /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3fe267a55SPedro F. Giffuni  *
4b22bf660SYoshihiro Takahashi  * Copyright (C) 2005 TAKAHASHI Yoshihiro. All rights reserved.
5b22bf660SYoshihiro Takahashi  *
6b22bf660SYoshihiro Takahashi  * Redistribution and use in source and binary forms, with or without
7b22bf660SYoshihiro Takahashi  * modification, are permitted provided that the following conditions
8b22bf660SYoshihiro Takahashi  * are met:
9b22bf660SYoshihiro Takahashi  * 1. Redistributions of source code must retain the above copyright
10b22bf660SYoshihiro Takahashi  *    notice, this list of conditions and the following disclaimer.
11b22bf660SYoshihiro Takahashi  * 2. Redistributions in binary form must reproduce the above copyright
12b22bf660SYoshihiro Takahashi  *    notice, this list of conditions and the following disclaimer in the
13b22bf660SYoshihiro Takahashi  *    documentation and/or other materials provided with the distribution.
14b22bf660SYoshihiro Takahashi  *
15b22bf660SYoshihiro Takahashi  * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16b22bf660SYoshihiro Takahashi  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17b22bf660SYoshihiro Takahashi  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18b22bf660SYoshihiro Takahashi  * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
19b22bf660SYoshihiro Takahashi  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20b22bf660SYoshihiro Takahashi  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21b22bf660SYoshihiro Takahashi  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22b22bf660SYoshihiro Takahashi  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23b22bf660SYoshihiro Takahashi  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24b22bf660SYoshihiro Takahashi  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25b22bf660SYoshihiro Takahashi  * SUCH DAMAGE.
26b22bf660SYoshihiro Takahashi  */
27b22bf660SYoshihiro Takahashi 
28b22bf660SYoshihiro Takahashi #ifndef _ISA_ISA_DMAREG_H_
29b22bf660SYoshihiro Takahashi #define _ISA_ISA_DMAREG_H_
30b22bf660SYoshihiro Takahashi 
31b22bf660SYoshihiro Takahashi #include <dev/ic/i8237.h>
32b22bf660SYoshihiro Takahashi 
33b22bf660SYoshihiro Takahashi #define	IO_DMA1		0x00			/* 8237A DMA Controller #1 */
34b22bf660SYoshihiro Takahashi #define	IO_DMA2		0xC0			/* 8237A DMA Controller #2 */
35b22bf660SYoshihiro Takahashi 
36b22bf660SYoshihiro Takahashi /*
37b22bf660SYoshihiro Takahashi  * Register definitions for DMA controller 1 (channels 0..3):
38b22bf660SYoshihiro Takahashi  */
39b22bf660SYoshihiro Takahashi #define	DMA1_CHN(c)	(IO_DMA1 + 1*(2*(c)))	/* addr reg for channel c */
40b22bf660SYoshihiro Takahashi #define	DMA1_STATUS	(IO_DMA1 + 1*8)		/* status register */
41b22bf660SYoshihiro Takahashi #define	DMA1_SMSK	(IO_DMA1 + 1*10)	/* single mask register */
42b22bf660SYoshihiro Takahashi #define	DMA1_MODE	(IO_DMA1 + 1*11)	/* mode register */
43b22bf660SYoshihiro Takahashi #define	DMA1_FFC	(IO_DMA1 + 1*12)	/* clear first/last FF */
44b22bf660SYoshihiro Takahashi #define	DMA1_RESET	(IO_DMA1 + 1*13)	/* reset */
45b22bf660SYoshihiro Takahashi 
46b22bf660SYoshihiro Takahashi /*
47b22bf660SYoshihiro Takahashi  * Register definitions for DMA controller 2 (channels 4..7):
48b22bf660SYoshihiro Takahashi  */
49b22bf660SYoshihiro Takahashi #define	DMA2_CHN(c)	(IO_DMA2 + 2*(2*(c)))	/* addr reg for channel c */
50b22bf660SYoshihiro Takahashi #define	DMA2_STATUS	(IO_DMA2 + 2*8)		/* status register */
51b22bf660SYoshihiro Takahashi #define	DMA2_SMSK	(IO_DMA2 + 2*10)	/* single mask register */
52b22bf660SYoshihiro Takahashi #define	DMA2_MODE	(IO_DMA2 + 2*11)	/* mode register */
53b22bf660SYoshihiro Takahashi #define	DMA2_FFC	(IO_DMA2 + 2*12)	/* clear first/last FF */
54b22bf660SYoshihiro Takahashi #define	DMA2_RESET	(IO_DMA2 + 2*13)	/* reset */
55b22bf660SYoshihiro Takahashi 
56b22bf660SYoshihiro Takahashi #endif /* _ISA_ISA_DMAREG_H_ */
57