z8530var.h revision 1.3 1 /* $NetBSD: z8530var.h,v 1.3 2003/08/07 16:30:28 agc Exp $ */
2
3 /*
4 * Copyright (c) 1992, 1993
5 * The Regents of the University of California. All rights reserved.
6 *
7 * This software was developed by the Computer Systems Engineering group
8 * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
9 * contributed to Berkeley.
10 *
11 * All advertising materials mentioning features or use of this software
12 * must display the following acknowledgement:
13 * This product includes software developed by the University of
14 * California, Lawrence Berkeley Laboratory.
15 *
16 * Redistribution and use in source and binary forms, with or without
17 * modification, are permitted provided that the following conditions
18 * are met:
19 * 1. Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 * 2. Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution.
24 * 3. Neither the name of the University nor the names of its contributors
25 * may be used to endorse or promote products derived from this software
26 * without specific prior written permission.
27 *
28 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 * SUCH DAMAGE.
39 *
40 * @(#)zsvar.h 8.1 (Berkeley) 6/11/93
41 */
42
43 /*
44 * Copyright (c) 1998 Minoura Makoto
45 * Copyright (c) 1994 Gordon W. Ross
46 *
47 * This software was developed by the Computer Systems Engineering group
48 * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
49 * contributed to Berkeley.
50 *
51 * All advertising materials mentioning features or use of this software
52 * must display the following acknowledgement:
53 * This product includes software developed by the University of
54 * California, Lawrence Berkeley Laboratory.
55 *
56 * Redistribution and use in source and binary forms, with or without
57 * modification, are permitted provided that the following conditions
58 * are met:
59 * 1. Redistributions of source code must retain the above copyright
60 * notice, this list of conditions and the following disclaimer.
61 * 2. Redistributions in binary form must reproduce the above copyright
62 * notice, this list of conditions and the following disclaimer in the
63 * documentation and/or other materials provided with the distribution.
64 * 3. All advertising materials mentioning features or use of this software
65 * must display the following acknowledgement:
66 * This product includes software developed by the University of
67 * California, Berkeley and its contributors.
68 * 4. Neither the name of the University nor the names of its contributors
69 * may be used to endorse or promote products derived from this software
70 * without specific prior written permission.
71 *
72 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
73 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
74 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
75 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
76 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
77 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
78 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
79 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
80 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
81 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
82 * SUCH DAMAGE.
83 *
84 * @(#)zsvar.h 8.1 (Berkeley) 6/11/93
85 */
86
87 #include <machine/bus.h>
88 #include <dev/ic/z8530sc.h>
89
90
91 #define ZS_DELAY() delay(2)
92
93 /* The layout of this is hardware-dependent (padding, order). */
94 struct zschan {
95 u_char zc_xxx0;
96 volatile u_char zc_csr; /* ctrl,status, and indirect access */
97 u_char zc_xxx1;
98 volatile u_char zc_data; /* data */
99 };
100 struct zsdevice {
101 /* Yes, they are backwards. */
102 struct zschan zs_chan_b;
103 struct zschan zs_chan_a;
104 };
105
106 struct zsc_softc {
107 struct device zsc_dev; /* required first: base device */
108 struct zs_chanstate *zsc_cs[2]; /* channel A and B soft state */
109 /* Machine-dependent part follows... */
110 struct zs_chanstate zsc_cs_store[2];
111 struct zsdevice *zsc_addr;
112 };
113
114 /*
115 * Functions to read and write individual registers in a channel.
116 * The ZS chip requires a 1.6 uSec. recovery time between accesses,
117 * and the Sun3 hardware does NOT take care of this for you.
118 * The delay is now handled inside the chip access functions.
119 * These could be inlines, but with the delay, speed is moot.
120 */
121
122 u_char zs_read_reg __P((struct zs_chanstate *cs, u_char reg));
123 u_char zs_read_csr __P((struct zs_chanstate *cs));
124 u_char zs_read_data __P((struct zs_chanstate *cs));
125
126 void zs_write_reg __P((struct zs_chanstate *cs, u_char reg, u_char val));
127 void zs_write_csr __P((struct zs_chanstate *cs, u_char val));
128 void zs_write_data __P((struct zs_chanstate *cs, u_char val));
129
130 /*
131 * Physical address for built-in ZS.
132 */
133 #define ZSCN_PHYSADDR 0xe98004 /* for serial console */
134 #define ZSMS_PHYSADDR 0xe98000 /* for mouse */
135