1/*
2 * cisreg.h
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * The initial developer of the original code is David A. Hinds
9 * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
10 * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
11 *
12 * (C) 1999 David A. Hinds
13 */
14
15#ifndef _LINUX_CISREG_H
16#define _LINUX_CISREG_H
17
18/*
19 * Offsets from ConfigBase for CIS registers
20 */
21#define CISREG_COR 0x00
22#define CISREG_CCSR 0x02
23#define CISREG_PRR 0x04
24#define CISREG_SCR 0x06
25#define CISREG_ESR 0x08
26#define CISREG_IOBASE_0 0x0a
27#define CISREG_IOBASE_1 0x0c
28#define CISREG_IOBASE_2 0x0e
29#define CISREG_IOBASE_3 0x10
30#define CISREG_IOSIZE 0x12
31
32/*
33 * Configuration Option Register
34 */
35#define COR_CONFIG_MASK 0x3f
36#define COR_MFC_CONFIG_MASK 0x38
37#define COR_FUNC_ENA 0x01
38#define COR_ADDR_DECODE 0x02
39#define COR_IREQ_ENA 0x04
40#define COR_LEVEL_REQ 0x40
41#define COR_SOFT_RESET 0x80
42
43/*
44 * Card Configuration and Status Register
45 */
46#define CCSR_INTR_ACK 0x01
47#define CCSR_INTR_PENDING 0x02
48#define CCSR_POWER_DOWN 0x04
49#define CCSR_AUDIO_ENA 0x08
50#define CCSR_IOIS8 0x20
51#define CCSR_SIGCHG_ENA 0x40
52#define CCSR_CHANGED 0x80
53
54/*
55 * Pin Replacement Register
56 */
57#define PRR_WP_STATUS 0x01
58#define PRR_READY_STATUS 0x02
59#define PRR_BVD2_STATUS 0x04
60#define PRR_BVD1_STATUS 0x08
61#define PRR_WP_EVENT 0x10
62#define PRR_READY_EVENT 0x20
63#define PRR_BVD2_EVENT 0x40
64#define PRR_BVD1_EVENT 0x80
65
66/*
67 * Socket and Copy Register
68 */
69#define SCR_SOCKET_NUM 0x0f
70#define SCR_COPY_NUM 0x70
71
72/*
73 * Extended Status Register
74 */
75#define ESR_REQ_ATTN_ENA 0x01
76#define ESR_REQ_ATTN 0x10
77
78/*
79 * CardBus Function Status Registers
80 */
81#define CBFN_EVENT 0x00
82#define CBFN_MASK 0x04
83#define CBFN_STATE 0x08
84#define CBFN_FORCE 0x0c
85
86/*
87 * These apply to all the CardBus function registers
88 */
89#define CBFN_WP 0x0001
90#define CBFN_READY 0x0002
91#define CBFN_BVD2 0x0004
92#define CBFN_BVD1 0x0008
93#define CBFN_GWAKE 0x0010
94#define CBFN_INTR 0x8000
95
96/*
97 * Extra bits in the Function Event Mask Register
98 */
99#define FEMR_BAM_ENA 0x0020
100#define FEMR_PWM_ENA 0x0040
101#define FEMR_WKUP_MASK 0x4000
102
103/*
104 * Indirect Addressing Registers for Zoomed Video: these are addresses
105 * in common memory space
106 */
107#define CISREG_ICTRL0 0x02 /* control registers */
108#define CISREG_ICTRL1 0x03
109#define CISREG_IADDR0 0x04 /* address registers */
110#define CISREG_IADDR1 0x05
111#define CISREG_IADDR2 0x06
112#define CISREG_IADDR3 0x07
113#define CISREG_IDATA0 0x08 /* data registers */
114#define CISREG_IDATA1 0x09
115
116#define ICTRL0_COMMON 0x01
117#define ICTRL0_AUTOINC 0x02
118#define ICTRL0_BYTEGRAN 0x04
119
120#endif /* _LINUX_CISREG_H */
121