1 /*
2 	Mantis PCI bridge driver
3 
4 	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
5 
6 	This program is free software; you can redistribute it and/or modify
7 	it under the terms of the GNU General Public License as published by
8 	the Free Software Foundation; either version 2 of the License, or
9 	(at your option) any later version.
10 
11 	This program is distributed in the hope that it will be useful,
12 	but WITHOUT ANY WARRANTY; without even the implied warranty of
13 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 	GNU General Public License for more details.
15 
16 	You should have received a copy of the GNU General Public License
17 	along with this program; if not, write to the Free Software
18 	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20 
21 #ifndef __MANTIS_REG_H
22 #define __MANTIS_REG_H
23 
24 /* Interrupts */
25 #define MANTIS_INT_STAT			0x00
26 #define MANTIS_INT_MASK			0x04
27 
28 #define MANTIS_INT_RISCSTAT		(0x0f << 28)
29 #define MANTIS_INT_RISCEN		(0x01 << 27)
30 #define MANTIS_INT_I2CRACK		(0x01 << 26)
31 
32 /* #define MANTIS_INT_GPIF			(0xff << 12) */
33 
34 #define MANTIS_INT_PCMCIA7		(0x01 << 19)
35 #define MANTIS_INT_PCMCIA6		(0x01 << 18)
36 #define MANTIS_INT_PCMCIA5		(0x01 << 17)
37 #define MANTIS_INT_PCMCIA4		(0x01 << 16)
38 #define MANTIS_INT_PCMCIA3		(0x01 << 15)
39 #define MANTIS_INT_PCMCIA2		(0x01 << 14)
40 #define MANTIS_INT_PCMCIA1		(0x01 << 13)
41 #define MANTIS_INT_PCMCIA0		(0x01 << 12)
42 #define MANTIS_INT_IRQ1			(0x01 << 11)
43 #define MANTIS_INT_IRQ0			(0x01 << 10)
44 #define MANTIS_INT_OCERR		(0x01 <<  8)
45 #define MANTIS_INT_PABORT		(0x01 <<  7)
46 #define MANTIS_INT_RIPERR		(0x01 <<  6)
47 #define MANTIS_INT_PPERR		(0x01 <<  5)
48 #define MANTIS_INT_FTRGT		(0x01 <<  3)
49 #define MANTIS_INT_RISCI		(0x01 <<  1)
50 #define MANTIS_INT_I2CDONE		(0x01 <<  0)
51 
52 /* DMA */
53 #define MANTIS_DMA_CTL			0x08
54 #define MANTIS_GPIF_RD			(0xff << 24)
55 #define MANTIS_GPIF_WR			(0xff << 16)
56 #define MANTIS_CPU_DO			(0x01 << 10)
57 #define MANTIS_DRV_DO			(0x01 <<  9)
58 #define	MANTIS_I2C_RD			(0x01 <<  7)
59 #define MANTIS_I2C_WR			(0x01 <<  6)
60 #define MANTIS_DCAP_MODE		(0x01 <<  5)
61 #define MANTIS_FIFO_TP_4		(0x00 <<  3)
62 #define MANTIS_FIFO_TP_8		(0x01 <<  3)
63 #define MANTIS_FIFO_TP_16		(0x02 <<  3)
64 #define MANTIS_FIFO_EN			(0x01 <<  2)
65 #define MANTIS_DCAP_EN			(0x01 <<  1)
66 #define MANTIS_RISC_EN			(0x01 <<  0)
67 
68 /* DEBUG */
69 #define MANTIS_DEBUGREG			0x0c
70 #define MANTIS_DATINV			(0x0e <<  7)
71 #define MANTIS_TOP_DEBUGSEL		(0x07 <<  4)
72 #define MANTIS_PCMCIA_DEBUGSEL		(0x0f <<  0)
73 
74 #define MANTIS_RISC_START		0x10
75 #define MANTIS_RISC_PC			0x14
76 
77 /* I2C */
78 #define MANTIS_I2CDATA_CTL		0x18
79 #define MANTIS_I2C_RATE_1		(0x00 <<  6)
80 #define MANTIS_I2C_RATE_2		(0x01 <<  6)
81 #define MANTIS_I2C_RATE_3		(0x02 <<  6)
82 #define MANTIS_I2C_RATE_4		(0x03 <<  6)
83 #define MANTIS_I2C_STOP			(0x01 <<  5)
84 #define MANTIS_I2C_PGMODE		(0x01 <<  3)
85 
86 /* DATA */
87 #define MANTIS_CMD_DATA_R1		0x20
88 #define MANTIS_CMD_DATA_3		(0xff << 24)
89 #define MANTIS_CMD_DATA_2		(0xff << 16)
90 #define MANTIS_CMD_DATA_1		(0xff <<  8)
91 #define MANTIS_CMD_DATA_0		(0xff <<  0)
92 
93 #define MANTIS_CMD_DATA_R2		0x24
94 #define MANTIS_CMD_DATA_7		(0xff << 24)
95 #define MANTIS_CMD_DATA_6		(0xff << 16)
96 #define MANTIS_CMD_DATA_5		(0xff <<  8)
97 #define MANTIS_CMD_DATA_4		(0xff <<  0)
98 
99 #define MANTIS_CONTROL			0x28
100 #define MANTIS_DET			(0x01 <<  7)
101 #define MANTIS_DAT_CF_EN		(0x01 <<  6)
102 #define MANTIS_ACS			(0x03 <<  4)
103 #define MANTIS_VCCEN			(0x01 <<  3)
104 #define MANTIS_BYPASS			(0x01 <<  2)
105 #define MANTIS_MRST			(0x01 <<  1)
106 #define MANTIS_CRST_INT			(0x01 <<  0)
107 
108 #define MANTIS_GPIF_CFGSLA		0x84
109 #define MANTIS_GPIF_WAITSMPL		(0x07 << 28)
110 #define MANTIS_GPIF_BYTEADDRSUB		(0x01 << 25)
111 #define MANTIS_GPIF_WAITPOL		(0x01 << 24)
112 #define MANTIS_GPIF_NCDELAY		(0x07 << 20)
113 #define MANTIS_GPIF_RW2CSDELAY		(0x07 << 16)
114 #define MANTIS_GPIF_SLFTIMEDMODE	(0x01 << 15)
115 #define MANTIS_GPIF_SLFTIMEDDELY	(0x7f <<  8)
116 #define MANTIS_GPIF_DEVTYPE		(0x07 <<  4)
117 #define MANTIS_GPIF_BIGENDIAN		(0x01 <<  3)
118 #define MANTIS_GPIF_FETCHCMD		(0x03 <<  1)
119 #define MANTIS_GPIF_HWORDDEV		(0x01 <<  0)
120 
121 #define MANTIS_GPIF_WSTOPER		0x90
122 #define MANTIS_GPIF_WSTOPERWREN3	(0x01 << 31)
123 #define MANTIS_GPIF_PARBOOTN		(0x01 << 29)
124 #define MANTIS_GPIF_WSTOPERSLID3	(0x1f << 24)
125 #define MANTIS_GPIF_WSTOPERWREN2	(0x01 << 23)
126 #define MANTIS_GPIF_WSTOPERSLID2	(0x1f << 16)
127 #define MANTIS_GPIF_WSTOPERWREN1	(0x01 << 15)
128 #define MANTIS_GPIF_WSTOPERSLID1	(0x1f <<  8)
129 #define MANTIS_GPIF_WSTOPERWREN0	(0x01 <<  7)
130 #define MANTIS_GPIF_WSTOPERSLID0	(0x1f <<  0)
131 
132 #define MANTIS_GPIF_CS2RW		0x94
133 #define MANTIS_GPIF_CS2RWWREN3		(0x01 << 31)
134 #define MANTIS_GPIF_CS2RWDELY3		(0x3f << 24)
135 #define MANTIS_GPIF_CS2RWWREN2		(0x01 << 23)
136 #define MANTIS_GPIF_CS2RWDELY2		(0x3f << 16)
137 #define MANTIS_GPIF_CS2RWWREN1		(0x01 << 15)
138 #define MANTIS_GPIF_CS2RWDELY1		(0x3f <<  8)
139 #define MANTIS_GPIF_CS2RWWREN0		(0x01 <<  7)
140 #define MANTIS_GPIF_CS2RWDELY0		(0x3f <<  0)
141 
142 #define MANTIS_GPIF_IRQCFG		0x98
143 #define MANTIS_GPIF_IRQPOL		(0x01 <<  8)
144 #define MANTIS_MASK_WRACK		(0x01 <<  7)
145 #define MANTIS_MASK_BRRDY		(0x01 <<  6)
146 #define MANTIS_MASK_OVFLW		(0x01 <<  5)
147 #define MANTIS_MASK_OTHERR		(0x01 <<  4)
148 #define MANTIS_MASK_WSTO		(0x01 <<  3)
149 #define MANTIS_MASK_EXTIRQ		(0x01 <<  2)
150 #define MANTIS_MASK_PLUGIN		(0x01 <<  1)
151 #define MANTIS_MASK_PLUGOUT		(0x01 <<  0)
152 
153 #define MANTIS_GPIF_STATUS		0x9c
154 #define MANTIS_SBUF_KILLOP		(0x01 << 15)
155 #define MANTIS_SBUF_OPDONE		(0x01 << 14)
156 #define MANTIS_SBUF_EMPTY		(0x01 << 13)
157 #define MANTIS_GPIF_DETSTAT		(0x01 <<  9)
158 #define MANTIS_GPIF_INTSTAT		(0x01 <<  8)
159 #define MANTIS_GPIF_WRACK		(0x01 <<  7)
160 #define MANTIS_GPIF_BRRDY		(0x01 <<  6)
161 #define MANTIS_SBUF_OVFLW		(0x01 <<  5)
162 #define MANTIS_GPIF_OTHERR		(0x01 <<  4)
163 #define MANTIS_SBUF_WSTO		(0x01 <<  3)
164 #define MANTIS_GPIF_EXTIRQ		(0x01 <<  2)
165 #define MANTIS_CARD_PLUGIN		(0x01 <<  1)
166 #define MANTIS_CARD_PLUGOUT		(0x01 <<  0)
167 
168 #define MANTIS_GPIF_BRADDR		0xa0
169 #define MANTIS_GPIF_PCMCIAREG		(0x01		<< 27)
170 #define MANTIS_GPIF_PCMCIAIOM		(0x01		<< 26)
171 #define MANTIS_GPIF_BR_ADDR		(0xfffffff	<<  0)
172 
173 #define MANTIS_GPIF_BRBYTES		0xa4
174 #define MANTIS_GPIF_BRCNT		(0xfff		<<  0)
175 
176 #define MANTIS_PCMCIA_RESET		0xa8
177 #define MANTIS_PCMCIA_RSTVAL		(0xff << 0)
178 
179 #define MANTIS_CARD_RESET		0xac
180 
181 #define MANTIS_GPIF_ADDR		0xb0
182 #define MANTIS_GPIF_HIFRDWRN		(0x01		<< 31)
183 #define MANTIS_GPIF_PCMCIAREG		(0x01		<< 27)
184 #define MANTIS_GPIF_PCMCIAIOM		(0x01		<< 26)
185 #define MANTIS_GPIF_HIFADDR		(0xfffffff	<<  0)
186 
187 #define MANTIS_GPIF_DOUT		0xb4
188 #define MANTIS_GPIF_HIFDOUT		(0xfffffff	<<  0)
189 
190 #define MANTIS_GPIF_DIN			0xb8
191 #define MANTIS_GPIF_HIFDIN		(0xfffffff	<<  0)
192 
193 #define MANTIS_GPIF_SPARE		0xbc
194 #define MANTIS_GPIF_LOGICRD		(0xffff		<< 16)
195 #define MANTIS_GPIF_LOGICRW		(0xffff		<<  0)
196 
197 #endif /* __MANTIS_REG_H */
198