| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |