dmac3reg.h revision 1.2 1 1.2 tsutsui /* $NetBSD: dmac3reg.h,v 1.2 2008/04/09 15:40:30 tsutsui Exp $ */
2 1.1 tsubai
3 1.1 tsubai /*-
4 1.1 tsubai * Copyright (c) 2000 Tsubai Masanari. All rights reserved.
5 1.1 tsubai *
6 1.1 tsubai * Redistribution and use in source and binary forms, with or without
7 1.1 tsubai * modification, are permitted provided that the following conditions
8 1.1 tsubai * are met:
9 1.1 tsubai * 1. Redistributions of source code must retain the above copyright
10 1.1 tsubai * notice, this list of conditions and the following disclaimer.
11 1.1 tsubai * 2. Redistributions in binary form must reproduce the above copyright
12 1.1 tsubai * notice, this list of conditions and the following disclaimer in the
13 1.1 tsubai * documentation and/or other materials provided with the distribution.
14 1.1 tsubai * 3. The name of the author may not be used to endorse or promote products
15 1.1 tsubai * derived from this software without specific prior written permission.
16 1.1 tsubai *
17 1.1 tsubai * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 1.1 tsubai * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 1.1 tsubai * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 1.1 tsubai * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 1.1 tsubai * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 1.1 tsubai * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 1.1 tsubai * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 1.1 tsubai * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 1.1 tsubai * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 1.1 tsubai * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 1.1 tsubai */
28 1.1 tsubai
29 1.1 tsubai struct dmac3reg {
30 1.2 tsutsui volatile uint32_t csr;
31 1.2 tsutsui volatile uint32_t intr;
32 1.2 tsutsui volatile uint32_t len;
33 1.2 tsutsui volatile uint32_t addr;
34 1.2 tsutsui volatile uint32_t conf;
35 1.1 tsubai };
36 1.1 tsubai
37 1.1 tsubai #define DMAC3_CSR_DBURST 0x0020
38 1.1 tsubai #define DMAC3_CSR_MBURST 0x0010
39 1.1 tsubai #define DMAC3_CSR_APAD 0x0008
40 1.1 tsubai #define DMAC3_CSR_RESET 0x0004
41 1.1 tsubai #define DMAC3_CSR_RECV 0x0002
42 1.1 tsubai #define DMAC3_CSR_SEND 0x0000
43 1.1 tsubai #define DMAC3_CSR_ENABLE 0x0001
44 1.1 tsubai
45 1.1 tsubai #define DMAC3_INTR_PERR 0x8000
46 1.1 tsubai #define DMAC3_INTR_DRQI 0x4000
47 1.1 tsubai #define DMAC3_INTR_DRQIE 0x2000
48 1.1 tsubai #define DMAC3_INTR_DREQ 0x1000
49 1.1 tsubai #define DMAC3_INTR_EOPI 0x0400
50 1.1 tsubai #define DMAC3_INTR_EOPIE 0x0200
51 1.1 tsubai #define DMAC3_INTR_EOP 0x0100
52 1.1 tsubai #define DMAC3_INTR_TCI 0x0040
53 1.1 tsubai #define DMAC3_INTR_TCIE 0x0020
54 1.1 tsubai #define DMAC3_INTR_INTEN 0x0002
55 1.1 tsubai #define DMAC3_INTR_INT 0x0001
56 1.1 tsubai
57 1.1 tsubai #define DMAC3_CONF_IPER 0x8000
58 1.1 tsubai #define DMAC3_CONF_MPER 0x4000
59 1.1 tsubai #define DMAC3_CONF_PCEN 0x2000
60 1.1 tsubai #define DMAC3_CONF_DERR 0x1000
61 1.1 tsubai #define DMAC3_CONF_DCEN 0x0800
62 1.1 tsubai #define DMAC3_CONF_ODDP 0x0200
63 1.1 tsubai #define DMAC3_CONF_WIDTH 0x00ff
64 1.1 tsubai #define DMAC3_CONF_SLOWACCESS 0x0020
65 1.1 tsubai #define DMAC3_CONF_FASTACCESS 0x0001
66 1.1 tsubai
67 1.1 tsubai
68 1.1 tsubai #define DMAC3_PAGEMAP 0xb4c20000
69 1.1 tsubai #define DMAC3_MAPSIZE 0x20000
70 1.1 tsubai
71 1.1 tsubai struct dma_pte {
72 1.2 tsutsui uint32_t pad1;
73 1.2 tsutsui uint32_t valid:1,
74 1.1 tsubai coherent:1, /* ? */
75 1.1 tsubai pad2:10, /* ? */
76 1.1 tsubai pfnum:20;
77 1.1 tsubai };
78 1.1 tsubai
79 1.1 tsubai struct dmac3_softc;
80 1.2 tsutsui struct dmac3_softc *dmac3_link(int);
81 1.1 tsubai void dmac3_reset(struct dmac3_softc *);
82 1.1 tsubai void dmac3_start(struct dmac3_softc *, vaddr_t, int, int);
83 1.1 tsubai int dmac3_intr(void *);
84 1.1 tsubai void dmac3_misc(struct dmac3_softc *, int);
85