blob: e4faf4420f2a3195a2c7440de7bbb2ac04edb3a5 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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
Dominik Brodowski5fa91672009-11-08 17:24:46 +010018#ifdef __KERNEL__
19#include <linux/interrupt.h>
20#endif
21
Linus Torvalds1da177e2005-04-16 15:20:36 -070022/* ModifyConfiguration */
23typedef struct modconf_t {
24 u_int Attributes;
25 u_int Vcc, Vpp1, Vpp2;
26} modconf_t;
27
28/* Attributes for ModifyConfiguration */
Dominik Brodowski4bbed522006-01-15 11:18:12 +010029#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
Linus Torvalds1da177e2005-04-16 15:20:36 -070034
35/* For RequestConfiguration */
36typedef struct config_req_t {
37 u_int Attributes;
Dominik Brodowski70294b42006-01-15 12:43:16 +010038 u_int Vpp; /* both Vpp1 and Vpp2 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070039 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
Dominik Brodowskia7debe72010-03-07 10:58:29 +010050#define CONF_ENABLE_PULSE_IRQ 0x08
Linus Torvalds1da177e2005-04-16 15:20:36 -070051#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
Linus Torvalds1da177e2005-04-16 15:20:36 -070059/* Configuration registers present */
60#define PRESENT_OPTION 0x001
61#define PRESENT_STATUS 0x002
62#define PRESENT_PIN_REPLACE 0x004
63#define PRESENT_COPY 0x008
64#define PRESENT_EXT_STATUS 0x010
65#define PRESENT_IOBASE_0 0x020
66#define PRESENT_IOBASE_1 0x040
67#define PRESENT_IOBASE_2 0x080
68#define PRESENT_IOBASE_3 0x100
69#define PRESENT_IOSIZE 0x200
70
Linus Torvalds1da177e2005-04-16 15:20:36 -070071/* For RequestWindow */
72typedef struct win_req_t {
73 u_int Attributes;
74 u_long Base;
75 u_int Size;
76 u_int AccessSpeed;
77} win_req_t;
78
79/* Attributes for RequestWindow */
80#define WIN_ADDR_SPACE 0x0001
81#define WIN_ADDR_SPACE_MEM 0x0000
82#define WIN_ADDR_SPACE_IO 0x0001
83#define WIN_MEMORY_TYPE 0x0002
84#define WIN_MEMORY_TYPE_CM 0x0000
85#define WIN_MEMORY_TYPE_AM 0x0002
86#define WIN_ENABLE 0x0004
87#define WIN_DATA_WIDTH 0x0018
88#define WIN_DATA_WIDTH_8 0x0000
89#define WIN_DATA_WIDTH_16 0x0008
90#define WIN_DATA_WIDTH_32 0x0010
91#define WIN_PAGED 0x0020
92#define WIN_SHARED 0x0040
93#define WIN_FIRST_SHARED 0x0080
94#define WIN_USE_WAIT 0x0100
95#define WIN_STRICT_ALIGN 0x0200
96#define WIN_MAP_BELOW_1MB 0x0400
97#define WIN_PREFETCH 0x0800
98#define WIN_CACHEABLE 0x1000
99#define WIN_BAR_MASK 0xe000
100#define WIN_BAR_SHIFT 13
101
Linus Torvalds1da177e2005-04-16 15:20:36 -0700102#endif /* _LINUX_CS_H */