^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (c) 1999-2013 Petko Manolov (petkan@nucleusys.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef PEGASUS_DEV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define PEGASUS_II 0x80000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define HAS_HOME_PNA 0x40000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define PEGASUS_MTU 1536
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define EPROM_WRITE 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define EPROM_READ 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define EPROM_DONE 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define EPROM_WR_ENABLE 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define EPROM_LOAD 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define PHY_DONE 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define PHY_READ 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define PHY_WRITE 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define DEFAULT_GPIO_RESET 0x24
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define DEFAULT_GPIO_SET 0x26
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define PEGASUS_PRESENT 0x00000001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define PEGASUS_TX_BUSY 0x00000004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #define PEGASUS_RX_BUSY 0x00000008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define CTRL_URB_RUNNING 0x00000010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define CTRL_URB_SLEEP 0x00000020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define PEGASUS_UNPLUG 0x00000040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define PEGASUS_RX_URB_FAIL 0x00000080
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define RX_MULTICAST 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define RX_PROMISCUOUS 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define REG_TIMEOUT (HZ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #define PEGASUS_TX_TIMEOUT (HZ*10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define TX_UNDERRUN 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define EXCESSIVE_COL 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define LATE_COL 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define NO_CARRIER 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define LOSS_CARRIER 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define JABBER_TIMEOUT 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define LINK_STATUS 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define PEGASUS_REQT_READ 0xc0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define PEGASUS_REQT_WRITE 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define PEGASUS_REQ_GET_REGS 0xf0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define PEGASUS_REQ_SET_REGS 0xf1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define PEGASUS_REQ_SET_REG PEGASUS_REQ_SET_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) enum pegasus_registers {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) EthCtrl0 = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) EthCtrl1 = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) EthCtrl2 = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) EthID = 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) Reg1d = 0x1d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) EpromOffset = 0x20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) EpromData = 0x21, /* 0x21 low, 0x22 high byte */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) EpromCtrl = 0x23,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) PhyAddr = 0x25,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) PhyData = 0x26, /* 0x26 low, 0x27 high byte */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) PhyCtrl = 0x28,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) UsbStst = 0x2a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) EthTxStat0 = 0x2b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) EthTxStat1 = 0x2c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) EthRxStat = 0x2d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) WakeupControl = 0x78,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) Reg7b = 0x7b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) Gpio0 = 0x7e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) Gpio1 = 0x7f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) Reg81 = 0x81,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) typedef struct pegasus {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) struct usb_device *usb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) struct usb_interface *intf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) struct net_device *net;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) struct mii_if_info mii;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) unsigned flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) unsigned features;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) u32 msg_enable;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) u32 wolopts;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) int dev_index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) int intr_interval;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) struct tasklet_struct rx_tl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) struct delayed_work carrier_check;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) struct urb *rx_urb, *tx_urb, *intr_urb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) struct sk_buff *rx_skb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) int chip;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) unsigned char intr_buff[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) __u8 tx_buff[PEGASUS_MTU];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) __u8 eth_regs[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) __u8 phy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) __u8 gpio_res;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) } pegasus_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) struct usb_eth_dev {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) char *name;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) __u16 vendor;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) __u16 device;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) __u32 private; /* LSB is gpio reset value */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #define VENDOR_3COM 0x0506
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) #define VENDOR_ABOCOM 0x07b8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #define VENDOR_ACCTON 0x083a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #define VENDOR_ADMTEK 0x07a6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) #define VENDOR_AEILAB 0x3334
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) #define VENDOR_ALLIEDTEL 0x07c9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) #define VENDOR_ATEN 0x0557
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) #define VENDOR_BELKIN 0x050d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define VENDOR_BILLIONTON 0x08dd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) #define VENDOR_COMPAQ 0x049f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) #define VENDOR_COREGA 0x07aa
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) #define VENDOR_DLINK 0x2001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) #define VENDOR_ELCON 0x0db7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) #define VENDOR_ELECOM 0x056e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) #define VENDOR_ELSA 0x05cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #define VENDOR_GIGABYTE 0x1044
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) #define VENDOR_HAWKING 0x0e66
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define VENDOR_HP 0x03f0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define VENDOR_IODATA 0x04bb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #define VENDOR_KINGSTON 0x0951
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) #define VENDOR_LANEED 0x056e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define VENDOR_LINKSYS 0x066b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #define VENDOR_LINKSYS2 0x077b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) #define VENDOR_MELCO 0x0411
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #define VENDOR_MICROSOFT 0x045e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) #define VENDOR_MOBILITY 0x1342
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) #define VENDOR_NETGEAR 0x0846
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) #define VENDOR_OCT 0x0b39
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) #define VENDOR_SMARTBRIDGES 0x08d1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #define VENDOR_SMC 0x0707
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define VENDOR_SOHOWARE 0x15e8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #define VENDOR_SIEMENS 0x067c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) #else /* PEGASUS_DEV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) PEGASUS_DEV("3Com USB Ethernet 3C460B", VENDOR_3COM, 0x4601,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) PEGASUS_DEV("ATEN USB Ethernet UC-110T", VENDOR_ATEN, 0x2007,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) PEGASUS_DEV("USB HPNA/Ethernet", VENDOR_ABOCOM, 0x110c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) DEFAULT_GPIO_RESET | PEGASUS_II | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) PEGASUS_DEV("USB HPNA/Ethernet", VENDOR_ABOCOM, 0x4104,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) PEGASUS_DEV("USB HPNA/Ethernet", VENDOR_ABOCOM, 0x4004,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) PEGASUS_DEV("USB HPNA/Ethernet", VENDOR_ABOCOM, 0x4007,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) PEGASUS_DEV("USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x4102,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) PEGASUS_DEV("USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x4002,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) PEGASUS_DEV("USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x400b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) PEGASUS_DEV("USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x400c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) PEGASUS_DEV("USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0xabc1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) PEGASUS_DEV("USB 10/100 Fast Ethernet", VENDOR_ABOCOM, 0x200c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) PEGASUS_DEV("Accton USB 10/100 Ethernet Adapter", VENDOR_ACCTON, 0x1046,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) PEGASUS_DEV("SpeedStream USB 10/100 Ethernet", VENDOR_ACCTON, 0x5046,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) PEGASUS_DEV("Philips USB 10/100 Ethernet", VENDOR_ACCTON, 0xb004,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) PEGASUS_DEV("ADMtek ADM8511 \"Pegasus II\" USB Ethernet",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) VENDOR_ADMTEK, 0x8511,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) DEFAULT_GPIO_RESET | PEGASUS_II | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) PEGASUS_DEV("ADMtek ADM8513 \"Pegasus II\" USB Ethernet",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) VENDOR_ADMTEK, 0x8513,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) PEGASUS_DEV("ADMtek ADM8515 \"Pegasus II\" USB-2.0 Ethernet",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) VENDOR_ADMTEK, 0x8515,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) PEGASUS_DEV("ADMtek AN986 \"Pegasus\" USB Ethernet (evaluation board)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) VENDOR_ADMTEK, 0x0986,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) PEGASUS_DEV("AN986A USB MAC", VENDOR_ADMTEK, 1986,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) PEGASUS_DEV("AEI USB Fast Ethernet Adapter", VENDOR_AEILAB, 0x1701,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) PEGASUS_DEV("Allied Telesyn Int. AT-USB100", VENDOR_ALLIEDTEL, 0xb100,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) * Distinguish between this Belkin adaptor and the Belkin bluetooth adaptors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) * with the same product IDs by checking the device class too.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) PEGASUS_DEV_CLASS("Belkin F5D5050 USB Ethernet", VENDOR_BELKIN, 0x0121, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) PEGASUS_DEV("Belkin F5U122 10/100 USB Ethernet", VENDOR_BELKIN, 0x0122,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) PEGASUS_DEV("Billionton USB-100", VENDOR_BILLIONTON, 0x0986,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) PEGASUS_DEV("Billionton USBLP-100", VENDOR_BILLIONTON, 0x0987,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) PEGASUS_DEV("iPAQ Networking 10/100 USB", VENDOR_COMPAQ, 0x8511,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) PEGASUS_DEV("Billionton USBEL-100", VENDOR_BILLIONTON, 0x0988,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) PEGASUS_DEV("Billionton USBE-100", VENDOR_BILLIONTON, 0x8511,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) PEGASUS_DEV("Corega FEther USB-TX", VENDOR_COREGA, 0x0004,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) PEGASUS_DEV("Corega FEther USB-TXS", VENDOR_COREGA, 0x000d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) PEGASUS_DEV("D-Link DSB-650TX", VENDOR_DLINK, 0x4001,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) PEGASUS_DEV("D-Link DSB-650TX", VENDOR_DLINK, 0x4002,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) PEGASUS_DEV("D-Link DSB-650TX", VENDOR_DLINK, 0x4102,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) PEGASUS_DEV("D-Link DSB-650TX", VENDOR_DLINK, 0x400b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) PEGASUS_DEV("D-Link DSB-650TX", VENDOR_DLINK, 0x200c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) PEGASUS_DEV("D-Link DSB-650TX(PNA)", VENDOR_DLINK, 0x4003,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) PEGASUS_DEV("D-Link DSB-650", VENDOR_DLINK, 0xabc1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) PEGASUS_DEV("GOLDPFEIL USB Adapter", VENDOR_ELCON, 0x0002,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) DEFAULT_GPIO_RESET | PEGASUS_II | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) PEGASUS_DEV("ELECOM USB Ethernet LD-USB20", VENDOR_ELECOM, 0x4010,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) PEGASUS_DEV("EasiDock Ethernet", VENDOR_MOBILITY, 0x0304,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) PEGASUS_DEV("Elsa Micolink USB2Ethernet", VENDOR_ELSA, 0x3000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) PEGASUS_DEV("GIGABYTE GN-BR402W Wireless Router", VENDOR_GIGABYTE, 0x8002,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) PEGASUS_DEV("Hawking UF100 10/100 Ethernet", VENDOR_HAWKING, 0x400c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) PEGASUS_DEV("HP hn210c Ethernet USB", VENDOR_HP, 0x811c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) PEGASUS_DEV("IO DATA USB ET/TX", VENDOR_IODATA, 0x0904,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) PEGASUS_DEV("IO DATA USB ET/TX-S", VENDOR_IODATA, 0x0913,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) PEGASUS_DEV("IO DATA USB ETX-US2", VENDOR_IODATA, 0x093a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) PEGASUS_DEV("Kingston KNU101TX Ethernet", VENDOR_KINGSTON, 0x000a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) PEGASUS_DEV("LANEED USB Ethernet LD-USB/TX", VENDOR_LANEED, 0x4002,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) PEGASUS_DEV("LANEED USB Ethernet LD-USBL/TX", VENDOR_LANEED, 0x4005,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) PEGASUS_DEV("LANEED USB Ethernet LD-USB/TX", VENDOR_LANEED, 0x400b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) PEGASUS_DEV("LANEED USB Ethernet LD-USB/T", VENDOR_LANEED, 0xabc1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) PEGASUS_DEV("LANEED USB Ethernet LD-USB/TX", VENDOR_LANEED, 0x200c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) PEGASUS_DEV("Linksys USB10TX", VENDOR_LINKSYS, 0x2202,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) PEGASUS_DEV("Linksys USB100TX", VENDOR_LINKSYS, 0x2203,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) PEGASUS_DEV("Linksys USB100TX", VENDOR_LINKSYS, 0x2204,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) DEFAULT_GPIO_RESET | HAS_HOME_PNA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) PEGASUS_DEV("Linksys USB10T Ethernet Adapter", VENDOR_LINKSYS, 0x2206,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) PEGASUS_DEV("Linksys USBVPN1", VENDOR_LINKSYS2, 0x08b4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) PEGASUS_DEV("Linksys USB USB100TX", VENDOR_LINKSYS, 0x400b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) PEGASUS_DEV("Linksys USB10TX", VENDOR_LINKSYS, 0x200c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) PEGASUS_DEV("MELCO/BUFFALO LUA-TX", VENDOR_MELCO, 0x0001,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) PEGASUS_DEV("MELCO/BUFFALO LUA-TX", VENDOR_MELCO, 0x0005,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) PEGASUS_DEV("MELCO/BUFFALO LUA2-TX", VENDOR_MELCO, 0x0009,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) PEGASUS_DEV("Microsoft MN-110", VENDOR_MICROSOFT, 0x007a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) PEGASUS_DEV("NETGEAR FA101", VENDOR_NETGEAR, 0x1020,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) PEGASUS_DEV("OCT Inc.", VENDOR_OCT, 0x0109,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) PEGASUS_DEV("OCT USB TO Ethernet", VENDOR_OCT, 0x0901,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) PEGASUS_DEV("smartNIC 2 PnP Adapter", VENDOR_SMARTBRIDGES, 0x0003,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) PEGASUS_DEV("SMC 202 USB Ethernet", VENDOR_SMC, 0x0200,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) PEGASUS_DEV("SMC 2206 USB Ethernet", VENDOR_SMC, 0x0201,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) PEGASUS_DEV("SOHOware NUB100 Ethernet", VENDOR_SOHOWARE, 0x9100,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) DEFAULT_GPIO_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) PEGASUS_DEV("SOHOware NUB110 Ethernet", VENDOR_SOHOWARE, 0x9110,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) PEGASUS_DEV("SpeedStream USB 10/100 Ethernet", VENDOR_SIEMENS, 0x1001,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) DEFAULT_GPIO_RESET | PEGASUS_II)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) #endif /* PEGASUS_DEV */