1 /* 2 * Mentor USB OTG Core host controller driver. 3 * 4 * Copyright (c) 2008 Texas Instruments 5 * 6 * SPDX-License-Identifier: GPL-2.0+ 7 * 8 * Author: Thomas Abraham t-abraham@ti.com, Texas Instruments 9 */ 10 11 #ifndef __MUSB_HCD_H__ 12 #define __MUSB_HCD_H__ 13 14 #include "musb_core.h" 15 #ifdef CONFIG_USB_KEYBOARD 16 #include <stdio_dev.h> 17 extern unsigned char new[]; 18 #endif 19 20 #ifndef CONFIG_MUSB_TIMEOUT 21 # define CONFIG_MUSB_TIMEOUT 100000 22 #endif 23 24 /* This defines the endpoint number used for control transfers */ 25 #define MUSB_CONTROL_EP 0 26 27 /* This defines the endpoint number used for bulk transfer */ 28 #ifndef MUSB_BULK_EP 29 # define MUSB_BULK_EP 1 30 #endif 31 32 /* This defines the endpoint number used for interrupt transfer */ 33 #define MUSB_INTR_EP 2 34 35 /* Determine the operating speed of MUSB core */ 36 #define musb_ishighspeed() \ 37 ((readb(&musbr->power) & MUSB_POWER_HSMODE) \ 38 >> MUSB_POWER_HSMODE_SHIFT) 39 40 /* USB HUB CONSTANTS (not OHCI-specific; see hub.h) */ 41 42 /* destination of request */ 43 #define RH_INTERFACE 0x01 44 #define RH_ENDPOINT 0x02 45 #define RH_OTHER 0x03 46 47 #define RH_CLASS 0x20 48 #define RH_VENDOR 0x40 49 50 /* Requests: bRequest << 8 | bmRequestType */ 51 #define RH_GET_STATUS 0x0080 52 #define RH_CLEAR_FEATURE 0x0100 53 #define RH_SET_FEATURE 0x0300 54 #define RH_SET_ADDRESS 0x0500 55 #define RH_GET_DESCRIPTOR 0x0680 56 #define RH_SET_DESCRIPTOR 0x0700 57 #define RH_GET_CONFIGURATION 0x0880 58 #define RH_SET_CONFIGURATION 0x0900 59 #define RH_GET_STATE 0x0280 60 #define RH_GET_INTERFACE 0x0A80 61 #define RH_SET_INTERFACE 0x0B00 62 #define RH_SYNC_FRAME 0x0C80 63 /* Our Vendor Specific Request */ 64 #define RH_SET_EP 0x2000 65 66 /* Hub port features */ 67 #define RH_PORT_CONNECTION 0x00 68 #define RH_PORT_ENABLE 0x01 69 #define RH_PORT_SUSPEND 0x02 70 #define RH_PORT_OVER_CURRENT 0x03 71 #define RH_PORT_RESET 0x04 72 #define RH_PORT_POWER 0x08 73 #define RH_PORT_LOW_SPEED 0x09 74 75 #define RH_C_PORT_CONNECTION 0x10 76 #define RH_C_PORT_ENABLE 0x11 77 #define RH_C_PORT_SUSPEND 0x12 78 #define RH_C_PORT_OVER_CURRENT 0x13 79 #define RH_C_PORT_RESET 0x14 80 81 /* Hub features */ 82 #define RH_C_HUB_LOCAL_POWER 0x00 83 #define RH_C_HUB_OVER_CURRENT 0x01 84 85 #define RH_DEVICE_REMOTE_WAKEUP 0x00 86 #define RH_ENDPOINT_STALL 0x01 87 88 #define RH_ACK 0x01 89 #define RH_REQ_ERR -1 90 #define RH_NACK 0x00 91 92 /* extern functions */ 93 extern int musb_platform_init(void); 94 extern void musb_platform_deinit(void); 95 96 #endif /* __MUSB_HCD_H__ */ 97