📄 pcmcia.h
字号:
#define I365_VPP1_12V 0x02 /* Vpp2 = 12.0v *//* Flags for I365_INTCTL */#define I365_RING_ENA 0x80#define I365_PC_RESET 0x40#define I365_PC_IOCARD 0x20#define I365_INTR_ENA 0x10#define I365_IRQ_MASK 0x0F/* Flags for I365_CSC and I365_CSCINT*/#define I365_CSC_BVD1 0x01#define I365_CSC_STSCHG 0x01#define I365_CSC_BVD2 0x02#define I365_CSC_READY 0x04#define I365_CSC_DETECT 0x08#define I365_CSC_ANY 0x0F#define I365_CSC_GPI 0x10/* Flags for I365_ADDRWIN */#define I365_ADDR_MEMCS16 0x20#define I365_ENA_IO(map) (0x40 << (map))#define I365_ENA_MEM(map) (0x01 << (map))/* Flags for I365_IOCTL */#define I365_IOCTL_MASK(map) (0x0F << (map<<2))#define I365_IOCTL_WAIT(map) (0x08 << (map<<2))#define I365_IOCTL_0WS(map) (0x04 << (map<<2))#define I365_IOCTL_IOCS16(map) (0x02 << (map<<2))#define I365_IOCTL_16BIT(map) (0x01 << (map<<2))/* Flags for I365_GENCTL */#define I365_CTL_16DELAY 0x01#define I365_CTL_RESET 0x02#define I365_CTL_GPI_ENA 0x04#define I365_CTL_GPI_CTL 0x08#define I365_CTL_RESUME 0x10#define I365_CTL_SW_IRQ 0x20/* Flags for I365_GBLCTL */#define I365_GBL_PWRDOWN 0x01#define I365_GBL_CSC_LEV 0x02#define I365_GBL_WRBACK 0x04#define I365_GBL_IRQ_0_LEV 0x08#define I365_GBL_IRQ_1_LEV 0x10/* Flags for memory window registers */#define I365_MEM_16BIT 0x8000 /* In memory start high byte */#define I365_MEM_0WS 0x4000#define I365_MEM_WS1 0x8000 /* In memory stop high byte */#define I365_MEM_WS0 0x4000#define I365_MEM_WRPROT 0x8000 /* In offset high byte */#define I365_MEM_REG 0x4000#define I365_REG(slot, reg) (((slot) << 6) | (reg))/* Default ISA interrupt mask */#define I365_ISA_IRQ_MASK 0xdeb8 /* irq's 3-5,7,9-12,14,15 *//* Device ID's for PCI-to-PCMCIA bridges */#ifndef PCI_VENDOR_ID_INTEL#define PCI_VENDOR_ID_INTEL 0x8086#endif#ifndef PCI_DEVICE_ID_INTEL_82092AA_0#define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221#endif#ifndef PCI_VENDOR_ID_OMEGA#define PCI_VENDOR_ID_OMEGA 0x119b#endif#ifndef PCI_DEVICE_ID_OMEGA_82C092G#define PCI_DEVICE_ID_OMEGA_82C092G 0x1221#endif#ifndef PCI_VENDOR_ID_CIRRUS#define PCI_VENDOR_ID_CIRRUS 0x1013#endif#ifndef PCI_DEVICE_ID_CIRRUS_6729#define PCI_DEVICE_ID_CIRRUS_6729 0x1100#endif#ifndef PCI_DEVICE_ID_CIRRUS_6832#define PCI_DEVICE_ID_CIRRUS_6832 0x1110#endif#define PD67_MISC_CTL_1 0x16 /* Misc control 1 */#define PD67_FIFO_CTL 0x17 /* FIFO control */#define PD67_MISC_CTL_2 0x1E /* Misc control 2 */#define PD67_CHIP_INFO 0x1f /* Chip information */#define PD67_ATA_CTL 0x026 /* 6730: ATA control */#define PD67_EXT_INDEX 0x2e /* Extension index */#define PD67_EXT_DATA 0x2f /* Extension data */#define pd67_ext_get(s, r) \ (i365_set(s, PD67_EXT_INDEX, r), i365_get(s, PD67_EXT_DATA))#define pd67_ext_set(s, r, v) \ (i365_set(s, PD67_EXT_INDEX, r), i365_set(s, PD67_EXT_DATA, v))/* PD6722 extension registers -- indexed in PD67_EXT_INDEX */#define PD67_DATA_MASK0 0x01 /* Data mask 0 */#define PD67_DATA_MASK1 0x02 /* Data mask 1 */#define PD67_DMA_CTL 0x03 /* DMA control *//* PD6730 extension registers -- indexed in PD67_EXT_INDEX */#define PD67_EXT_CTL_1 0x03 /* Extension control 1 */#define PD67_MEM_PAGE(n) ((n)+5) /* PCI window bits 31:24 */#define PD67_EXTERN_DATA 0x0a#define PD67_EXT_CTL_2 0x0b#define PD67_MISC_CTL_3 0x25#define PD67_SMB_PWR_CTL 0x26/* I/O window address offset */#define PD67_IO_OFF(w) (0x36+((w)<<1))/* Timing register sets */#define PD67_TIME_SETUP(n) (0x3a + 3*(n))#define PD67_TIME_CMD(n) (0x3b + 3*(n))#define PD67_TIME_RECOV(n) (0x3c + 3*(n))/* Flags for PD67_MISC_CTL_1 */#define PD67_MC1_5V_DET 0x01 /* 5v detect */#define PD67_MC1_MEDIA_ENA 0x01 /* 6730: Multimedia enable */#define PD67_MC1_VCC_3V 0x02 /* 3.3v Vcc */#define PD67_MC1_PULSE_MGMT 0x04#define PD67_MC1_PULSE_IRQ 0x08#define PD67_MC1_SPKR_ENA 0x10#define PD67_MC1_INPACK_ENA 0x80/* Flags for PD67_FIFO_CTL */#define PD67_FIFO_EMPTY 0x80/* Flags for PD67_MISC_CTL_2 */#define PD67_MC2_FREQ_BYPASS 0x01#define PD67_MC2_DYNAMIC_MODE 0x02#define PD67_MC2_SUSPEND 0x04#define PD67_MC2_5V_CORE 0x08#define PD67_MC2_LED_ENA 0x10 /* IRQ 12 is LED enable */#define PD67_MC2_FAST_PCI 0x10 /* 6729: PCI bus > 25 MHz */#define PD67_MC2_3STATE_BIT7 0x20 /* Floppy change bit */#define PD67_MC2_DMA_MODE 0x40#define PD67_MC2_IRQ15_RI 0x80 /* IRQ 15 is ring enable *//* Flags for PD67_CHIP_INFO */#define PD67_INFO_SLOTS 0x20 /* 0 = 1 slot, 1 = 2 slots */#define PD67_INFO_CHIP_ID 0xc0#define PD67_INFO_REV 0x1c/* Fields in PD67_TIME_* registers */#define PD67_TIME_SCALE 0xc0#define PD67_TIME_SCALE_1 0x00#define PD67_TIME_SCALE_16 0x40#define PD67_TIME_SCALE_256 0x80#define PD67_TIME_SCALE_4096 0xc0#define PD67_TIME_MULT 0x3f/* Fields in PD67_DMA_CTL */#define PD67_DMA_MODE 0xc0#define PD67_DMA_OFF 0x00#define PD67_DMA_DREQ_INPACK 0x40#define PD67_DMA_DREQ_WP 0x80#define PD67_DMA_DREQ_BVD2 0xc0#define PD67_DMA_PULLUP 0x20 /* Disable socket pullups? *//* Fields in PD67_EXT_CTL_1 */#define PD67_EC1_VCC_PWR_LOCK 0x01#define PD67_EC1_AUTO_PWR_CLEAR 0x02#define PD67_EC1_LED_ENA 0x04#define PD67_EC1_INV_CARD_IRQ 0x08#define PD67_EC1_INV_MGMT_IRQ 0x10#define PD67_EC1_PULLUP_CTL 0x20/* Fields in PD67_EXTERN_DATA */#define PD67_EXD_VS1(s) (0x01 << ((s)<<1))#define PD67_EXD_VS2(s) (0x02 << ((s)<<1))/* Fields in PD67_EXT_CTL_2 */#define PD67_EC2_GPSTB_TOTEM 0x04#define PD67_EC2_GPSTB_IOR 0x08#define PD67_EC2_GPSTB_IOW 0x10#define PD67_EC2_GPSTB_HIGH 0x20/* Fields in PD67_MISC_CTL_3 */#define PD67_MC3_IRQ_MASK 0x03#define PD67_MC3_IRQ_PCPCI 0x00#define PD67_MC3_IRQ_EXTERN 0x01#define PD67_MC3_IRQ_PCIWAY 0x02#define PD67_MC3_IRQ_PCI 0x03#define PD67_MC3_PWR_MASK 0x0c#define PD67_MC3_PWR_SERIAL 0x00#define PD67_MC3_PWR_TI2202 0x08#define PD67_MC3_PWR_SMB 0x0c/* Register definitions for Cirrus PD6832 PCI-to-CardBus bridge *//* PD6832 extension registers -- indexed in PD67_EXT_INDEX */#define PD68_PCI_SPACE 0x22#define PD68_PCCARD_SPACE 0x23#define PD68_WINDOW_TYPE 0x24#define PD68_EXT_CSC 0x2e#define PD68_MISC_CTL_4 0x2f#define PD68_MISC_CTL_5 0x30#define PD68_MISC_CTL_6 0x31/* Extra flags in PD67_MISC_CTL_3 */#define PD68_MC3_HW_SUSP 0x10#define PD68_MC3_MM_EXPAND 0x40#define PD68_MC3_MM_ARM 0x80/* Bridge Control Register */#define PD6832_BCR_MGMT_IRQ_ENA 0x0800/* Socket Number Register */#define PD6832_SOCKET_NUMBER 0x004c /* 8 bit *//* Data structure for tracking vendor-specific state */typedef struct cirrus_state_t { u_char misc1; /* PD67_MISC_CTL_1 */ u_char misc2; /* PD67_MISC_CTL_2 */ u_char ectl1; /* PD67_EXT_CTL_1 */ u_char timer[6]; /* PD67_TIME_* */} cirrus_state_t;#define CIRRUS_PCIC_ID \ IS_PD6729, IS_PD6730, IS_PD6832#define CIRRUS_PCIC_INFO \ { "Cirrus PD6729", IS_CIRRUS|IS_PCI, ID(CIRRUS, 6729) }, \ { "Cirrus PD6730", IS_CIRRUS|IS_PCI, PCI_VENDOR_ID_CIRRUS, -1 }, \ { "Cirrus PD6832", IS_CIRRUS|IS_CARDBUS, ID(CIRRUS, 6832) }/* Special bit in I365_IDENT used for Vadem chip detection */#define I365_IDENT_VADEM 0x08/* Special definitions in I365_POWER */#define VG468_VPP2_MASK 0x0c#define VG468_VPP2_5V 0x04#define VG468_VPP2_12V 0x08/* Unique Vadem registers */#define VG469_VSENSE 0x1f /* Card voltage sense */#define VG469_VSELECT 0x2f /* Card voltage select */#define VG468_CTL 0x38 /* Control register */#define VG468_TIMER 0x39 /* Timer control */#define VG468_MISC 0x3a /* Miscellaneous */#define VG468_GPIO_CFG 0x3b /* GPIO configuration */#define VG469_EXT_MODE 0x3c /* Extended mode register */#define VG468_SELECT 0x3d /* Programmable chip select */#define VG468_SELECT_CFG 0x3e /* Chip select configuration */#define VG468_ATA 0x3f /* ATA control *//* Flags for VG469_VSENSE */#define VG469_VSENSE_A_VS1 0x01#define VG469_VSENSE_A_VS2 0x02#define VG469_VSENSE_B_VS1 0x04#define VG469_VSENSE_B_VS2 0x08/* Flags for VG469_VSELECT */#define VG469_VSEL_VCC 0x03#define VG469_VSEL_5V 0x00#define VG469_VSEL_3V 0x03#define VG469_VSEL_MAX 0x0c#define VG469_VSEL_EXT_STAT 0x10#define VG469_VSEL_EXT_BUS 0x20#define VG469_VSEL_MIXED 0x40#define VG469_VSEL_ISA 0x80/* Flags for VG468_CTL */#define VG468_CTL_SLOW 0x01 /* 600ns memory timing */#define VG468_CTL_ASYNC 0x02 /* Asynchronous bus clocking */#define VG468_CTL_TSSI 0x08 /* Tri-state some outputs */#define VG468_CTL_DELAY 0x10 /* Card detect debounce */#define VG468_CTL_INPACK 0x20 /* Obey INPACK signal? */#define VG468_CTL_POLARITY 0x40 /* VCCEN polarity */#define VG468_CTL_COMPAT 0x80 /* Compatibility stuff */#define VG469_CTL_WS_COMPAT 0x04 /* Wait state compatibility */#define VG469_CTL_STRETCH 0x10 /* LED stretch *//* Flags for VG468_TIMER */#define VG468_TIMER_ZEROPWR 0x10 /* Zero power control */#define VG468_TIMER_SIGEN 0x20 /* Power up */#define VG468_TIMER_STATUS 0x40 /* Activity timer status */#define VG468_TIMER_RES 0x80 /* Timer resolution */#define VG468_TIMER_MASK 0x0f /* Activity timer timeout *//* Flags for VG468_MISC */#define VG468_MISC_GPIO 0x04 /* General-purpose IO */#define VG468_MISC_DMAWSB 0x08 /* DMA wait state control */#define VG469_MISC_LEDENA 0x10 /* LED enable */#define VG468_MISC_VADEMREV 0x40 /* Vadem revision control */#define VG468_MISC_UNLOCK 0x80 /* Unique register lock *//* Flags for VG469_EXT_MODE_A */#define VG469_MODE_VPPST 0x03 /* Vpp steering control */#define VG469_MODE_INT_SENSE 0x04 /* Internal voltage sense */#define VG469_MODE_CABLE 0x08#define VG469_MODE_COMPAT 0x10 /* i82365sl B or DF step */#define VG469_MODE_TEST 0x20#define VG469_MODE_RIO 0x40 /* Steer RIO to INTR? *//* Flags for VG469_EXT_MODE_B */#define VG469_MODE_B_3V 0x01 /* 3.3v for socket B *//* Data structure for tracking vendor-specific state */typedef struct vg46x_state_t { u_char ctl; /* VG468_CTL */ u_char ema; /* VG468_EXT_MODE_A */} vg46x_state_t;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -