mirror of https://gitee.com/openkylin/linux.git
111 lines
2.5 KiB
C
111 lines
2.5 KiB
C
/*
|
|
** asm-m68k/pcmcia.h -- Amiga Linux PCMCIA Definitions
|
|
**
|
|
** Copyright 1997 by Alain Malek
|
|
**
|
|
** This file is subject to the terms and conditions of the GNU General Public
|
|
** License. See the file COPYING in the main directory of this archive
|
|
** for more details.
|
|
**
|
|
** Created: 12/10/97 by Alain Malek
|
|
*/
|
|
|
|
#ifndef __AMIGA_PCMCIA_H__
|
|
#define __AMIGA_PCMCIA_H__
|
|
|
|
#include <asm/amigayle.h>
|
|
|
|
/* prototypes */
|
|
|
|
void pcmcia_reset(void);
|
|
int pcmcia_copy_tuple(unsigned char tuple_id, void *tuple, int max_len);
|
|
void pcmcia_program_voltage(int voltage);
|
|
void pcmcia_access_speed(int speed);
|
|
void pcmcia_write_enable(void);
|
|
void pcmcia_write_disable(void);
|
|
|
|
static inline u_char pcmcia_read_status(void)
|
|
{
|
|
return (gayle.cardstatus & 0x7c);
|
|
}
|
|
|
|
static inline u_char pcmcia_get_intreq(void)
|
|
{
|
|
return (gayle.intreq);
|
|
}
|
|
|
|
static inline void pcmcia_ack_int(u_char intreq)
|
|
{
|
|
gayle.intreq = 0xf8;
|
|
}
|
|
|
|
static inline void pcmcia_enable_irq(void)
|
|
{
|
|
gayle.inten |= GAYLE_IRQ_IRQ;
|
|
}
|
|
|
|
static inline void pcmcia_disable_irq(void)
|
|
{
|
|
gayle.inten &= ~GAYLE_IRQ_IRQ;
|
|
}
|
|
|
|
#define PCMCIA_INSERTED (gayle.cardstatus & GAYLE_CS_CCDET)
|
|
|
|
/* valid voltages for pcmcia_ProgramVoltage */
|
|
|
|
#define PCMCIA_0V 0
|
|
#define PCMCIA_5V 5
|
|
#define PCMCIA_12V 12
|
|
|
|
/* valid speeds for pcmcia_AccessSpeed */
|
|
|
|
#define PCMCIA_SPEED_100NS 100
|
|
#define PCMCIA_SPEED_150NS 150
|
|
#define PCMCIA_SPEED_250NS 250
|
|
#define PCMCIA_SPEED_720NS 720
|
|
|
|
/* PCMCIA Tuple codes */
|
|
|
|
#define CISTPL_NULL 0x00
|
|
#define CISTPL_DEVICE 0x01
|
|
#define CISTPL_LONGLINK_CB 0x02
|
|
#define CISTPL_CONFIG_CB 0x04
|
|
#define CISTPL_CFTABLE_ENTRY_CB 0x05
|
|
#define CISTPL_LONGLINK_MFC 0x06
|
|
#define CISTPL_BAR 0x07
|
|
#define CISTPL_CHECKSUM 0x10
|
|
#define CISTPL_LONGLINK_A 0x11
|
|
#define CISTPL_LONGLINK_C 0x12
|
|
#define CISTPL_LINKTARGET 0x13
|
|
#define CISTPL_NO_LINK 0x14
|
|
#define CISTPL_VERS_1 0x15
|
|
#define CISTPL_ALTSTR 0x16
|
|
#define CISTPL_DEVICE_A 0x17
|
|
#define CISTPL_JEDEC_C 0x18
|
|
#define CISTPL_JEDEC_A 0x19
|
|
#define CISTPL_CONFIG 0x1a
|
|
#define CISTPL_CFTABLE_ENTRY 0x1b
|
|
#define CISTPL_DEVICE_OC 0x1c
|
|
#define CISTPL_DEVICE_OA 0x1d
|
|
#define CISTPL_DEVICE_GEO 0x1e
|
|
#define CISTPL_DEVICE_GEO_A 0x1f
|
|
#define CISTPL_MANFID 0x20
|
|
#define CISTPL_FUNCID 0x21
|
|
#define CISTPL_FUNCE 0x22
|
|
#define CISTPL_SWIL 0x23
|
|
#define CISTPL_END 0xff
|
|
|
|
/* FUNCID */
|
|
|
|
#define CISTPL_FUNCID_MULTI 0x00
|
|
#define CISTPL_FUNCID_MEMORY 0x01
|
|
#define CISTPL_FUNCID_SERIAL 0x02
|
|
#define CISTPL_FUNCID_PARALLEL 0x03
|
|
#define CISTPL_FUNCID_FIXED 0x04
|
|
#define CISTPL_FUNCID_VIDEO 0x05
|
|
#define CISTPL_FUNCID_NETWORK 0x06
|
|
#define CISTPL_FUNCID_AIMS 0x07
|
|
#define CISTPL_FUNCID_SCSI 0x08
|
|
|
|
#endif
|