X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fusb.h;h=48e4bcda54640fbf1a0d8c3feecba09236cd2341;hb=5056c8e068e30c73d3653f0b2cabbae46174a165;hp=a1f09d4d7ae1e48c0ecee71629ba624e340bbe90;hpb=e608f221c13943d88e86f44753e23668342c3df3;p=oweals%2Fu-boot.git diff --git a/include/usb.h b/include/usb.h index a1f09d4d7a..48e4bcda54 100644 --- a/include/usb.h +++ b/include/usb.h @@ -42,6 +42,12 @@ #define USB_CNTL_TIMEOUT 100 /* 100ms timeout */ +/* + * This is the timeout to allow for submitting an urb in ms. We allow more + * time for a BULK device to react - some are slow. + */ +#define USB_TIMEOUT_MS(pipe) (usb_pipebulk(pipe) ? 5000 : 1000) + /* device request (setup) */ struct devrequest { unsigned char requesttype; @@ -133,7 +139,7 @@ struct usb_device { defined(CONFIG_USB_SL811HS) || defined(CONFIG_USB_ISP116X_HCD) || \ defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI) || \ defined(CONFIG_USB_OMAP3) || defined(CONFIG_USB_DA8XX) || \ - defined(CONFIG_USB_BLACKFIN) + defined(CONFIG_USB_BLACKFIN) || defined(CONFIG_USB_AM35X) int usb_lowlevel_init(void); int usb_lowlevel_stop(void); @@ -143,7 +149,6 @@ int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer, int transfer_len, struct devrequest *setup); int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, int transfer_len, int interval); -void usb_event_poll(void); /* Defines */ #define USB_UHCI_VEND_ID 0x8086 @@ -162,6 +167,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); @@ -185,9 +197,8 @@ 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, int cfgno); int usb_get_report(struct usb_device *dev, int ifnum, unsigned char type, @@ -259,7 +270,7 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate); */ /* Create various pipes... */ #define create_pipe(dev,endpoint) \ - (((dev)->devnum << 8) | (endpoint << 15) | \ + (((dev)->devnum << 8) | ((endpoint) << 15) | \ ((dev)->speed << 26) | (dev)->maxpacketsize) #define default_pipe(dev) ((dev)->speed << 26) @@ -354,4 +365,12 @@ struct usb_hub_device { struct usb_hub_descriptor desc; }; +int usb_hub_probe(struct usb_device *dev, int ifnum); +void usb_hub_reset(void); +int hub_port_reset(struct usb_device *dev, int port, + unsigned short *portstat); + +struct usb_device *usb_alloc_new_device(void); +int usb_new_device(struct usb_device *dev); + #endif /*_USB_H_ */