1*95e1ffb1Schristos /* $NetBSD: ppbus_var.h,v 1.5 2005/12/11 12:23:28 christos Exp $ */ 2f7820334Sbjh21 3e23cd1a7Sjdolecek #ifndef __PPBUS_VAR_H 4e23cd1a7Sjdolecek #define __PPBUS_VAR_H 5e23cd1a7Sjdolecek 6e23cd1a7Sjdolecek /* PPBUS mode masks. */ 7e23cd1a7Sjdolecek #define PPBUS_COMPATIBLE 0x01 /* Centronics compatible mode */ 8e23cd1a7Sjdolecek #define PPBUS_NIBBLE 0x02 /* reverse 4 bit mode */ 9e23cd1a7Sjdolecek #define PPBUS_PS2 0x04 /* PS/2 byte mode */ 10e23cd1a7Sjdolecek #define PPBUS_EPP 0x08 /* EPP mode, 32 bit */ 11e23cd1a7Sjdolecek #define PPBUS_ECP 0x10 /* ECP mode */ 12e23cd1a7Sjdolecek #define PPBUS_FAST 0x20 /* Fast Centronics mode */ 13e23cd1a7Sjdolecek /* mode aliases */ 14e23cd1a7Sjdolecek #define PPBUS_SPP PPBUS_NIBBLE | PPBUS_PS2 /* Won't work! */ 15e23cd1a7Sjdolecek #define PPBUS_BYTE PPBUS_PS2 16e23cd1a7Sjdolecek #define PPBUS_MASK 0x3f 17e23cd1a7Sjdolecek #define PPBUS_OPTIONS_MASK 0xc0 18e23cd1a7Sjdolecek /* Useful macros for this field */ 19e23cd1a7Sjdolecek #define PPBUS_IS_EPP(mode) ((mode) & PPBUS_EPP) 20e23cd1a7Sjdolecek #define PPBUS_IN_EPP_MODE(bus) (PPBUS_IS_EPP(ppbus_get_mode(bus))) 21e23cd1a7Sjdolecek #define PPBUS_IN_NIBBLE_MODE(bus) (ppbus_get_mode(bus) & PPBUS_NIBBLE) 22e23cd1a7Sjdolecek #define PPBUS_IN_PS2_MODE(bus) (ppbus_get_mode(bus) & PPBUS_PS2) 23e23cd1a7Sjdolecek 24e23cd1a7Sjdolecek /* PPBUS capabilities */ 25e23cd1a7Sjdolecek #define PPBUS_HAS_INTR 0x01 /* Interrupt available */ 26e23cd1a7Sjdolecek #define PPBUS_HAS_DMA 0x02 /* DMA available */ 27e23cd1a7Sjdolecek #define PPBUS_HAS_FIFO 0x04 /* FIFO available */ 28e23cd1a7Sjdolecek #define PPBUS_HAS_PS2 0x08 /* PS2 mode capable */ 29e23cd1a7Sjdolecek #define PPBUS_HAS_ECP 0x10 /* ECP mode available */ 30e23cd1a7Sjdolecek #define PPBUS_HAS_EPP 0x20 /* EPP mode available */ 31e23cd1a7Sjdolecek 32e23cd1a7Sjdolecek /* IEEE flag in soft config */ 33e23cd1a7Sjdolecek #define PPBUS_DISABLE_IEEE 0x00 34e23cd1a7Sjdolecek #define PPBUS_ENABLE_IEEE 0x01 35e23cd1a7Sjdolecek 36e23cd1a7Sjdolecek /* List of IVARS available to ppbus device drivers */ 37e23cd1a7Sjdolecek /* #define PPBUS_IVAR_MODE 0 */ 38e23cd1a7Sjdolecek #define PPBUS_IVAR_DMA 1 39e23cd1a7Sjdolecek #define PPBUS_IVAR_INTR 2 40e23cd1a7Sjdolecek #define PPBUS_IVAR_EPP_PROTO 3 41e23cd1a7Sjdolecek #define PPBUS_IVAR_IEEE 4 42e23cd1a7Sjdolecek /* Needed by callback's implemented using callout */ 43e23cd1a7Sjdolecek #define PPBUS_IVAR_IRQSTAT 5 44e23cd1a7Sjdolecek #define PPBUS_IVAR_DMASTAT 6 45e23cd1a7Sjdolecek /* other fields are reserved to the ppbus internals */ 46e23cd1a7Sjdolecek 47e23cd1a7Sjdolecek /* EPP protocol versions */ 48e23cd1a7Sjdolecek #define PPBUS_EPP_1_9 0x0 /* default */ 49e23cd1a7Sjdolecek #define PPBUS_EPP_1_7 0x1 50e23cd1a7Sjdolecek 51e23cd1a7Sjdolecek /* Parallel Port Bus sleep/wakeup queue. */ 52e23cd1a7Sjdolecek #define PPBUSPRI (PZERO+8) 53e23cd1a7Sjdolecek 549e77fbccSjdolecek #endif /* __PPBUS_VAR_H */ 55