1/*
2 * cisreg.h 1.18 2001/08/24 12:16:12
3 *
4 * The contents of this file are subject to the Mozilla Public License
5 * Version 1.1 (the "License"); you may not use this file except in
6 * compliance with the License. You may obtain a copy of the License
7 * at http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS"
10 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
11 * the License for the specific language governing rights and
12 * limitations under the License.
13 *
14 * The initial developer of the original code is David A. Hinds
15 * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
16 * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
17 *
18 * Alternatively, the contents of this file may be used under the
19 * terms of the GNU General Public License version 2 (the "GPL"), in
20 * which case the provisions of the GPL are applicable instead of the
21 * above.  If you wish to allow the use of your version of this file
22 * only under the terms of the GPL and not to allow others to use
23 * your version of this file under the MPL, indicate your decision by
24 * deleting the provisions above and replace them with the notice and
25 * other provisions required by the GPL.  If you do not delete the
26 * provisions above, a recipient may use your version of this file
27 * under either the MPL or the GPL.
28 */
29
30#ifndef _LINUX_CISREG_H
31#define _LINUX_CISREG_H
32
33/*
34 * Offsets from ConfigBase for CIS registers
35 */
36#define CISREG_COR		0x00
37#define CISREG_CCSR		0x02
38#define CISREG_PRR		0x04
39#define CISREG_SCR		0x06
40#define CISREG_ESR		0x08
41#define CISREG_IOBASE_0		0x0a
42#define CISREG_IOBASE_1		0x0c
43#define CISREG_IOBASE_2		0x0e
44#define CISREG_IOBASE_3		0x10
45#define CISREG_IOSIZE		0x12
46
47/*
48 * Configuration Option Register
49 */
50#define COR_CONFIG_MASK		0x3f
51#define COR_MFC_CONFIG_MASK	0x38
52#define COR_FUNC_ENA		0x01
53#define COR_ADDR_DECODE		0x02
54#define COR_IREQ_ENA		0x04
55#define COR_LEVEL_REQ		0x40
56#define COR_SOFT_RESET		0x80
57
58/*
59 * Card Configuration and Status Register
60 */
61#define CCSR_INTR_ACK		0x01
62#define CCSR_INTR_PENDING	0x02
63#define CCSR_POWER_DOWN		0x04
64#define CCSR_AUDIO_ENA		0x08
65#define CCSR_IOIS8		0x20
66#define CCSR_SIGCHG_ENA		0x40
67#define CCSR_CHANGED		0x80
68
69/*
70 * Pin Replacement Register
71 */
72#define PRR_WP_STATUS		0x01
73#define PRR_READY_STATUS	0x02
74#define PRR_BVD2_STATUS		0x04
75#define PRR_BVD1_STATUS		0x08
76#define PRR_WP_EVENT		0x10
77#define PRR_READY_EVENT		0x20
78#define PRR_BVD2_EVENT		0x40
79#define PRR_BVD1_EVENT		0x80
80
81/*
82 * Socket and Copy Register
83 */
84#define SCR_SOCKET_NUM		0x0f
85#define SCR_COPY_NUM		0x70
86
87/*
88 * Extended Status Register
89 */
90#define ESR_REQ_ATTN_ENA	0x01
91#define ESR_REQ_ATTN		0x10
92
93/*
94 * CardBus Function Status Registers
95 */
96#define CBFN_EVENT		0x00
97#define CBFN_MASK		0x04
98#define CBFN_STATE		0x08
99#define CBFN_FORCE		0x0c
100
101/*
102 * These apply to all the CardBus function registers
103 */
104#define CBFN_WP			0x0001
105#define CBFN_READY		0x0002
106#define CBFN_BVD2		0x0004
107#define CBFN_BVD1		0x0008
108#define CBFN_GWAKE		0x0010
109#define CBFN_INTR		0x8000
110
111/*
112 * Extra bits in the Function Event Mask Register
113 */
114#define FEMR_BAM_ENA		0x0020
115#define FEMR_PWM_ENA		0x0040
116#define FEMR_WKUP_MASK		0x4000
117
118/*
119 * Indirect Addressing Registers for Zoomed Video: these are addresses
120 * in common memory space
121 */
122#define CISREG_ICTRL0		0x02	/* control registers */
123#define CISREG_ICTRL1		0x03
124#define CISREG_IADDR0		0x04	/* address registers */
125#define CISREG_IADDR1		0x05
126#define CISREG_IADDR2		0x06
127#define CISREG_IADDR3		0x07
128#define CISREG_IDATA0		0x08	/* data registers */
129#define CISREG_IDATA1		0x09
130
131#define ICTRL0_COMMON		0x01
132#define ICTRL0_AUTOINC		0x02
133#define ICTRL0_BYTEGRAN		0x04
134
135#endif /* _LINUX_CISREG_H */
136