diff options
author | Simon Glass <sjg@chromium.org> | 2011-05-05 09:52:06 -0700 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2011-06-28 15:57:51 +0100 |
commit | 7dd818ccbb8d7ef133e40ac1e7ebb3c71b8923c5 (patch) | |
tree | b2264b9e55a0143a639a9dbb6949b183744d8d91 /include | |
parent | b1af6f532e0d348b153d5c148369229d24af361a (diff) |
Add support for SMSC95XX USB 2.0 10/100MBit Ethernet Adapter
The SMSC95XX is a USB hub with a built-in Ethernet adapter. This adds support
for this, using the USB host network framework.
TEST=usb start; bootp; tftp ...
Changes for v2:
- Coding style cleanup
- Changed some comments as suggested
- eth_set_hwaddr -> eth_write_hwaddr
- tided up other users of eth_getenv_enetaddr_by_index()
Changes for v3:
- Drop tfpserverip patch
- Change turbo_mode to #define
- Fix tfpserverip patch bleed
Changes for v4:
- Dropped Tegra2 specific bit
- Added patch in place of tftpserverip patch, to speed up successive network commands on asix
- Fixed a few broken bits in SMSC from my testing
Changes for v5:
- Code style clean-ups in SMSC
- Cleaned up debugging of errors in SMSC driver
- Changed NULL to "eth" in eth_getenv_enetaddr_by_index() API
Changes for v6:
- Adjust documentation file according to Wolfgang's comments
- Set NET_IP_ALIGN to 0 always
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/usb_ether.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/usb_ether.h b/include/usb_ether.h index 825c27518..a7fb26bf7 100644 --- a/include/usb_ether.h +++ b/include/usb_ether.h @@ -51,6 +51,11 @@ struct ueth_data { unsigned char irqinterval; /* Intervall for IRQ Pipe */ /* private fields for each driver can go here if needed */ +#ifdef CONFIG_USB_ETHER_SMSC95XX + size_t rx_urb_size; /* maximum USB URB size */ + u32 mac_cr; /* MAC control register value */ + int have_hwaddr; /* 1 if we have a hardware MAC address */ +#endif }; /* @@ -65,4 +70,12 @@ int asix_eth_get_info(struct usb_device *dev, struct ueth_data *ss, struct eth_device *eth); #endif +#ifdef CONFIG_USB_ETHER_SMSC95XX +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); +#endif + #endif /* __USB_ETHER_H__ */ |