diff options
| author | Wolfgang Denk <wd@denx.de> | 2009-12-21 21:01:56 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2009-12-21 21:01:56 +0100 | 
| commit | f7767c7541a8cdae55655d10f039a5bc62894ee8 (patch) | |
| tree | c559df77384b70faa52a3b1993c6587a37245fb8 /include/usbdevice.h | |
| parent | b6535daefd65c93ea429bc4728062379dda6e482 (diff) | |
| parent | 127e10842b2474ac20e40572a4102dd4d5ed80f1 (diff) | |
| download | olio-uboot-2014.01-f7767c7541a8cdae55655d10f039a5bc62894ee8.tar.xz olio-uboot-2014.01-f7767c7541a8cdae55655d10f039a5bc62894ee8.zip | |
Merge branch 'master' of git://git.denx.de/u-boot-usb
Diffstat (limited to 'include/usbdevice.h')
| -rw-r--r-- | include/usbdevice.h | 103 | 
1 files changed, 103 insertions, 0 deletions
| diff --git a/include/usbdevice.h b/include/usbdevice.h index 206dbbc86..41716364b 100644 --- a/include/usbdevice.h +++ b/include/usbdevice.h @@ -663,4 +663,107 @@ int usbd_endpoint_halted (struct usb_device_instance *device, int endpoint);  void usbd_rcv_complete(struct usb_endpoint_instance *endpoint, int len, int urb_bad);  void usbd_tx_complete (struct usb_endpoint_instance *endpoint); +/* These are macros used in debugging */ +#ifdef DEBUG +static inline void print_urb(struct urb *u) +{ +	serial_printf("urb %p\n", (u)); +	serial_printf("\tendpoint %p\n", u->endpoint); +	serial_printf("\tdevice %p\n", u->device); +	serial_printf("\tbuffer %p\n", u->buffer); +	serial_printf("\tbuffer_length %d\n", u->buffer_length); +	serial_printf("\tactual_length %d\n", u->actual_length); +	serial_printf("\tstatus %d\n", u->status); +	serial_printf("\tdata %d\n", u->data); +} + +static inline void print_usb_device_request(struct usb_device_request *r) +{ +	serial_printf("usb request\n"); +	serial_printf("\tbmRequestType 0x%2.2x\n", r->bmRequestType); +	if ((r->bmRequestType & USB_REQ_DIRECTION_MASK) == 0) +		serial_printf("\t\tDirection : To device\n"); +	else +		serial_printf("\t\tDirection : To host\n"); +	if ((r->bmRequestType & USB_TYPE_STANDARD) == USB_TYPE_STANDARD) +		serial_printf("\t\tType      : Standard\n"); +	if ((r->bmRequestType & USB_TYPE_CLASS) == USB_TYPE_CLASS) +		serial_printf("\t\tType      : Standard\n"); +	if ((r->bmRequestType & USB_TYPE_VENDOR) == USB_TYPE_VENDOR) +		serial_printf("\t\tType      : Standard\n"); +	if ((r->bmRequestType & USB_TYPE_RESERVED) == USB_TYPE_RESERVED) +		serial_printf("\t\tType      : Standard\n"); +	if ((r->bmRequestType & USB_REQ_RECIPIENT_MASK) == +	    USB_REQ_RECIPIENT_DEVICE) +		serial_printf("\t\tRecipient : Device\n"); +	if ((r->bmRequestType & USB_REQ_RECIPIENT_MASK) == +	    USB_REQ_RECIPIENT_INTERFACE) +		serial_printf("\t\tRecipient : Interface\n"); +	if ((r->bmRequestType & USB_REQ_RECIPIENT_MASK) == +	    USB_REQ_RECIPIENT_ENDPOINT) +		serial_printf("\t\tRecipient : Endpoint\n"); +	if ((r->bmRequestType & USB_REQ_RECIPIENT_MASK) == +	    USB_REQ_RECIPIENT_OTHER) +		serial_printf("\t\tRecipient : Other\n"); +	serial_printf("\tbRequest      0x%2.2x\n", r->bRequest); +	if (r->bRequest == USB_REQ_GET_STATUS) +		serial_printf("\t\tGET_STATUS\n"); +	else if (r->bRequest == USB_REQ_SET_ADDRESS) +		serial_printf("\t\tSET_ADDRESS\n"); +	else if (r->bRequest == USB_REQ_SET_FEATURE) +		serial_printf("\t\tSET_FEATURE\n"); +	else if (r->bRequest == USB_REQ_GET_DESCRIPTOR) +		serial_printf("\t\tGET_DESCRIPTOR\n"); +	else if (r->bRequest == USB_REQ_SET_CONFIGURATION) +		serial_printf("\t\tSET_CONFIGURATION\n"); +	else if (r->bRequest == USB_REQ_SET_INTERFACE) +		serial_printf("\t\tUSB_REQ_SET_INTERFACE\n"); +	else +		serial_printf("\tUNKNOWN %d\n", r->bRequest); +	serial_printf("\twValue        0x%4.4x\n", r->wValue); +	if (r->bRequest == USB_REQ_GET_DESCRIPTOR) { +		switch (r->wValue >> 8) { +		case USB_DESCRIPTOR_TYPE_DEVICE: +			serial_printf("\tDEVICE\n"); +			break; +		case USB_DESCRIPTOR_TYPE_CONFIGURATION: +			serial_printf("\tCONFIGURATION\n"); +			break; +		case USB_DESCRIPTOR_TYPE_STRING: +			serial_printf("\tSTRING\n"); +			break; +		case USB_DESCRIPTOR_TYPE_INTERFACE: +			serial_printf("\tINTERFACE\n"); +			break; +		case USB_DESCRIPTOR_TYPE_ENDPOINT: +			serial_printf("\tENDPOINT\n"); +			break; +		case USB_DESCRIPTOR_TYPE_DEVICE_QUALIFIER: +			serial_printf("\tDEVICE_QUALIFIER\n"); +			break; +		case USB_DESCRIPTOR_TYPE_OTHER_SPEED_CONFIGURATION: +			serial_printf("\tOTHER_SPEED_CONFIGURATION\n"); +			break; +		case USB_DESCRIPTOR_TYPE_INTERFACE_POWER: +			serial_printf("\tINTERFACE_POWER\n"); +			break; +		case USB_DESCRIPTOR_TYPE_HID: +			serial_printf("\tHID\n"); +			break; +		case USB_DESCRIPTOR_TYPE_REPORT: +			serial_printf("\tREPORT\n"); +			break; +		default: +			serial_printf("\tUNKNOWN TYPE\n"); +			break; +		} +	} +	serial_printf("\twIndex        0x%4.4x\n", r->wIndex); +	serial_printf("\twLength       0x%4.4x\n", r->wLength); +} +#else +/* stubs */ +#define print_urb(u) +#define print_usb_device_request(r) +#endif /* DEBUG */  #endif |