pcmcia: do not use io_req_t when calling pcmcia_request_io()
[deliverable/linux.git] / include / pcmcia / cs.h
CommitLineData
1da177e4
LT
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
5fa9167a
DB
18#ifdef __KERNEL__
19#include <linux/interrupt.h>
20#endif
21
1da177e4
LT
22/* ModifyConfiguration */
23typedef struct modconf_t {
24 u_int Attributes;
25 u_int Vcc, Vpp1, Vpp2;
26} modconf_t;
27
28/* Attributes for ModifyConfiguration */
4bbed523
DB
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
1da177e4
LT
34
35/* For RequestConfiguration */
36typedef struct config_req_t {
37 u_int Attributes;
70294b46 38 u_int Vpp; /* both Vpp1 and Vpp2 */
1da177e4
LT
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
a7debe78 50#define CONF_ENABLE_PULSE_IRQ 0x08
1da177e4
LT
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
1da177e4 59/* Bits in IRQInfo1 field */
1da177e4
LT
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
1da177e4
LT
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 */
82typedef struct memreq_t {
83 u_int CardOffset;
ac8b4228 84 u_short Page;
1da177e4
LT
85} memreq_t;
86
87/* For ModifyWindow */
88typedef struct modwin_t {
89 u_int Attributes;
90 u_int AccessSpeed;
91} modwin_t;
92
93/* For RequestWindow */
94typedef 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
1da177e4
LT
124/* Flag to bind to all functions */
125#define BIND_FN_ALL 0xff
126
1da177e4 127#endif /* _LINUX_CS_H */
This page took 0.495935 seconds and 5 git commands to generate.