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