diff options
| author | Simon Glass <sjg@chromium.org> | 2011-02-16 11:14:33 -0800 | 
|---|---|---|
| committer | Remy Bohmer <linux@bohmer.net> | 2011-02-19 20:32:36 +0100 | 
| commit | 89d48367edbc878f86db3008a4107331ef07f578 (patch) | |
| tree | 808742d920445274c97d867422762b3b67cc8391 /include | |
| parent | 96820a35873b4c005f732432c6a168decc9d22b9 (diff) | |
| download | olio-uboot-2014.01-89d48367edbc878f86db3008a4107331ef07f578.tar.xz olio-uboot-2014.01-89d48367edbc878f86db3008a4107331ef07f578.zip | |
Add USB host ethernet adapter support
This adds support for using USB Ethernet dongles in host mode. This is just
the framework - drivers will come later. A new config option called
CONFIG_USB_HOST_ETHER can be defined in board config files to switch this
on.
The was originally written by NVIDIA and was cleaned up for release by the
Chromium authors.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/usb.h | 9 | ||||
| -rw-r--r-- | include/usb_ether.h | 61 | 
2 files changed, 69 insertions, 1 deletions
| diff --git a/include/usb.h b/include/usb.h index 98576b73a..53603a558 100644 --- a/include/usb.h +++ b/include/usb.h @@ -168,6 +168,13 @@ int usb_stor_info(void);  #endif +#ifdef CONFIG_USB_HOST_ETHER + +#define USB_MAX_ETH_DEV 5 +int usb_host_eth_scan(int mode); + +#endif +  #ifdef CONFIG_USB_KEYBOARD  int drv_usb_kbd_init(void); @@ -191,7 +198,7 @@ int usb_bulk_msg(struct usb_device *dev, unsigned int pipe,  			void *data, int len, int *actual_length, int timeout);  int usb_submit_int_msg(struct usb_device *dev, unsigned long pipe,  			void *buffer, int transfer_len, int interval); -void usb_disable_asynch(int disable); +int usb_disable_asynch(int disable);  int usb_maxpacket(struct usb_device *dev, unsigned long pipe);  inline void wait_ms(unsigned long ms);  int usb_get_configuration_no(struct usb_device *dev, unsigned char *buffer, diff --git a/include/usb_ether.h b/include/usb_ether.h new file mode 100644 index 000000000..31cbc8d58 --- /dev/null +++ b/include/usb_ether.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2011 The Chromium OS Authors. + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __USB_ETHER_H__ +#define __USB_ETHER_H__ + +#include <net.h> + +/* + *	IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble + *	and FCS/CRC (frame check sequence). + */ +#define ETH_ALEN	6		/* Octets in one ethernet addr	 */ +#define ETH_HLEN	14		/* Total octets in header.	 */ +#define ETH_ZLEN	60		/* Min. octets in frame sans FCS */ +#define ETH_DATA_LEN	1500		/* Max. octets in payload	 */ +#define ETH_FRAME_LEN	PKTSIZE_ALIGN	/* Max. octets in frame sans FCS */ +#define ETH_FCS_LEN	4		/* Octets in the FCS		 */ + +struct ueth_data { +	/* eth info */ +	struct eth_device eth_dev;		/* used with eth_register */ +	int phy_id;						/* mii phy id */ + +	/* usb info */ +	struct usb_device *pusb_dev;	/* this usb_device */ +	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;		/* .............. */ +	unsigned char	irqinterval;	/* Intervall for IRQ Pipe */ + +	/* private fields for each driver can go here if needed */ +}; + +/* + * Function definitions for each USB ethernet driver go here, bracketed by + * #ifdef CONFIG_USB_ETHER_xxx...#endif + */ + +#endif /* __USB_ETHER_H__ */ |