Home | History | Annotate | Line # | Download | only in ic
atppcreg.h revision 1.3.10.1
      1  1.3.10.1      kent /* $NetBSD: atppcreg.h,v 1.3.10.1 2005/04/29 11:28:49 kent Exp $ */
      2       1.2     bjh21 
      3       1.1  jdolecek /*-
      4       1.1  jdolecek  * Copyright (c) 2001 Alcove - Nicolas Souchu
      5       1.1  jdolecek  * All rights reserved.
      6       1.1  jdolecek  *
      7       1.1  jdolecek  * Redistribution and use in source and binary forms, with or without
      8       1.1  jdolecek  * modification, are permitted provided that the following conditions
      9       1.1  jdolecek  * are met:
     10       1.1  jdolecek  * 1. Redistributions of source code must retain the above copyright
     11       1.1  jdolecek  *    notice, this list of conditions and the following disclaimer.
     12       1.1  jdolecek  * 2. Redistributions in binary form must reproduce the above copyright
     13       1.1  jdolecek  *    notice, this list of conditions and the following disclaimer in the
     14       1.1  jdolecek  *    documentation and/or other materials provided with the distribution.
     15       1.1  jdolecek  *
     16       1.1  jdolecek  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     17       1.1  jdolecek  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18       1.1  jdolecek  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     19       1.1  jdolecek  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     20       1.1  jdolecek  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     21       1.1  jdolecek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     22       1.1  jdolecek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     23       1.1  jdolecek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     24       1.1  jdolecek  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     25       1.1  jdolecek  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26       1.1  jdolecek  * SUCH DAMAGE.
     27       1.1  jdolecek  *
     28       1.3     bjh21  * FreeBSD: src/sys/isa/ppcreg.h,v 1.10.2.4 2001/10/02 05:21:45 nsouch Exp
     29       1.1  jdolecek  *
     30       1.1  jdolecek  */
     31       1.1  jdolecek 
     32       1.1  jdolecek #ifndef __ATPPCREG_H
     33       1.1  jdolecek #define __ATPPCREG_H
     34       1.1  jdolecek 
     35       1.1  jdolecek /* Generic register definitions as offsets from a base address */
     36       1.1  jdolecek 
     37       1.1  jdolecek #define ATPPC_SPP_DTR 		0	/* SPP data register */
     38       1.1  jdolecek #define ATPPC_ECP_A_FIFO	0	/* ECP Address fifo register */
     39       1.1  jdolecek #define ATPPC_SPP_STR		1	/* SPP status register */
     40       1.1  jdolecek #define ATPPC_SPP_CTR		2	/* SPP control register */
     41       1.1  jdolecek #define ATPPC_EPP_ADDR		3	/* EPP address register (8 bit) */
     42       1.1  jdolecek #define ATPPC_EPP_DATA		4	/* EPP data register (8, 16, 32 bit) */
     43       1.1  jdolecek #define ATPPC_ECP_D_FIFO	0x400	/* ECP Data fifo register */
     44       1.1  jdolecek #define ATPPC_ECP_CNFGA		0x400	/* Configuration register A */
     45       1.1  jdolecek #define ATPPC_ECP_CNFGB		0x401	/* Configuration register B */
     46       1.1  jdolecek #define ATPPC_ECP_ECR		0x402	/* ECP extended control register */
     47       1.1  jdolecek 
     48       1.1  jdolecek /* ECP control register commands/modes */
     49       1.1  jdolecek #define ATPPC_FIFO_EMPTY	0x1	/* ecr register - bit 0 */
     50       1.1  jdolecek #define ATPPC_FIFO_FULL		0x2	/* ecr register - bit 1 */
     51       1.1  jdolecek #define ATPPC_SERVICE_INTR 	0x4	/* ecr register - bit 2 */
     52       1.1  jdolecek #define ATPPC_ENABLE_DMA	0x8	/* ecr register - bit 3 */
     53       1.1  jdolecek #define ATPPC_nFAULT_INTR	0x10	/* ecr register - bit 4 */
     54       1.1  jdolecek /* ecr register - bits 5 through 7 */
     55       1.1  jdolecek #define ATPPC_ECR_STD		0x00	/* Standard mode */
     56       1.1  jdolecek #define ATPPC_ECR_PS2		0x20	/* Bidirectional mode */
     57       1.1  jdolecek #define ATPPC_ECR_FIFO		0x40	/* Fast Centronics mode */
     58       1.1  jdolecek #define ATPPC_ECR_ECP		0x60	/* ECP mode */
     59       1.1  jdolecek #define ATPPC_ECR_EPP		0x80	/* EPP mode */
     60       1.1  jdolecek #define ATPPC_ECR_TST		0xd0	/* Test mode*/
     61       1.1  jdolecek #define ATPPC_ECR_CFG		0xe0	/* Test mode*/
     62       1.1  jdolecek 
     63       1.1  jdolecek 
     64       1.1  jdolecek 
     65       1.1  jdolecek /* To set "inverted" flags, do AND. Otherwise, do OR */
     66       1.1  jdolecek /* 0 & x = 0, 1 | x = 1 */
     67       1.1  jdolecek 
     68  1.3.10.1      kent /* Clear flags: n(var) is equivalent to var = 0.
     69       1.1  jdolecek #define n(flags) (~(flags) & (flags))*/
     70       1.1  jdolecek 
     71  1.3.10.1      kent /* Invert flags
     72       1.1  jdolecek #define inv(flags) (~(flags))*/
     73       1.1  jdolecek 
     74       1.1  jdolecek /* SPP mode control register bit positions. */
     75       1.1  jdolecek #define STROBE		0x01
     76       1.1  jdolecek #define AUTOFEED	0x02
     77       1.1  jdolecek #define nINIT		0x04
     78       1.1  jdolecek #define SELECTIN	0x08
     79       1.1  jdolecek #define IRQENABLE	0x10
     80       1.1  jdolecek #define PCD             0x20
     81       1.1  jdolecek 
     82       1.1  jdolecek /*
     83       1.1  jdolecek #define nSTROBE		inv(STROBE)
     84       1.1  jdolecek #define nAUTOFEED	inv(AUTOFEED)
     85       1.1  jdolecek #define INIT		inv(nINIT)
     86       1.1  jdolecek #define nSELECTIN	inv(SELECTIN)
     87       1.1  jdolecek #define nPCD		inv(PCD)
     88       1.1  jdolecek */
     89       1.1  jdolecek 
     90       1.1  jdolecek /* SPP status register bit positions. */
     91       1.1  jdolecek #define TIMEOUT         0x01
     92       1.1  jdolecek #define nFAULT          0x08
     93       1.1  jdolecek #define SELECT          0x10
     94       1.1  jdolecek #define PERROR          0x20
     95       1.1  jdolecek #define nACK            0x40
     96       1.1  jdolecek #define nBUSY           0x80
     97       1.1  jdolecek 
     98       1.1  jdolecek /* Flags indicating ready condition */
     99       1.1  jdolecek #define SPP_READY (SELECT | nFAULT | nBUSY)
    100  1.3.10.1      kent #define SPP_MASK (SELECT | nFAULT | PERROR | nBUSY)
    101       1.1  jdolecek 
    102       1.1  jdolecek /* Byte mode signals */
    103       1.1  jdolecek #define HOSTCLK		STROBE /* Also ECP mode signal */
    104       1.1  jdolecek #define HOSTBUSY	AUTOFEED
    105       1.1  jdolecek #define ACTIVE1284	SELECTIN /* Also ECP mode signal */
    106       1.1  jdolecek #define PTRCLK		nACK
    107       1.1  jdolecek #define PTRBUSY		nBUSY
    108       1.1  jdolecek #define ACKDATAREQ	PERROR
    109       1.1  jdolecek #define XFLAG		SELECT /* Also ECP mode signal */
    110       1.1  jdolecek #define nDATAVAIL	nFAULT
    111       1.1  jdolecek 
    112       1.1  jdolecek /* ECP mode signals */
    113       1.1  jdolecek #define HOSTACK		AUTOFEED
    114       1.1  jdolecek #define nREVREQ		nINIT
    115       1.1  jdolecek #define PERICLK		nACK
    116       1.1  jdolecek #define PERIACK		nBUSY
    117       1.1  jdolecek #define nACKREV		PERROR
    118       1.1  jdolecek #define nPERIREQ	nFAULT
    119       1.1  jdolecek 
    120       1.1  jdolecek /* EPP mode signals */
    121       1.1  jdolecek #define nWRITE		STROBE
    122       1.1  jdolecek #define nDATASTB	AUTOFEED
    123       1.1  jdolecek #define nADDRSTB	SELECTIN
    124       1.1  jdolecek #define nWAIT		nBUSY
    125       1.1  jdolecek #define nRESET		nINIT
    126  1.3.10.1      kent #define nINTR		nACK
    127       1.1  jdolecek 
    128       1.1  jdolecek 
    129  1.3.10.1      kent /*
    130       1.1  jdolecek  * Useful macros for reading/writing registers.
    131       1.1  jdolecek  */
    132       1.1  jdolecek 
    133       1.1  jdolecek /* Reading macros */
    134       1.1  jdolecek #define atppc_r_dtr(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh, \
    135       1.1  jdolecek 	ATPPC_SPP_DTR)
    136       1.1  jdolecek #define atppc_r_str(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh, \
    137       1.1  jdolecek 	ATPPC_SPP_STR)
    138       1.1  jdolecek #define atppc_r_ctr(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh, \
    139       1.1  jdolecek 	ATPPC_SPP_CTR)
    140       1.1  jdolecek #define atppc_r_eppA(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh,\
    141       1.1  jdolecek 	ATPPC_EPP_ADDR)
    142       1.1  jdolecek #define atppc_r_eppD(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh,\
    143       1.1  jdolecek 	ATPPC_EPP_DATA)
    144       1.1  jdolecek #define atppc_r_eppD_multi(atppc, buf, count) bus_space_read_multi_1( \
    145       1.1  jdolecek 	(atppc)->sc_iot, (atppc)->sc_ioh, ATPPC_EPP_DATA, (buf), (count))
    146       1.1  jdolecek #define atppc_r_cnfgA(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh,\
    147       1.1  jdolecek 	ATPPC_ECP_CNFGA)
    148       1.1  jdolecek #define atppc_r_cnfgB(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh,\
    149       1.1  jdolecek 	ATPPC_ECP_CNFGB)
    150       1.1  jdolecek #define atppc_r_ecr(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh, \
    151       1.1  jdolecek 	ATPPC_ECP_ECR)
    152       1.1  jdolecek #define atppc_r_fifo(atppc) bus_space_read_1((atppc)->sc_iot, (atppc)->sc_ioh, \
    153       1.1  jdolecek 	ATPPC_ECP_D_FIFO)
    154       1.1  jdolecek #define atppc_r_fifo_multi(atppc, buf, count) bus_space_read_multi_1( \
    155       1.1  jdolecek 	(atppc)->sc_iot, (atppc)->sc_ioh, ATPPC_ECP_D_FIFO, (buf), (count))
    156       1.1  jdolecek 
    157       1.1  jdolecek /* Writing macros */
    158       1.1  jdolecek #define atppc_w_dtr(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    159       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_SPP_DTR, (byte))
    160       1.1  jdolecek #define atppc_w_str(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    161       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_SPP_STR, (byte))
    162       1.1  jdolecek #define atppc_w_ctr(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    163       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_SPP_CTR, (byte))
    164       1.1  jdolecek #define atppc_w_eppA(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    165       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_EPP_ADDR, (byte))
    166       1.1  jdolecek #define atppc_w_eppD(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    167       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_EPP_DATA, (byte))
    168       1.1  jdolecek #define atppc_w_eppD_multi(atppc, buf, count) bus_space_write_multi_1( \
    169       1.1  jdolecek 	(atppc)->sc_iot, (atppc)->sc_ioh, ATPPC_EPP_DATA, (buf), (count))
    170       1.1  jdolecek #define atppc_w_cnfgA(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    171       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_ECP_CNFGA, (byte))
    172       1.1  jdolecek #define atppc_w_cnfgB(atppc, byte) bus_space_read_1((atppc)->sc_iot, \
    173       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_ECP_CNFGB, (byte))
    174       1.1  jdolecek #define atppc_w_ecr(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    175       1.1  jdolecek 	(atppc)->sc_ioh, ATPPC_ECP_ECR, (byte))
    176       1.1  jdolecek #define atppc_w_fifo(atppc, byte) bus_space_write_1((atppc)->sc_iot, \
    177  1.3.10.1      kent 	(atppc)->sc_ioh, ATPPC_ECP_D_FIFO, (byte))
    178       1.1  jdolecek #define atppc_w_fifo_multi(atppc, buf, count) bus_space_write_multi_1( \
    179       1.1  jdolecek 	(atppc)->sc_iot, (atppc)->sc_ioh, ATPPC_ECP_D_FIFO, (buf), (count))
    180       1.1  jdolecek 
    181       1.1  jdolecek /* Barrier macros for reads/writes */
    182       1.1  jdolecek #define atppc_barrier_r(atppc) bus_space_barrier((atppc)->sc_iot, \
    183  1.3.10.1      kent 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_READ)
    184       1.1  jdolecek #define atppc_barrier_w(atppc) bus_space_barrier((atppc)->sc_iot, \
    185  1.3.10.1      kent 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_WRITE)
    186       1.1  jdolecek #define atppc_barrier(atppc) bus_space_barrier((atppc)->sc_iot, \
    187       1.1  jdolecek 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_WRITE | \
    188  1.3.10.1      kent 	BUS_SPACE_BARRIER_READ)
    189       1.1  jdolecek 
    190       1.1  jdolecek /* These are defined in man pages but don't actually exist for all acrhs */
    191       1.1  jdolecek #define atppc_barrier_rr(atppc) bus_space_barrier((atppc)->sc_iot, \
    192  1.3.10.1      kent 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_READ_BEFORE_READ)
    193       1.1  jdolecek #define atppc_barrier_rw(atppc) bus_space_barrier((atppc)->sc_iot, \
    194  1.3.10.1      kent 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_READ_BEFORE_WRITE)
    195       1.1  jdolecek #define atppc_barrier_rb(atppc) bus_space_barrier((atppc)->sc_iot, \
    196       1.1  jdolecek 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_READ_BEFORE_READ | \
    197  1.3.10.1      kent 	BUS_SPACE_BARRIER_READ_BEFORE_WRITE)
    198       1.1  jdolecek #define atppc_barrier_wr(atppc) bus_space_barrier((atppc)->sc_iot, \
    199  1.3.10.1      kent 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_WRITE_BEFORE_READ)
    200       1.1  jdolecek #define atppc_barrier_ww(atppc) bus_space_barrier((atppc)->sc_iot, \
    201  1.3.10.1      kent 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE)
    202       1.1  jdolecek #define atppc_barrier_wb(atppc) bus_space_barrier((atppc)->sc_iot, \
    203       1.1  jdolecek 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_WRITE_BEFORE_READ | \
    204  1.3.10.1      kent 	BUS_SPACE_BARRIER_WRITE_BEFORE_WRITE)
    205       1.1  jdolecek #define atppc_barrier_sync(atppc) bus_space_barrier((atppc)->sc_iot, \
    206       1.1  jdolecek 	(atppc)->sc_ioh, 0, IO_LPTSIZE, BUS_SPACE_BARRIER_SYNC)
    207  1.3.10.1      kent 
    208       1.1  jdolecek /*
    209       1.1  jdolecek  * Register defines for the PC873xx parts
    210       1.1  jdolecek  */
    211       1.1  jdolecek 
    212       1.1  jdolecek #define PC873_FER	0x00
    213       1.1  jdolecek #define PC873_PPENABLE	(1<<0)
    214       1.1  jdolecek #define PC873_FAR	0x01
    215       1.1  jdolecek #define PC873_PTR	0x02
    216       1.1  jdolecek #define PC873_CFGLOCK	(1<<6)
    217       1.1  jdolecek #define PC873_EPPRDIR	(1<<7)
    218       1.1  jdolecek #define PC873_EXTENDED	(1<<7)
    219       1.1  jdolecek #define PC873_LPTBIRQ7	(1<<3)
    220       1.1  jdolecek #define PC873_FCR	0x03
    221       1.1  jdolecek #define PC873_ZWS	(1<<5)
    222       1.1  jdolecek #define PC873_ZWSPWDN	(1<<6)
    223       1.1  jdolecek #define PC873_PCR	0x04
    224       1.1  jdolecek #define PC873_EPPEN	(1<<0)
    225       1.1  jdolecek #define PC873_EPP19	(1<<1)
    226       1.1  jdolecek #define PC873_ECPEN	(1<<2)
    227       1.1  jdolecek #define PC873_ECPCLK	(1<<3)
    228       1.1  jdolecek #define PC873_PMC	0x06
    229       1.1  jdolecek #define PC873_TUP	0x07
    230       1.1  jdolecek #define PC873_SID	0x08
    231       1.1  jdolecek #define PC873_PNP0	0x1b
    232       1.1  jdolecek #define PC873_PNP1	0x1c
    233       1.1  jdolecek #define PC873_LPTBA	0x19
    234       1.1  jdolecek 
    235       1.1  jdolecek /*
    236       1.1  jdolecek  * Register defines for the SMC FDC37C66xGT parts
    237       1.1  jdolecek  */
    238       1.1  jdolecek 
    239       1.1  jdolecek /* Init codes */
    240       1.1  jdolecek #define SMC665_iCODE	0x55
    241       1.1  jdolecek #define SMC666_iCODE	0x44
    242       1.1  jdolecek 
    243       1.1  jdolecek /* Base configuration ports */
    244       1.1  jdolecek #define SMC66x_CSR	0x3F0
    245       1.1  jdolecek #define SMC666_CSR	0x370		/* hard-configured value for 666 */
    246       1.1  jdolecek 
    247       1.1  jdolecek /* Bits */
    248       1.1  jdolecek #define SMC_CR1_ADDR	0x3		/* bit 0 and 1 */
    249       1.1  jdolecek #define SMC_CR1_MODE	(1<<3)		/* bit 3 */
    250       1.1  jdolecek #define SMC_CR4_EMODE	0x3		/* bits 0 and 1 */
    251       1.1  jdolecek #define SMC_CR4_EPPTYPE	(1<<6)		/* bit 6 */
    252       1.1  jdolecek 
    253       1.1  jdolecek /* Extended modes */
    254       1.1  jdolecek #define SMC_SPP		0x0		/* SPP */
    255       1.1  jdolecek #define SMC_EPPSPP	0x1		/* EPP and SPP */
    256       1.1  jdolecek #define SMC_ECP		0x2 		/* ECP */
    257       1.1  jdolecek #define SMC_ECPEPP	0x3		/* ECP and EPP */
    258       1.1  jdolecek 
    259       1.1  jdolecek /*
    260       1.1  jdolecek  * Register defines for the SMC FDC37C935 parts
    261       1.1  jdolecek  */
    262       1.1  jdolecek 
    263       1.1  jdolecek /* Configuration ports */
    264       1.1  jdolecek #define SMC935_CFG	0x370
    265       1.1  jdolecek #define SMC935_IND	0x370
    266       1.1  jdolecek #define SMC935_DAT	0x371
    267       1.1  jdolecek 
    268       1.1  jdolecek /* Registers */
    269       1.1  jdolecek #define SMC935_LOGDEV	0x7
    270       1.1  jdolecek #define SMC935_ID	0x20
    271       1.1  jdolecek #define SMC935_PORTHI	0x60
    272       1.1  jdolecek #define SMC935_PORTLO	0x61
    273       1.1  jdolecek #define SMC935_PPMODE	0xf0
    274       1.1  jdolecek 
    275       1.1  jdolecek /* Parallel port modes */
    276       1.1  jdolecek #define SMC935_SPP	0x38 + 0
    277       1.1  jdolecek #define SMC935_EPP19SPP	0x38 + 1
    278       1.1  jdolecek #define SMC935_ECP	0x38 + 2
    279       1.1  jdolecek #define SMC935_ECPEPP19	0x38 + 3
    280       1.1  jdolecek #define SMC935_CENT	0x38 + 4
    281       1.1  jdolecek #define SMC935_EPP17SPP	0x38 + 5
    282       1.1  jdolecek #define SMC935_UNUSED	0x38 + 6
    283       1.1  jdolecek #define SMC935_ECPEPP17	0x38 + 7
    284       1.1  jdolecek 
    285       1.1  jdolecek /*
    286       1.1  jdolecek  * Register defines for the Winbond W83877F parts
    287       1.1  jdolecek  */
    288       1.1  jdolecek 
    289       1.1  jdolecek #define WINB_W83877F_ID		0xa
    290       1.1  jdolecek #define WINB_W83877AF_ID	0xb
    291       1.1  jdolecek 
    292       1.1  jdolecek /* Configuration bits */
    293       1.1  jdolecek #define WINB_HEFERE	(1<<5)		/* CROC bit 5 */
    294       1.1  jdolecek #define WINB_HEFRAS	(1<<0)		/* CR16 bit 0 */
    295       1.1  jdolecek 
    296       1.1  jdolecek #define WINB_PNPCVS	(1<<2)		/* CR16 bit 2 */
    297       1.1  jdolecek #define WINB_CHIPID	0xf		/* CR9 bits 0-3 */
    298       1.1  jdolecek 
    299       1.1  jdolecek #define WINB_PRTMODS0	(1<<2)		/* CR0 bit 2 */
    300       1.1  jdolecek #define WINB_PRTMODS1	(1<<3)		/* CR0 bit 3 */
    301       1.1  jdolecek #define WINB_PRTMODS2	(1<<7)		/* CR9 bit 7 */
    302       1.1  jdolecek 
    303       1.1  jdolecek /* W83877F modes: CR9/bit7 | CR0/bit3 | CR0/bit2 */
    304       1.1  jdolecek #define WINB_W83757	0x0
    305       1.1  jdolecek #define WINB_EXTFDC	0x4
    306       1.1  jdolecek #define WINB_EXTADP	0x8
    307       1.1  jdolecek #define WINB_EXT2FDD	0xc
    308       1.1  jdolecek #define WINB_JOYSTICK	0x80
    309       1.1  jdolecek 
    310       1.1  jdolecek #define WINB_PARALLEL	0x80
    311       1.1  jdolecek #define WINB_EPP_SPP	0x4
    312       1.1  jdolecek #define WINB_ECP	0x8
    313       1.1  jdolecek #define WINB_ECP_EPP	0xc
    314       1.1  jdolecek 
    315       1.1  jdolecek #endif /* __ATPPCREG_H */
    316