xref: /netbsd-src/sys/arch/hpcmips/tx/tx39ioreg.h (revision 4472dbe5e3bd91ef2540bada7a7ca7384627ff9b)
1 /*	$NetBSD: tx39ioreg.h,v 1.2 2000/01/16 21:47:00 uch Exp $ */
2 
3 /*
4  * Copyright (c) 1999, by UCHIYAMA Yasushi
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. The name of the developer may NOT be used to endorse or promote products
13  *    derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25  * SUCH DAMAGE.
26  *
27  */
28 /*
29  * TOSHIBA TX3912/TX3922 IO module
30  */
31 
32 #define	TX39_IOCTRL_REG			0x180
33 #define	TX39_IOMFIODATAOUT_REG		0x184
34 #define	TX39_IOMFIODATADIR_REG		0x188
35 #define	TX39_IOMFIODATAIN_REG		0x18c
36 #define	TX39_IOMFIODATASEL_REG		0x190
37 #define	TX39_IOIOPOWERDWN_REG		0x194
38 #define	TX39_IOMFIOPOWERDWN_REG		0x198
39 #ifdef TX392X
40 #define TX39_IODATAINOUT_REG		0x19c
41 #endif /* TX392X */
42 
43 #define TX39_IO_MFIO_MAX		32
44 #ifdef TX391X
45 #define TX39_IO_IO_MAX			7
46 #endif /* TX391X */
47 #ifdef TX392X
48 #define TX39_IO_IO_MAX			16
49 #endif /* TX392X */
50 
51 /*
52  *	IO Control Register
53  */
54 #ifdef TX391X
55 #define TX39_IOCTRL_IODEBSEL_SHIFT	24
56 #define TX39_IOCTRL_IODEBSEL_MASK	0x7f
57 #define TX39_IOCTRL_IODEBSEL(cr) \
58 	(((cr) >> TX39_IOCTRL_IODEBSEL_SHIFT) & \
59 	TX39_IOCTRL_IODEBSEL_MASK)
60 #define TX39_IOCTRL_IODEBSEL_SET(cr, val) \
61 	((cr) | (((val) << TX39_IOCTRL_IODEBSEL_SHIFT) & \
62 	(TX39_IOCTRL_IODEBSEL_MASK << TX39_IOCTRL_IODEBSEL_SHIFT)))
63 
64 #define TX39_IOCTRL_IODIREC_SHIFT	16
65 #define TX39_IOCTRL_IODIREC_MASK	0x7f
66 #define TX39_IOCTRL_IODIREC(cr) \
67 	(((cr) >> TX39_IOCTRL_IODIREC_SHIFT) & \
68 	TX39_IOCTRL_IODIREC_MASK)
69 #define TX39_IOCTRL_IODIREC_SET(cr, val) \
70 	((cr) | (((val) << TX39_IOCTRL_IODIREC_SHIFT) & \
71 	(TX39_IOCTRL_IODIREC_MASK << TX39_IOCTRL_IODIREC_SHIFT)))
72 
73 #define TX39_IOCTRL_IODOUT_SHIFT	8
74 #define TX39_IOCTRL_IODOUT_MASK		0x7f
75 #define TX39_IOCTRL_IODOUT(cr) \
76 	(((cr) >> TX39_IOCTRL_IODOUT_SHIFT) & \
77 	TX39_IOCTRL_IODOUT_MASK)
78 #define TX39_IOCTRL_IODOUT_CLR(cr) \
79 	((cr) &= ~(TX39_IOCTRL_IODOUT_MASK << TX39_IOCTRL_IODOUT_SHIFT))
80 #define TX39_IOCTRL_IODOUT_SET(cr, val) \
81 	((cr) | (((val) << TX39_IOCTRL_IODOUT_SHIFT) & \
82 	(TX39_IOCTRL_IODOUT_MASK << TX39_IOCTRL_IODOUT_SHIFT)))
83 
84 #define TX39_IOCTRL_IODIN_SHIFT	0
85 #define TX39_IOCTRL_IODIN_MASK	0x7f
86 #define TX39_IOCTRL_IODIN(cr) \
87 	(((cr) >> TX39_IOCTRL_IODIN_SHIFT) & \
88 	TX39_IOCTRL_IODIN_MASK)
89 #endif /* TX391X */
90 
91 #ifdef TX392X
92 #define TX39_IOCTRL_IODEBSEL_SHIFT	16
93 #define TX39_IOCTRL_IODEBSEL_MASK	0xffff
94 #define TX39_IOCTRL_IODEBSEL(cr) \
95 	(((cr) >> TX39_IOCTRL_IODEBSEL_SHIFT) & \
96 	TX39_IOCTRL_IODEBSEL_MASK)
97 #define TX39_IOCTRL_IODEBSEL_SET(cr, val) \
98 	((cr) | (((val) << TX39_IOCTRL_IODEBSEL_SHIFT) & \
99 	(TX39_IOCTRL_IODEBSEL_MASK << TX39_IOCTRL_IODEBSEL_SHIFT)))
100 
101 #define TX39_IOCTRL_IODIREC_SHIFT	0
102 #define TX39_IOCTRL_IODIREC_MASK	0xffff
103 #define TX39_IOCTRL_IODIREC(cr) \
104 	(((cr) >> TX39_IOCTRL_IODIREC_SHIFT) & \
105 	TX39_IOCTRL_IODIREC_MASK)
106 #define TX39_IOCTRL_IODIREC_SET(cr, val) \
107 	((cr) | (((val) << TX39_IOCTRL_IODIREC_SHIFT) & \
108 	(TX39_IOCTRL_IODIREC_MASK << TX39_IOCTRL_IODIREC_SHIFT)))
109 
110 #define TX39_IODATAINOUT_DOUT_SHIFT	16
111 #define TX39_IODATAINOUT_DOUT_MASK	0xffff
112 #define TX39_IODATAINOUT_DOUT(cr) \
113 	(((cr) >> TX39_IODATAINOUT_DOUT_SHIFT) & \
114 	TX39_IODATAINOUT_DOUT_MASK)
115 #define TX39_IODATAINOUT_DOUT_SET(cr, val) \
116 	((cr) | (((val) << TX39_IODATAINOUT_DOUT_SHIFT) & \
117 	(TX39_IODATAINOUT_DOUT_MASK << TX39_IODATAINOUT_DOUT_SHIFT)))
118 
119 #define TX39_IODATAINOUT_DIN_SHIFT	0
120 #define TX39_IODATAINOUT_DIN_MASK	0xffff
121 #define TX39_IODATAINOUT_DIN(cr) \
122 	(((cr) >> TX39_IODATAINOUT_DIN_SHIFT) & \
123 	TX39_IODATAINOUT_DIN_MASK)
124 #define TX39_IODATAINOUT_DIN_SET(cr, val) \
125 	((cr) | (((val) << TX39_IODATAINOUT_DIN_SHIFT) & \
126 	(TX39_IODATAINOUT_DIN_MASK << TX39_IODATAINOUT_DIN_SHIFT)))
127 #endif /* TX392X */
128 /*
129  *	MFIO Data Output Register
130  */
131 #define TX39_IOMFIODATAOUT_MFIODOUT	0
132 
133 /*
134  *	MFIO Data Direction Register
135  */
136 #define TX39_IOMFIODATADIR_MFIODIREC	0
137 
138 /*
139  *	MFIO Data Input Register
140  */
141 #define TX39_IOMFIODATAIN_MFIODIN	0
142 
143 /*
144  *	MFIO Data Select Register
145  */
146 #define TX39_IOMFIODATASEL_MFIOSEL		0
147 #define TX39_IOMFIODATASEL_MFIOSEL_RESET	0xf20f0fff
148 
149 /*
150  *	IO Power Down Register
151  */
152 #define TX39_IOIOPOWERDWN_IOPD_SHIFT	0
153 #ifdef TX391X
154 #define TX39_IOIOPOWERDWN_IOPD_MASK	0x7f
155 #define TX39_IOIOPOWERDWN_IOPD_RESET	0x7f
156 #endif /* TX391X */
157 #ifdef TX392X
158 #define TX39_IOIOPOWERDWN_IOPD_MASK	0xffff
159 #define TX39_IOIOPOWERDWN_IOPD_RESET	0x0fff
160 #endif /* TX392X */
161 #define TX39_IOIOPOWERDWN_IOPD(cr) \
162 	(((cr) >> TX39_IOIOPOWERDWN_IOPD_SHIFT) & \
163 	TX39_IOIOPOWERDWN_IOPD_MASK)
164 #define TX39_IOIOPOWERDWN_IOPD_SET(cr, val) \
165 	((cr) | (((val) << TX39_IOIOPOWERDWN_IOPD_SHIFT) & \
166 	(TX39_IOIOPOWERDWN_IOPD_MASK << TX39_IOIOPOWERDOWN_IOPD_SHIFT)))
167 
168 
169 /*
170  *	MFIO Power Down Register
171  */
172 #define	TX39_IOMFIOPOWERDWN_MFIOPD		0
173 #define	TX39_IOMFIOPOWERDWN_MFIOPD_RESET	0xfaf03ffc
174 
175