aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-05-05 09:52:06 -0700
committerJohn Rigby <john.rigby@linaro.org>2011-06-28 15:57:51 +0100
commit7dd818ccbb8d7ef133e40ac1e7ebb3c71b8923c5 (patch)
treeb2264b9e55a0143a639a9dbb6949b183744d8d91 /include
parentb1af6f532e0d348b153d5c148369229d24af361a (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.h13
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__ */