1/* 2 * This file is part of the coreboot project. 3 * 4 * Copyright (C) 2007 AMD 5 * Written by Yinghai Lu <yinghai.lu@amd.com> for AMD. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; version 2 of the License. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA 19 */ 20 21#ifndef USB_CH9_H 22#define USB_CH9_H 23 24#define USB_DIR_OUT 0 /* to device */ 25#define USB_DIR_IN 0x80 /* to host */ 26 27/* 28 * USB types, the second of three bRequestType fields 29 */ 30#define USB_TYPE_MASK (0x03 << 5) 31#define USB_TYPE_STANDARD (0x00 << 5) 32#define USB_TYPE_CLASS (0x01 << 5) 33#define USB_TYPE_VENDOR (0x02 << 5) 34#define USB_TYPE_RESERVED (0x03 << 5) 35/* 36 * USB recipients, the third of three bRequestType fields 37 */ 38#define USB_RECIP_MASK 0x1f 39#define USB_RECIP_DEVICE 0x00 40#define USB_RECIP_INTERFACE 0x01 41#define USB_RECIP_ENDPOINT 0x02 42#define USB_RECIP_OTHER 0x03 43/* From Wireless USB 1.0 */ 44#define USB_RECIP_PORT 0x04 45#define USB_RECIP_RPIPE 0x05 46 47/* 48 * Standard requests, for the bRequest field of a SETUP packet. 49 * 50 * These are qualified by the bRequestType field, so that for example 51 * TYPE_CLASS or TYPE_VENDOR specific feature flags could be retrieved 52 * by a GET_STATUS request. 53 */ 54#define USB_REQ_GET_STATUS 0x00 55#define USB_REQ_CLEAR_FEATURE 0x01 56#define USB_REQ_SET_FEATURE 0x03 57#define USB_REQ_SET_ADDRESS 0x05 58#define USB_REQ_GET_DESCRIPTOR 0x06 59#define USB_REQ_SET_DESCRIPTOR 0x07 60#define USB_REQ_GET_CONFIGURATION 0x08 61#define USB_REQ_SET_CONFIGURATION 0x09 62#define USB_REQ_GET_INTERFACE 0x0A 63#define USB_REQ_SET_INTERFACE 0x0B 64#define USB_REQ_SYNCH_FRAME 0x0C 65 66#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */ 67#define USB_REQ_GET_ENCRYPTION 0x0E 68#define USB_REQ_RPIPE_ABORT 0x0E 69#define USB_REQ_SET_HANDSHAKE 0x0F 70#define USB_REQ_RPIPE_RESET 0x0F 71#define USB_REQ_GET_HANDSHAKE 0x10 72#define USB_REQ_SET_CONNECTION 0x11 73#define USB_REQ_SET_SECURITY_DATA 0x12 74#define USB_REQ_GET_SECURITY_DATA 0x13 75#define USB_REQ_SET_WUSB_DATA 0x14 76#define USB_REQ_LOOPBACK_DATA_WRITE 0x15 77#define USB_REQ_LOOPBACK_DATA_READ 0x16 78#define USB_REQ_SET_INTERFACE_DS 0x17 79 80#define USB_DT_DEBUG 0x0a 81 82#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */ 83 84struct usb_ctrlrequest { 85 u8 bRequestType; 86 u8 bRequest; 87 u16 wValue; 88 u16 wIndex; 89 u16 wLength; 90} __attribute__ ((packed)); 91 92struct usb_debug_descriptor { 93 u8 bLength; 94 u8 bDescriptorType; 95 96 /* bulk endpoints with 8 byte maxpacket */ 97 u8 bDebugInEndpoint; 98 u8 bDebugOutEndpoint; 99}; 100 101#endif 102 103

