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