pcmcia: do not use io_req_t when calling pcmcia_request_io()
[deliverable/linux.git] / include / pcmcia / cs.h
1 /*
2 * cs.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_CS_H
16 #define _LINUX_CS_H
17
18 #ifdef __KERNEL__
19 #include <linux/interrupt.h>
20 #endif
21
22 /* ModifyConfiguration */
23 typedef struct modconf_t {
24 u_int Attributes;
25 u_int Vcc, Vpp1, Vpp2;
26 } modconf_t;
27
28 /* Attributes for ModifyConfiguration */
29 #define CONF_IRQ_CHANGE_VALID 0x0100
30 #define CONF_VCC_CHANGE_VALID 0x0200
31 #define CONF_VPP1_CHANGE_VALID 0x0400
32 #define CONF_VPP2_CHANGE_VALID 0x0800
33 #define CONF_IO_CHANGE_WIDTH 0x1000
34
35 /* For RequestConfiguration */
36 typedef struct config_req_t {
37 u_int Attributes;
38 u_int Vpp; /* both Vpp1 and Vpp2 */
39 u_int IntType;
40 u_int ConfigBase;
41 u_char Status, Pin, Copy, ExtStatus;
42 u_char ConfigIndex;
43 u_int Present;
44 } config_req_t;
45
46 /* Attributes for RequestConfiguration */
47 #define CONF_ENABLE_IRQ 0x01
48 #define CONF_ENABLE_DMA 0x02
49 #define CONF_ENABLE_SPKR 0x04
50 #define CONF_ENABLE_PULSE_IRQ 0x08
51 #define CONF_VALID_CLIENT 0x100
52
53 /* IntType field */
54 #define INT_MEMORY 0x01
55 #define INT_MEMORY_AND_IO 0x02
56 #define INT_CARDBUS 0x04
57 #define INT_ZOOMED_VIDEO 0x08
58
59 /* Bits in IRQInfo1 field */
60 #define IRQ_NMI_ID 0x01
61 #define IRQ_IOCK_ID 0x02
62 #define IRQ_BERR_ID 0x04
63 #define IRQ_VEND_ID 0x08
64 #define IRQ_INFO2_VALID 0x10
65 #define IRQ_LEVEL_ID 0x20
66 #define IRQ_PULSE_ID 0x40
67 #define IRQ_SHARE_ID 0x80
68
69 /* Configuration registers present */
70 #define PRESENT_OPTION 0x001
71 #define PRESENT_STATUS 0x002
72 #define PRESENT_PIN_REPLACE 0x004
73 #define PRESENT_COPY 0x008
74 #define PRESENT_EXT_STATUS 0x010
75 #define PRESENT_IOBASE_0 0x020
76 #define PRESENT_IOBASE_1 0x040
77 #define PRESENT_IOBASE_2 0x080
78 #define PRESENT_IOBASE_3 0x100
79 #define PRESENT_IOSIZE 0x200
80
81 /* For GetMemPage, MapMemPage */
82 typedef struct memreq_t {
83 u_int CardOffset;
84 u_short Page;
85 } memreq_t;
86
87 /* For ModifyWindow */
88 typedef struct modwin_t {
89 u_int Attributes;
90 u_int AccessSpeed;
91 } modwin_t;
92
93 /* For RequestWindow */
94 typedef struct win_req_t {
95 u_int Attributes;
96 u_long Base;
97 u_int Size;
98 u_int AccessSpeed;
99 } win_req_t;
100
101 /* Attributes for RequestWindow */
102 #define WIN_ADDR_SPACE 0x0001
103 #define WIN_ADDR_SPACE_MEM 0x0000
104 #define WIN_ADDR_SPACE_IO 0x0001
105 #define WIN_MEMORY_TYPE 0x0002
106 #define WIN_MEMORY_TYPE_CM 0x0000
107 #define WIN_MEMORY_TYPE_AM 0x0002
108 #define WIN_ENABLE 0x0004
109 #define WIN_DATA_WIDTH 0x0018
110 #define WIN_DATA_WIDTH_8 0x0000
111 #define WIN_DATA_WIDTH_16 0x0008
112 #define WIN_DATA_WIDTH_32 0x0010
113 #define WIN_PAGED 0x0020
114 #define WIN_SHARED 0x0040
115 #define WIN_FIRST_SHARED 0x0080
116 #define WIN_USE_WAIT 0x0100
117 #define WIN_STRICT_ALIGN 0x0200
118 #define WIN_MAP_BELOW_1MB 0x0400
119 #define WIN_PREFETCH 0x0800
120 #define WIN_CACHEABLE 0x1000
121 #define WIN_BAR_MASK 0xe000
122 #define WIN_BAR_SHIFT 13
123
124 /* Flag to bind to all functions */
125 #define BIND_FN_ALL 0xff
126
127 #endif /* _LINUX_CS_H */
This page took 0.033022 seconds and 5 git commands to generate.