/*
 * Copyright 2003 Digi International (www.digi.com)
 *	Scott H Kilau <Scott_Kilau at digi dot com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *	NOTE: THIS IS A SHARED HEADER. DO NOT CHANGE CODING STYLE!!!
 */

#ifndef __DGNC_PCI_H
#define __DGNC_PCI_H

#define PCIMAX 32			/* maximum number of PCI boards */

#define DIGI_VID				0x114F

#define PCI_DEVICE_CLASSIC_4_DID		0x0028
#define PCI_DEVICE_CLASSIC_8_DID		0x0029
#define PCI_DEVICE_CLASSIC_4_422_DID		0x00D0
#define PCI_DEVICE_CLASSIC_8_422_DID		0x00D1
#define PCI_DEVICE_NEO_4_DID			0x00B0
#define PCI_DEVICE_NEO_8_DID			0x00B1
#define PCI_DEVICE_NEO_2DB9_DID			0x00C8
#define PCI_DEVICE_NEO_2DB9PRI_DID		0x00C9
#define PCI_DEVICE_NEO_2RJ45_DID		0x00CA
#define PCI_DEVICE_NEO_2RJ45PRI_DID		0x00CB
#define PCI_DEVICE_NEO_1_422_DID		0x00CC
#define PCI_DEVICE_NEO_1_422_485_DID		0x00CD
#define PCI_DEVICE_NEO_2_422_485_DID		0x00CE
#define PCI_DEVICE_NEO_EXPRESS_8_DID		0x00F0
#define PCI_DEVICE_NEO_EXPRESS_4_DID		0x00F1
#define PCI_DEVICE_NEO_EXPRESS_4RJ45_DID	0x00F2
#define PCI_DEVICE_NEO_EXPRESS_8RJ45_DID	0x00F3
#define PCI_DEVICE_NEO_EXPRESS_4_IBM_DID	0x00F4

#define PCI_DEVICE_CLASSIC_4_PCI_NAME		"ClassicBoard 4 PCI"
#define PCI_DEVICE_CLASSIC_8_PCI_NAME		"ClassicBoard 8 PCI"
#define PCI_DEVICE_CLASSIC_4_422_PCI_NAME	"ClassicBoard 4 422 PCI"
#define PCI_DEVICE_CLASSIC_8_422_PCI_NAME	"ClassicBoard 8 422 PCI"
#define PCI_DEVICE_NEO_4_PCI_NAME		"Neo 4 PCI"
#define PCI_DEVICE_NEO_8_PCI_NAME		"Neo 8 PCI"
#define PCI_DEVICE_NEO_2DB9_PCI_NAME		"Neo 2 - DB9 Universal PCI"
#define PCI_DEVICE_NEO_2DB9PRI_PCI_NAME		"Neo 2 - DB9 Universal PCI - Powered Ring Indicator"
#define PCI_DEVICE_NEO_2RJ45_PCI_NAME		"Neo 2 - RJ45 Universal PCI"
#define PCI_DEVICE_NEO_2RJ45PRI_PCI_NAME	"Neo 2 - RJ45 Universal PCI - Powered Ring Indicator"
#define PCI_DEVICE_NEO_1_422_PCI_NAME		"Neo 1 422 PCI"
#define PCI_DEVICE_NEO_1_422_485_PCI_NAME	"Neo 1 422/485 PCI"
#define PCI_DEVICE_NEO_2_422_485_PCI_NAME	"Neo 2 422/485 PCI"

#define PCI_DEVICE_NEO_EXPRESS_8_PCI_NAME	"Neo 8 PCI Express"
#define PCI_DEVICE_NEO_EXPRESS_4_PCI_NAME	"Neo 4 PCI Express"
#define PCI_DEVICE_NEO_EXPRESS_4RJ45_PCI_NAME	"Neo 4 PCI Express RJ45"
#define PCI_DEVICE_NEO_EXPRESS_8RJ45_PCI_NAME	"Neo 8 PCI Express RJ45"
#define PCI_DEVICE_NEO_EXPRESS_4_IBM_PCI_NAME	"Neo 4 PCI Express IBM"


/* Size of Memory and I/O for PCI (4 K) */
#define PCI_RAM_SIZE				0x1000

/* Size of Memory (2MB) */
#define PCI_MEM_SIZE				0x1000

#endif
