Blame view
include/usb_ether.h
4.16 KB
83d290c56 SPDX: Convert all... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
89d48367e Add USB host ethe... |
2 3 |
/* * Copyright (c) 2011 The Chromium OS Authors. |
89d48367e Add USB host ethe... |
4 5 6 7 8 9 |
*/ #ifndef __USB_ETHER_H__ #define __USB_ETHER_H__ #include <net.h> |
89d48367e Add USB host ethe... |
10 |
|
c8c2797c3 dm: usb: eth: Sup... |
11 |
/* TODO(sjg@chromium.org): Remove @pusb_dev when all boards use CONFIG_DM_ETH */ |
89d48367e Add USB host ethe... |
12 13 |
struct ueth_data { /* eth info */ |
c8c2797c3 dm: usb: eth: Sup... |
14 15 16 17 18 19 20 21 22 23 24 |
#ifdef CONFIG_DM_ETH uint8_t *rxbuf; int rxsize; int rxlen; /* Total bytes available in rxbuf */ int rxptr; /* Current position in rxbuf */ #else struct eth_device eth_dev; /* used with eth_register */ /* driver private */ void *dev_priv; #endif int phy_id; /* mii phy id */ |
89d48367e Add USB host ethe... |
25 26 27 |
/* usb info */ struct usb_device *pusb_dev; /* this usb_device */ |
c8c2797c3 dm: usb: eth: Sup... |
28 29 30 31 32 33 |
unsigned char ifnum; /* interface number */ unsigned char ep_in; /* in endpoint */ unsigned char ep_out; /* out ....... */ unsigned char ep_int; /* interrupt . */ unsigned char subclass; /* as in overview */ unsigned char protocol; /* .............. */ |
89d48367e Add USB host ethe... |
34 |
unsigned char irqinterval; /* Intervall for IRQ Pipe */ |
89d48367e Add USB host ethe... |
35 |
}; |
c8c2797c3 dm: usb: eth: Sup... |
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#ifdef CONFIG_DM_ETH /** * usb_ether_register() - register a new USB ethernet device * * This selects the correct USB interface and figures out the endpoints to use. * * @dev: USB device * @ss: Place to put USB ethernet data * @rxsize: Maximum size to allocate for the receive buffer * @return 0 if OK, -ve on error */ int usb_ether_register(struct udevice *dev, struct ueth_data *ueth, int rxsize); /** * usb_ether_deregister() - deregister a USB ethernet device * * @ueth: USB Ethernet device * @return 0 */ int usb_ether_deregister(struct ueth_data *ueth); /** * usb_ether_receive() - recieve a packet from the bulk in endpoint * * The packet is stored in the internal buffer ready for processing. * * @ueth: USB Ethernet device * @rxsize: Maximum size to receive * @return 0 if a packet was received, -EAGAIN if not, -ENOSPC if @rxsize is * larger than the size passed ot usb_ether_register(), other -ve on error */ int usb_ether_receive(struct ueth_data *ueth, int rxsize); /** * usb_ether_get_rx_bytes() - obtain bytes from the internal packet buffer * * This should be called repeatedly to obtain packet data until it returns 0. * After each packet is processed, call usb_ether_advance_rxbuf() to move to * the next one. * * @ueth: USB Ethernet device * @ptrp: Returns a pointer to the start of the next packet if there is * one available * @return number of bytes available, or 0 if none */ int usb_ether_get_rx_bytes(struct ueth_data *ueth, uint8_t **ptrp); /** * usb_ether_advance_rxbuf() - Advance to the next packet in the internal buffer * * After processing the data returned by usb_ether_get_rx_bytes(), call this * function to move to the next packet. You must specify the number of bytes * you have processed in @num_bytes. * * @ueth: USB Ethernet device * @num_bytes: Number of bytes to skip, or -1 to skip all bytes */ void usb_ether_advance_rxbuf(struct ueth_data *ueth, int num_bytes); #else |
89d48367e Add USB host ethe... |
95 |
/* |
440a57423 usb: net: don't i... |
96 97 |
* Function definitions for each USB ethernet driver go here * (declaration is unconditional, compilation is conditional) |
89d48367e Add USB host ethe... |
98 |
*/ |
9b70e0077 Add support for A... |
99 100 101 102 103 |
void asix_eth_before_probe(void); int asix_eth_probe(struct usb_device *dev, unsigned int ifnum, struct ueth_data *ss); int asix_eth_get_info(struct usb_device *dev, struct ueth_data *ss, struct eth_device *eth); |
89d48367e Add USB host ethe... |
104 |
|
e9954b867 usb: eth: add ASI... |
105 106 107 108 109 |
void ax88179_eth_before_probe(void); int ax88179_eth_probe(struct usb_device *dev, unsigned int ifnum, struct ueth_data *ss); int ax88179_eth_get_info(struct usb_device *dev, struct ueth_data *ss, struct eth_device *eth); |
df4fb1c36 usb: net: introdu... |
110 111 112 113 114 |
void mcs7830_eth_before_probe(void); int mcs7830_eth_probe(struct usb_device *dev, unsigned int ifnum, struct ueth_data *ss); int mcs7830_eth_get_info(struct usb_device *dev, struct ueth_data *ss, struct eth_device *eth); |
291391bed Add support for S... |
115 116 117 118 119 |
void smsc95xx_eth_before_probe(void); int smsc95xx_eth_probe(struct usb_device *dev, unsigned int ifnum, struct ueth_data *ss); int smsc95xx_eth_get_info(struct usb_device *dev, struct ueth_data *ss, struct eth_device *eth); |
9dc8ba19c usb: eth: add Rea... |
120 121 122 123 124 125 |
void r8152_eth_before_probe(void); int r8152_eth_probe(struct usb_device *dev, unsigned int ifnum, struct ueth_data *ss); int r8152_eth_get_info(struct usb_device *dev, struct ueth_data *ss, struct eth_device *eth); |
c8c2797c3 dm: usb: eth: Sup... |
126 |
#endif |
291391bed Add support for S... |
127 |
|
89d48367e Add USB host ethe... |
128 |
#endif /* __USB_ETHER_H__ */ |