/*
 * ciscode.h
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * The initial developer of the original code is David A. Hinds
 * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
 * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
 *
 * (C) 1999		David A. Hinds
 */

#ifndef _LINUX_CISCODE_H
#define _LINUX_CISCODE_H

/* Manufacturer and Product ID codes */

#define MANFID_3COM			0x0101
#define PRODID_3COM_3CXEM556		0x0035
#define PRODID_3COM_3CCFEM556		0x0556
#define PRODID_3COM_3C562		0x0562

#define MANFID_ACCTON			0x01bf
#define PRODID_ACCTON_EN2226		0x010a

#define MANFID_ADAPTEC			0x012f
#define PRODID_ADAPTEC_SCSI		0x0001

#define MANFID_ATT			0xffff
#define PRODID_ATT_KIT			0x0100

#define MANFID_CONTEC			0xc001

#define MANFID_FUJITSU			0x0004
#define PRODID_FUJITSU_MBH10302		0x0004
#define PRODID_FUJITSU_MBH10304		0x1003
#define PRODID_FUJITSU_LA501		0x2000

#define MANFID_IBM			0x00a4
#define PRODID_IBM_HOME_AND_AWAY	0x002e

#define MANFID_INTEL			0x0089
#define PRODID_INTEL_DUAL_RS232		0x0301
#define PRODID_INTEL_2PLUS		0x8422

#define MANFID_KME			0x0032
#define PRODID_KME_KXLC005_A		0x0704
#define PRODID_KME_KXLC005_B		0x2904

#define MANFID_LINKSYS			0x0143
#define PRODID_LINKSYS_PCMLM28		0xc0ab
#define PRODID_LINKSYS_3400		0x3341

#define MANFID_MEGAHERTZ		0x0102
#define PRODID_MEGAHERTZ_VARIOUS	0x0000
#define PRODID_MEGAHERTZ_EM3288		0x0006

#define MANFID_MACNICA			0xc00b

#define MANFID_MOTOROLA			0x0109
#define PRODID_MOTOROLA_MARINER		0x0501

#define MANFID_NATINST			0x010b
#define PRODID_NATINST_QUAD_RS232	0xd180

#define MANFID_NEW_MEDIA		0x0057

#define MANFID_NOKIA			0x0124
#define PRODID_NOKIA_CARDPHONE		0x0900

#define MANFID_OLICOM			0x0121
#define PRODID_OLICOM_OC2231		0x3122
#define PRODID_OLICOM_OC2232		0x3222

#define MANFID_OMEGA			0x0137
#define PRODID_OMEGA_QSP_100		0x0025

#define MANFID_OSITECH			0x0140
#define PRODID_OSITECH_JACK_144		0x0001
#define PRODID_OSITECH_JACK_288		0x0002
#define PRODID_OSITECH_JACK_336		0x0007
#define PRODID_OSITECH_SEVEN		0x0008

#define MANFID_OXSEMI			0x0279

#define MANFID_PIONEER			0x000b

#define MANFID_PSION			0x016c
#define PRODID_PSION_NET100		0x0023

#define MANFID_QUATECH			0x0137
#define PRODID_QUATECH_SPP100		0x0003
#define PRODID_QUATECH_DUAL_RS232	0x0012
#define PRODID_QUATECH_DUAL_RS232_D1	0x0007
#define PRODID_QUATECH_DUAL_RS232_D2	0x0052
#define PRODID_QUATECH_DUAL_RS232_G	0x004d
#define PRODID_QUATECH_QUAD_RS232	0x001b
#define PRODID_QUATECH_DUAL_RS422	0x000e
#define PRODID_QUATECH_QUAD_RS422	0x0045

#define MANFID_SMC			0x0108
#define PRODID_SMC_ETHER		0x0105

#define MANFID_SOCKET			0x0104
#define PRODID_SOCKET_DUAL_RS232	0x0006
#define PRODID_SOCKET_EIO		0x000a
#define PRODID_SOCKET_LPE		0x000d
#define PRODID_SOCKET_LPE_CF		0x0075

#define MANFID_SUNDISK			0x0045

#define MANFID_TDK			0x0105
#define PRODID_TDK_CF010		0x0900
#define PRODID_TDK_NP9610		0x0d0a
#define PRODID_TDK_MN3200		0x0e0a
#define PRODID_TDK_GN3410		0x4815

#define MANFID_TOSHIBA			0x0098

#define MANFID_UNGERMANN 0x02c0

#define MANFID_XIRCOM			0x0105

#define MANFID_POSSIO			0x030c
#define PRODID_POSSIO_GCC		0x0003

#define MANFID_NEC			0x0010

#endif /* _LINUX_CISCODE_H */
