1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun ** asm-m68k/pcmcia.h -- Amiga Linux PCMCIA Definitions 3*4882a593Smuzhiyun ** 4*4882a593Smuzhiyun ** Copyright 1997 by Alain Malek 5*4882a593Smuzhiyun ** 6*4882a593Smuzhiyun ** This file is subject to the terms and conditions of the GNU General Public 7*4882a593Smuzhiyun ** License. See the file COPYING in the main directory of this archive 8*4882a593Smuzhiyun ** for more details. 9*4882a593Smuzhiyun ** 10*4882a593Smuzhiyun ** Created: 12/10/97 by Alain Malek 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #ifndef __AMIGA_PCMCIA_H__ 14*4882a593Smuzhiyun #define __AMIGA_PCMCIA_H__ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #include <asm/amigayle.h> 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* prototypes */ 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun void pcmcia_reset(void); 21*4882a593Smuzhiyun int pcmcia_copy_tuple(unsigned char tuple_id, void *tuple, int max_len); 22*4882a593Smuzhiyun void pcmcia_program_voltage(int voltage); 23*4882a593Smuzhiyun void pcmcia_access_speed(int speed); 24*4882a593Smuzhiyun void pcmcia_write_enable(void); 25*4882a593Smuzhiyun void pcmcia_write_disable(void); 26*4882a593Smuzhiyun pcmcia_read_status(void)27*4882a593Smuzhiyunstatic inline u_char pcmcia_read_status(void) 28*4882a593Smuzhiyun { 29*4882a593Smuzhiyun return (gayle.cardstatus & 0x7c); 30*4882a593Smuzhiyun } 31*4882a593Smuzhiyun pcmcia_get_intreq(void)32*4882a593Smuzhiyunstatic inline u_char pcmcia_get_intreq(void) 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun return (gayle.intreq); 35*4882a593Smuzhiyun } 36*4882a593Smuzhiyun pcmcia_ack_int(u_char intreq)37*4882a593Smuzhiyunstatic inline void pcmcia_ack_int(u_char intreq) 38*4882a593Smuzhiyun { 39*4882a593Smuzhiyun gayle.intreq = 0xf8; 40*4882a593Smuzhiyun } 41*4882a593Smuzhiyun pcmcia_enable_irq(void)42*4882a593Smuzhiyunstatic inline void pcmcia_enable_irq(void) 43*4882a593Smuzhiyun { 44*4882a593Smuzhiyun gayle.inten |= GAYLE_IRQ_IRQ; 45*4882a593Smuzhiyun } 46*4882a593Smuzhiyun pcmcia_disable_irq(void)47*4882a593Smuzhiyunstatic inline void pcmcia_disable_irq(void) 48*4882a593Smuzhiyun { 49*4882a593Smuzhiyun gayle.inten &= ~GAYLE_IRQ_IRQ; 50*4882a593Smuzhiyun } 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define PCMCIA_INSERTED (gayle.cardstatus & GAYLE_CS_CCDET) 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun /* valid voltages for pcmcia_ProgramVoltage */ 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun #define PCMCIA_0V 0 57*4882a593Smuzhiyun #define PCMCIA_5V 5 58*4882a593Smuzhiyun #define PCMCIA_12V 12 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun /* valid speeds for pcmcia_AccessSpeed */ 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun #define PCMCIA_SPEED_100NS 100 63*4882a593Smuzhiyun #define PCMCIA_SPEED_150NS 150 64*4882a593Smuzhiyun #define PCMCIA_SPEED_250NS 250 65*4882a593Smuzhiyun #define PCMCIA_SPEED_720NS 720 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun /* PCMCIA Tuple codes */ 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun #define CISTPL_NULL 0x00 70*4882a593Smuzhiyun #define CISTPL_DEVICE 0x01 71*4882a593Smuzhiyun #define CISTPL_LONGLINK_CB 0x02 72*4882a593Smuzhiyun #define CISTPL_CONFIG_CB 0x04 73*4882a593Smuzhiyun #define CISTPL_CFTABLE_ENTRY_CB 0x05 74*4882a593Smuzhiyun #define CISTPL_LONGLINK_MFC 0x06 75*4882a593Smuzhiyun #define CISTPL_BAR 0x07 76*4882a593Smuzhiyun #define CISTPL_CHECKSUM 0x10 77*4882a593Smuzhiyun #define CISTPL_LONGLINK_A 0x11 78*4882a593Smuzhiyun #define CISTPL_LONGLINK_C 0x12 79*4882a593Smuzhiyun #define CISTPL_LINKTARGET 0x13 80*4882a593Smuzhiyun #define CISTPL_NO_LINK 0x14 81*4882a593Smuzhiyun #define CISTPL_VERS_1 0x15 82*4882a593Smuzhiyun #define CISTPL_ALTSTR 0x16 83*4882a593Smuzhiyun #define CISTPL_DEVICE_A 0x17 84*4882a593Smuzhiyun #define CISTPL_JEDEC_C 0x18 85*4882a593Smuzhiyun #define CISTPL_JEDEC_A 0x19 86*4882a593Smuzhiyun #define CISTPL_CONFIG 0x1a 87*4882a593Smuzhiyun #define CISTPL_CFTABLE_ENTRY 0x1b 88*4882a593Smuzhiyun #define CISTPL_DEVICE_OC 0x1c 89*4882a593Smuzhiyun #define CISTPL_DEVICE_OA 0x1d 90*4882a593Smuzhiyun #define CISTPL_DEVICE_GEO 0x1e 91*4882a593Smuzhiyun #define CISTPL_DEVICE_GEO_A 0x1f 92*4882a593Smuzhiyun #define CISTPL_MANFID 0x20 93*4882a593Smuzhiyun #define CISTPL_FUNCID 0x21 94*4882a593Smuzhiyun #define CISTPL_FUNCE 0x22 95*4882a593Smuzhiyun #define CISTPL_SWIL 0x23 96*4882a593Smuzhiyun #define CISTPL_END 0xff 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun /* FUNCID */ 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun #define CISTPL_FUNCID_MULTI 0x00 101*4882a593Smuzhiyun #define CISTPL_FUNCID_MEMORY 0x01 102*4882a593Smuzhiyun #define CISTPL_FUNCID_SERIAL 0x02 103*4882a593Smuzhiyun #define CISTPL_FUNCID_PARALLEL 0x03 104*4882a593Smuzhiyun #define CISTPL_FUNCID_FIXED 0x04 105*4882a593Smuzhiyun #define CISTPL_FUNCID_VIDEO 0x05 106*4882a593Smuzhiyun #define CISTPL_FUNCID_NETWORK 0x06 107*4882a593Smuzhiyun #define CISTPL_FUNCID_AIMS 0x07 108*4882a593Smuzhiyun #define CISTPL_FUNCID_SCSI 0x08 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun #endif 111