Skip to content
Snippets Groups Projects
Commit 291391be authored by Simon Glass's avatar Simon Glass Committed by Remy Bohmer
Browse files

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.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Tested-by: default avatarEric Bénard <eric@eukrea.com>
parent fa82f871
No related branches found
No related tags found
No related merge requests found
...@@ -28,6 +28,7 @@ COBJS-$(CONFIG_USB_HOST_ETHER) += usb_ether.o ...@@ -28,6 +28,7 @@ COBJS-$(CONFIG_USB_HOST_ETHER) += usb_ether.o
ifdef CONFIG_USB_ETHER_ASIX ifdef CONFIG_USB_ETHER_ASIX
COBJS-y += asix.o COBJS-y += asix.o
endif endif
COBJS-$(CONFIG_USB_ETHER_SMSC95XX) += smsc95xx.o
COBJS := $(COBJS-y) COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c) SRCS := $(COBJS:.o=.c)
......
This diff is collapsed.
...@@ -44,6 +44,13 @@ static const struct usb_eth_prob_dev prob_dev[] = { ...@@ -44,6 +44,13 @@ static const struct usb_eth_prob_dev prob_dev[] = {
.probe = asix_eth_probe, .probe = asix_eth_probe,
.get_info = asix_eth_get_info, .get_info = asix_eth_get_info,
}, },
#endif
#ifdef CONFIG_USB_ETHER_SMSC95XX
{
.before_probe = smsc95xx_eth_before_probe,
.probe = smsc95xx_eth_probe,
.get_info = smsc95xx_eth_get_info,
},
#endif #endif
{ }, /* END */ { }, /* END */
}; };
......
...@@ -51,6 +51,11 @@ struct ueth_data { ...@@ -51,6 +51,11 @@ struct ueth_data {
unsigned char irqinterval; /* Intervall for IRQ Pipe */ unsigned char irqinterval; /* Intervall for IRQ Pipe */
/* private fields for each driver can go here if needed */ /* 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, ...@@ -65,4 +70,12 @@ int asix_eth_get_info(struct usb_device *dev, struct ueth_data *ss,
struct eth_device *eth); struct eth_device *eth);
#endif #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__ */ #endif /* __USB_ETHER_H__ */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment