129615Sjmg/*
229615Sjmg * Copyright (c) 1996, Sujal M. Patel
329615Sjmg * All rights reserved.
429615Sjmg *
529615Sjmg * Redistribution and use in source and binary forms, with or without
629615Sjmg * modification, are permitted provided that the following conditions
729615Sjmg * are met:
829615Sjmg * 1. Redistributions of source code must retain the above copyright
929615Sjmg *    notice, this list of conditions and the following disclaimer.
1029615Sjmg * 2. Redistributions in binary form must reproduce the above copyright
1129615Sjmg *    notice, this list of conditions and the following disclaimer in the
1229615Sjmg *    documentation and/or other materials provided with the distribution.
1329615Sjmg * 3. All advertising materials mentioning features or use of this software
1429615Sjmg *    must display the following acknowledgement:
1529615Sjmg *      This product includes software developed by Sujal M. Patel
1629615Sjmg * 4. Neither the name of the author nor the names of any co-contributors
1729615Sjmg *    may be used to endorse or promote products derived from this software
1829615Sjmg *    without specific prior written permission.
1929615Sjmg *
2029615Sjmg * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
2129615Sjmg * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2229615Sjmg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2329615Sjmg * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2429615Sjmg * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2529615Sjmg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2629615Sjmg * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2729615Sjmg * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2829615Sjmg * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2929615Sjmg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3029615Sjmg * SUCH DAMAGE.
3129615Sjmg *
3250964Speter * $FreeBSD$
3329615Sjmg */
3429615Sjmg
3529615Sjmg
3629615Sjmg/* Maximum Number of PnP Devices.  6 should be plenty */
3729615Sjmg#define MAX_CARDS 6
3829615Sjmg
3929615Sjmg
4029615Sjmg/* Static ports */
4129615Sjmg#define ADDRESS			0x279
4229615Sjmg#define WRITE_DATA		0xa79
4329615Sjmg
4429615Sjmg
4529615Sjmg/* PnP Registers.  Write to ADDRESS and then use WRITE/READ_DATA */
4629615Sjmg#define SET_RD_DATA		0x00
4729615Sjmg#define SERIAL_ISOLATION	0x01
4829615Sjmg#define WAKE			0x03
4929615Sjmg#define	RESOURCE_DATA		0x04
5029615Sjmg#define STATUS			0x05
5129615Sjmg#define SET_CSN			0x06
5229615Sjmg
5329615Sjmg/* Small Resource Item names */
5429615Sjmg#define PNP_VERSION		0x1
5529615Sjmg#define LOG_DEVICE_ID		0x2
5629615Sjmg#define COMP_DEVICE_ID		0x3
5729615Sjmg#define IRQ_FORMAT		0x4
5829615Sjmg#define DMA_FORMAT		0x5
5929615Sjmg#define START_DEPEND_FUNC	0x6
6029615Sjmg#define END_DEPEND_FUNC		0x7
6129615Sjmg#define IO_PORT_DESC		0x8
6229615Sjmg#define FIXED_IO_PORT_DESC	0x9
6329615Sjmg#define SM_RES_RESERVED		0xa-0xd
6429615Sjmg#define SM_VENDOR_DEFINED	0xe
6529615Sjmg#define END_TAG			0xf
6629615Sjmg
6729615Sjmg/* Large Resource Item names */
6829615Sjmg#define MEMORY_RANGE_DESC	0x1
6929615Sjmg#define ID_STRING_ANSI		0x2
7029615Sjmg#define ID_STRING_UNICODE	0x3
7129615Sjmg#define LG_VENDOR_DEFINED	0x4
7229615Sjmg#define _32BIT_MEM_RANGE_DESC	0x5
7329615Sjmg#define _32BIT_FIXED_LOC_DESC	0x6
7429615Sjmg#define LG_RES_RESERVED		0x7-0x7f
75