linux/include/pcmcia/cs.h
<<
>>
Prefs
   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/* For AccessConfigurationRegister */
  23typedef struct conf_reg_t {
  24    u_char      Function;
  25    u_int       Action;
  26    off_t       Offset;
  27    u_int       Value;
  28} conf_reg_t;
  29
  30/* Actions */
  31#define CS_READ         1
  32#define CS_WRITE        2
  33
  34/* for AdjustResourceInfo */
  35/* Action field */
  36#define REMOVE_MANAGED_RESOURCE         1
  37#define ADD_MANAGED_RESOURCE            2
  38
  39
  40typedef struct event_callback_args_t {
  41        struct pcmcia_device    *client_handle;
  42        void                    *client_data;
  43} event_callback_args_t;
  44
  45/* For CardValues field */
  46#define CV_OPTION_VALUE         0x01
  47#define CV_STATUS_VALUE         0x02
  48#define CV_PIN_REPLACEMENT      0x04
  49#define CV_COPY_VALUE           0x08
  50#define CV_EXT_STATUS           0x10
  51
  52/* For GetFirst/NextClient */
  53typedef struct client_req_t {
  54    socket_t    Socket;
  55    u_int       Attributes;
  56} client_req_t;
  57
  58#define CLIENT_THIS_SOCKET      0x01
  59
  60/* ModifyConfiguration */
  61typedef struct modconf_t {
  62    u_int       Attributes;
  63    u_int       Vcc, Vpp1, Vpp2;
  64} modconf_t;
  65
  66/* Attributes for ModifyConfiguration */
  67#define CONF_IRQ_CHANGE_VALID   0x0100
  68#define CONF_VCC_CHANGE_VALID   0x0200
  69#define CONF_VPP1_CHANGE_VALID  0x0400
  70#define CONF_VPP2_CHANGE_VALID  0x0800
  71#define CONF_IO_CHANGE_WIDTH    0x1000
  72
  73/* For RequestConfiguration */
  74typedef struct config_req_t {
  75    u_int       Attributes;
  76    u_int       Vpp; /* both Vpp1 and Vpp2 */
  77    u_int       IntType;
  78    u_int       ConfigBase;
  79    u_char      Status, Pin, Copy, ExtStatus;
  80    u_char      ConfigIndex;
  81    u_int       Present;
  82} config_req_t;
  83
  84/* Attributes for RequestConfiguration */
  85#define CONF_ENABLE_IRQ         0x01
  86#define CONF_ENABLE_DMA         0x02
  87#define CONF_ENABLE_SPKR        0x04
  88#define CONF_ENABLE_PULSE_IRQ   0x08
  89#define CONF_VALID_CLIENT       0x100
  90
  91/* IntType field */
  92#define INT_MEMORY              0x01
  93#define INT_MEMORY_AND_IO       0x02
  94#define INT_CARDBUS             0x04
  95#define INT_ZOOMED_VIDEO        0x08
  96
  97/* For RequestIO and ReleaseIO */
  98typedef struct io_req_t {
  99    u_int       BasePort1;
 100    u_int       NumPorts1;
 101    u_int       Attributes1;
 102    u_int       BasePort2;
 103    u_int       NumPorts2;
 104    u_int       Attributes2;
 105    u_int       IOAddrLines;
 106} io_req_t;
 107
 108/* Attributes for RequestIO and ReleaseIO */
 109#define IO_SHARED               0x01
 110#define IO_FIRST_SHARED         0x02
 111#define IO_FORCE_ALIAS_ACCESS   0x04
 112#define IO_DATA_PATH_WIDTH      0x18
 113#define IO_DATA_PATH_WIDTH_8    0x00
 114#define IO_DATA_PATH_WIDTH_16   0x08
 115#define IO_DATA_PATH_WIDTH_AUTO 0x10
 116
 117/* Bits in IRQInfo1 field */
 118#define IRQ_NMI_ID              0x01
 119#define IRQ_IOCK_ID             0x02
 120#define IRQ_BERR_ID             0x04
 121#define IRQ_VEND_ID             0x08
 122#define IRQ_INFO2_VALID         0x10
 123#define IRQ_LEVEL_ID            0x20
 124#define IRQ_PULSE_ID            0x40
 125#define IRQ_SHARE_ID            0x80
 126
 127typedef struct eventmask_t {
 128    u_int       Attributes;
 129    u_int       EventMask;
 130} eventmask_t;
 131
 132#define CONF_EVENT_MASK_VALID   0x01
 133
 134/* Configuration registers present */
 135#define PRESENT_OPTION          0x001
 136#define PRESENT_STATUS          0x002
 137#define PRESENT_PIN_REPLACE     0x004
 138#define PRESENT_COPY            0x008
 139#define PRESENT_EXT_STATUS      0x010
 140#define PRESENT_IOBASE_0        0x020
 141#define PRESENT_IOBASE_1        0x040
 142#define PRESENT_IOBASE_2        0x080
 143#define PRESENT_IOBASE_3        0x100
 144#define PRESENT_IOSIZE          0x200
 145
 146/* For GetMemPage, MapMemPage */
 147typedef struct memreq_t {
 148    u_int       CardOffset;
 149    page_t      Page;
 150} memreq_t;
 151
 152/* For ModifyWindow */
 153typedef struct modwin_t {
 154    u_int       Attributes;
 155    u_int       AccessSpeed;
 156} modwin_t;
 157
 158/* For RequestWindow */
 159typedef struct win_req_t {
 160    u_int       Attributes;
 161    u_long      Base;
 162    u_int       Size;
 163    u_int       AccessSpeed;
 164} win_req_t;
 165
 166/* Attributes for RequestWindow */
 167#define WIN_ADDR_SPACE          0x0001
 168#define WIN_ADDR_SPACE_MEM      0x0000
 169#define WIN_ADDR_SPACE_IO       0x0001
 170#define WIN_MEMORY_TYPE         0x0002
 171#define WIN_MEMORY_TYPE_CM      0x0000
 172#define WIN_MEMORY_TYPE_AM      0x0002
 173#define WIN_ENABLE              0x0004
 174#define WIN_DATA_WIDTH          0x0018
 175#define WIN_DATA_WIDTH_8        0x0000
 176#define WIN_DATA_WIDTH_16       0x0008
 177#define WIN_DATA_WIDTH_32       0x0010
 178#define WIN_PAGED               0x0020
 179#define WIN_SHARED              0x0040
 180#define WIN_FIRST_SHARED        0x0080
 181#define WIN_USE_WAIT            0x0100
 182#define WIN_STRICT_ALIGN        0x0200
 183#define WIN_MAP_BELOW_1MB       0x0400
 184#define WIN_PREFETCH            0x0800
 185#define WIN_CACHEABLE           0x1000
 186#define WIN_BAR_MASK            0xe000
 187#define WIN_BAR_SHIFT           13
 188
 189typedef struct error_info_t {
 190    int         func;
 191    int         retcode;
 192} error_info_t;
 193
 194/* Flag to bind to all functions */
 195#define BIND_FN_ALL     0xff
 196
 197/* Events */
 198#define CS_EVENT_PRI_LOW                0
 199#define CS_EVENT_PRI_HIGH               1
 200
 201#define CS_EVENT_WRITE_PROTECT          0x000001
 202#define CS_EVENT_CARD_LOCK              0x000002
 203#define CS_EVENT_CARD_INSERTION         0x000004
 204#define CS_EVENT_CARD_REMOVAL           0x000008
 205#define CS_EVENT_BATTERY_DEAD           0x000010
 206#define CS_EVENT_BATTERY_LOW            0x000020
 207#define CS_EVENT_READY_CHANGE           0x000040
 208#define CS_EVENT_CARD_DETECT            0x000080
 209#define CS_EVENT_RESET_REQUEST          0x000100
 210#define CS_EVENT_RESET_PHYSICAL         0x000200
 211#define CS_EVENT_CARD_RESET             0x000400
 212#define CS_EVENT_REGISTRATION_COMPLETE  0x000800
 213#define CS_EVENT_PM_SUSPEND             0x002000
 214#define CS_EVENT_PM_RESUME              0x004000
 215#define CS_EVENT_INSERTION_REQUEST      0x008000
 216#define CS_EVENT_EJECTION_REQUEST       0x010000
 217#define CS_EVENT_MTD_REQUEST            0x020000
 218#define CS_EVENT_ERASE_COMPLETE         0x040000
 219#define CS_EVENT_REQUEST_ATTENTION      0x080000
 220#define CS_EVENT_CB_DETECT              0x100000
 221#define CS_EVENT_3VCARD                 0x200000
 222#define CS_EVENT_XVCARD                 0x400000
 223
 224#endif /* _LINUX_CS_H */
 225
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.