Files
m241Neelima/vxworks-6.9/target/h/drv/pcmcia/pcic.h
T
2026-07-30 11:19:44 +05:30

167 lines
4.4 KiB
C

/* pcic.h - Intel 82365SL PCMCIA Host Bus Adaptor chip header */
/* Copyright 1984-1996 Wind River Systems, Inc. */
/* Copyright (c) 1994 David A. Hinds -- All Rights Reserved */
/*
modification history
--------------------
01d,01apr98,hdn added PCIC_ENA_MEMCS16 macro.
01c,19jan98,hdn changed PCIC_VPP_XX macros.
01b,22feb96,hdn cleaned up.
01a,19jan95,hdn written based on David Hinds's version 2.2.3.
*/
#ifndef __INCpcich
#define __INCpcich
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _ASMLANGUAGE
#define PCIC_MAX_SOCKS 8 /* number of sockets */
#define PCIC_MEM_WINDOWS 5 /* number of memory windows */
#define PCIC_IO_WINDOWS 2 /* number of io windows */
/* PCIC compatible chips */
#define PCIC_I82365 0x10 /* Intel 82365 */
#define PCIC_PD672X 0x20 /* Cirrus clone */
#define PCIC_PD6710 0x30 /* Cirrus clone */
#define PCIC_VLSI 0x40 /* VLSI clone */
#define PCIC_IBM 0x50 /* IBM clone */
#define PCIC_VG468 0x60 /* Vadem clone */
#define PCIC_RICOH 0x70 /* Ricoh clone */
/* Offsets for PCIC registers */
#define PCIC_IDENT 0x00 /* Identification and revision */
#define PCIC_STATUS 0x01 /* Interface status */
#define PCIC_POWER 0x02 /* Power and RESETDRV control */
#define PCIC_INTCTL 0x03 /* Interrupt and general control */
#define PCIC_CSC 0x04 /* Card status change */
#define PCIC_CSCINT 0x05 /* Card status change int control */
#define PCIC_ADDRWIN 0x06 /* Address window enable */
#define PCIC_IOCTL 0x07 /* I/O control */
#define PCIC_GENCTL 0x16 /* Card detect and general control */
#define PCIC_GBLCTL 0x1E /* Global control register */
/* Offsets for I/O and memory window registers */
#define PCIC_IO(win) (0x08+((win)<<2))
#define PCIC_MEM(win) (0x10+((win)<<3))
#define PCIC_W_START 0
#define PCIC_W_STOP 2
#define PCIC_W_OFF 4
/* Flags for PCIC_STATUS */
#define PCIC_CS_BVD1 0x01
#define PCIC_CS_STSCHG 0x01
#define PCIC_CS_BVD2 0x02
#define PCIC_CS_SPKR 0x02
#define PCIC_CS_DETECT 0x0c
#define PCIC_CS_WRPROT 0x10
#define PCIC_CS_READY 0x20
#define PCIC_CS_POWERON 0x40
#define PCIC_CS_GPI 0x80
/* Flags for PCIC_POWER */
#define PCIC_PWR_OFF 0x00 /* Turn off the socket */
#define PCIC_VPP_5V 0x05 /* Vpp = 5.0v */
#define PCIC_VPP_12V 0x0a /* Vpp = 12.0v */
#define PCIC_VPP_MASK 0x0f /* Mask for turning off Vpp */
#define PCIC_VCC_5V 0x10 /* Vcc = 5.0v */
#define PCIC_VCC_3V 0x18 /* Vcc = 3.3v */
#define PCIC_VCC_MASK 0x18 /* Mask for turning off Vcc */
#define PCIC_PWR_AUTO 0x20 /* Auto pwr switch enable */
#define PCIC_PWR_NORESET 0x40 /* Disable RESETDRV on resume */
#define PCIC_PWR_OUT 0x80 /* Output enable */
/* Flags for PCIC_INTCTL */
#define PCIC_IRQ_MASK 0x0F
#define PCIC_INTR_ENA 0x10
#define PCIC_PC_IOCARD 0x20
#define PCIC_PC_RESET 0x40
#define PCIC_RING_ENA 0x80
/* Flags for PCIC_CSC and PCIC_CSCINT*/
#define PCIC_CSC_BVD1 0x01
#define PCIC_CSC_STSCHG 0x01
#define PCIC_CSC_BVD2 0x02
#define PCIC_CSC_READY 0x04
#define PCIC_CSC_DETECT 0x08
#define PCIC_CSC_ANY 0x0F
#define PCIC_CSC_GPI 0x10
/* Flags for PCIC_ADDRWIN */
#define PCIC_ENA_IO(win) (0x40 << (win))
#define PCIC_ENA_MEM(win) (0x01 << (win))
#define PCIC_ENA_ALL 0xdf
#define PCIC_ENA_MEMCS16 0x20
/* Flags for PCIC_IOCTL */
#define PCIC_IOCTL_MASK(win) (0x0F << (win<<2))
#define PCIC_IOCTL_WAIT(win) (0x08 << (win<<2))
#define PCIC_IOCTL_0WS(win) (0x04 << (win<<2))
#define PCIC_IOCTL_CS16(win) (0x02 << (win<<2))
#define PCIC_IOCTL_16BIT(win) (0x01 << (win<<2))
/* Flags for PCIC_GENCTL */
#define PCIC_CTL_16DELAY 0x01
#define PCIC_CTL_RESET_ENA 0x02
#define PCIC_CTL_GPI_ENA 0x04
#define PCIC_CTL_GPI_CTL 0x08
#define PCIC_CTL_RESUME 0x10
#define PCIC_CTL_SW_IRQ 0x20
/* Flags for PCIC_GBLCTL */
#define PCIC_GBL_PWRDOWN 0x01
#define PCIC_GBL_CSC_LEV 0x02
#define PCIC_GBL_WRBACK 0x04
#define PCIC_GBL_IRQ_0_LEV 0x08
#define PCIC_GBL_IRQ_1_LEV 0x10
/* Flags for memory window registers */
#define PCIC_MEM_16BIT 0x8000 /* In memory start high byte */
#define PCIC_MEM_0WS 0x4000
#define PCIC_MEM_WS1 0x8000 /* In memory stop high byte */
#define PCIC_MEM_WS0 0x4000
#define PCIC_MEM_WRPROT 0x8000 /* In offset high byte */
#define PCIC_MEM_REG 0x4000
/* function declarations */
#if defined(__STDC__) || defined(__cplusplus)
extern int pcicInit (int ioBase, int intVec, int intLevel,
FUNCPTR showRtn);
extern void pcicShow (int sock);
#else
extern int pcicInit ();
extern void pcicShow ();
#endif /* __STDC__ */
#endif /* _ASMLANGUAGE */
#ifdef __cplusplus
}
#endif
#endif /* __INCpcich */