1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * The initial developer of the original code is David A. Hinds
6 * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
7 * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
9 * (C) 1999 David A. Hinds
12 #ifndef _LINUX_CISREG_H
13 #define _LINUX_CISREG_H
16 * Offsets from ConfigBase for CIS registers
18 #define CISREG_COR 0x00
19 #define CISREG_CCSR 0x02
20 #define CISREG_PRR 0x04
21 #define CISREG_SCR 0x06
22 #define CISREG_ESR 0x08
23 #define CISREG_IOBASE_0 0x0a
24 #define CISREG_IOBASE_1 0x0c
25 #define CISREG_IOBASE_2 0x0e
26 #define CISREG_IOBASE_3 0x10
27 #define CISREG_IOSIZE 0x12
30 * Configuration Option Register
32 #define COR_CONFIG_MASK 0x3f
33 #define COR_MFC_CONFIG_MASK 0x38
34 #define COR_FUNC_ENA 0x01
35 #define COR_ADDR_DECODE 0x02
36 #define COR_IREQ_ENA 0x04
37 #define COR_LEVEL_REQ 0x40
38 #define COR_SOFT_RESET 0x80
41 * Card Configuration and Status Register
43 #define CCSR_INTR_ACK 0x01
44 #define CCSR_INTR_PENDING 0x02
45 #define CCSR_POWER_DOWN 0x04
46 #define CCSR_AUDIO_ENA 0x08
47 #define CCSR_IOIS8 0x20
48 #define CCSR_SIGCHG_ENA 0x40
49 #define CCSR_CHANGED 0x80
52 * Pin Replacement Register
54 #define PRR_WP_STATUS 0x01
55 #define PRR_READY_STATUS 0x02
56 #define PRR_BVD2_STATUS 0x04
57 #define PRR_BVD1_STATUS 0x08
58 #define PRR_WP_EVENT 0x10
59 #define PRR_READY_EVENT 0x20
60 #define PRR_BVD2_EVENT 0x40
61 #define PRR_BVD1_EVENT 0x80
64 * Socket and Copy Register
66 #define SCR_SOCKET_NUM 0x0f
67 #define SCR_COPY_NUM 0x70
70 * Extended Status Register
72 #define ESR_REQ_ATTN_ENA 0x01
73 #define ESR_REQ_ATTN 0x10
76 * CardBus Function Status Registers
78 #define CBFN_EVENT 0x00
79 #define CBFN_MASK 0x04
80 #define CBFN_STATE 0x08
81 #define CBFN_FORCE 0x0c
84 * These apply to all the CardBus function registers
86 #define CBFN_WP 0x0001
87 #define CBFN_READY 0x0002
88 #define CBFN_BVD2 0x0004
89 #define CBFN_BVD1 0x0008
90 #define CBFN_GWAKE 0x0010
91 #define CBFN_INTR 0x8000
94 * Extra bits in the Function Event Mask Register
96 #define FEMR_BAM_ENA 0x0020
97 #define FEMR_PWM_ENA 0x0040
98 #define FEMR_WKUP_MASK 0x4000
101 * Indirect Addressing Registers for Zoomed Video: these are addresses
102 * in common memory space
104 #define CISREG_ICTRL0 0x02 /* control registers */
105 #define CISREG_ICTRL1 0x03
106 #define CISREG_IADDR0 0x04 /* address registers */
107 #define CISREG_IADDR1 0x05
108 #define CISREG_IADDR2 0x06
109 #define CISREG_IADDR3 0x07
110 #define CISREG_IDATA0 0x08 /* data registers */
111 #define CISREG_IDATA1 0x09
113 #define ICTRL0_COMMON 0x01
114 #define ICTRL0_AUTOINC 0x02
115 #define ICTRL0_BYTEGRAN 0x04
117 #endif /* _LINUX_CISREG_H */