Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/m68k/include/asm/amipcmcia.h
10820 views
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
112