blob: b38d037fbe0f1014305512ae077fa8f72697aa9b
1 | /* |
2 | * Copyright (c) 2011 The Chromium OS Authors. |
3 | * |
4 | * SPDX-License-Identifier: GPL-2.0+ |
5 | */ |
6 | |
7 | #ifndef __USB_ETHER_H__ |
8 | #define __USB_ETHER_H__ |
9 | |
10 | #include <net.h> |
11 | |
12 | /* |
13 | * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble |
14 | * and FCS/CRC (frame check sequence). |
15 | */ |
16 | #define ETH_ALEN 6 /* Octets in one ethernet addr */ |
17 | #define ETH_HLEN 14 /* Total octets in header. */ |
18 | #define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ |
19 | #define ETH_DATA_LEN 1500 /* Max. octets in payload */ |
20 | #define ETH_FRAME_LEN PKTSIZE_ALIGN /* Max. octets in frame sans FCS */ |
21 | #define ETH_FCS_LEN 4 /* Octets in the FCS */ |
22 | |
23 | struct ueth_data { |
24 | /* eth info */ |
25 | struct eth_device eth_dev; /* used with eth_register */ |
26 | int phy_id; /* mii phy id */ |
27 | |
28 | /* usb info */ |
29 | struct usb_device *pusb_dev; /* this usb_device */ |
30 | unsigned char ifnum; /* interface number */ |
31 | unsigned char ep_in; /* in endpoint */ |
32 | unsigned char ep_out; /* out ....... */ |
33 | unsigned char ep_int; /* interrupt . */ |
34 | unsigned char subclass; /* as in overview */ |
35 | unsigned char protocol; /* .............. */ |
36 | unsigned char irqinterval; /* Intervall for IRQ Pipe */ |
37 | |
38 | /* driver private */ |
39 | void *dev_priv; |
40 | }; |
41 | |
42 | /* |
43 | * Function definitions for each USB ethernet driver go here |
44 | * (declaration is unconditional, compilation is conditional) |
45 | */ |
46 | void asix_eth_before_probe(void); |
47 | int asix_eth_probe(struct usb_device *dev, unsigned int ifnum, |
48 | struct ueth_data *ss); |
49 | int asix_eth_get_info(struct usb_device *dev, struct ueth_data *ss, |
50 | struct eth_device *eth); |
51 | |
52 | void ax88179_eth_before_probe(void); |
53 | int ax88179_eth_probe(struct usb_device *dev, unsigned int ifnum, |
54 | struct ueth_data *ss); |
55 | int ax88179_eth_get_info(struct usb_device *dev, struct ueth_data *ss, |
56 | struct eth_device *eth); |
57 | |
58 | void mcs7830_eth_before_probe(void); |
59 | int mcs7830_eth_probe(struct usb_device *dev, unsigned int ifnum, |
60 | struct ueth_data *ss); |
61 | int mcs7830_eth_get_info(struct usb_device *dev, struct ueth_data *ss, |
62 | struct eth_device *eth); |
63 | |
64 | void smsc95xx_eth_before_probe(void); |
65 | int smsc95xx_eth_probe(struct usb_device *dev, unsigned int ifnum, |
66 | struct ueth_data *ss); |
67 | int smsc95xx_eth_get_info(struct usb_device *dev, struct ueth_data *ss, |
68 | struct eth_device *eth); |
69 | |
70 | #endif /* __USB_ETHER_H__ */ |
71 |