12731b9a8SJean-Christophe PLAGNIOL-VILLARD /* 22731b9a8SJean-Christophe PLAGNIOL-VILLARD * Mentor USB OTG Core host controller driver. 32731b9a8SJean-Christophe PLAGNIOL-VILLARD * 42731b9a8SJean-Christophe PLAGNIOL-VILLARD * Copyright (c) 2008 Texas Instruments 52731b9a8SJean-Christophe PLAGNIOL-VILLARD * 61a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 72731b9a8SJean-Christophe PLAGNIOL-VILLARD * 82731b9a8SJean-Christophe PLAGNIOL-VILLARD * Author: Thomas Abraham t-abraham@ti.com, Texas Instruments 92731b9a8SJean-Christophe PLAGNIOL-VILLARD */ 102731b9a8SJean-Christophe PLAGNIOL-VILLARD 112731b9a8SJean-Christophe PLAGNIOL-VILLARD #ifndef __MUSB_HCD_H__ 122731b9a8SJean-Christophe PLAGNIOL-VILLARD #define __MUSB_HCD_H__ 132731b9a8SJean-Christophe PLAGNIOL-VILLARD 142731b9a8SJean-Christophe PLAGNIOL-VILLARD #include "musb_core.h" 152731b9a8SJean-Christophe PLAGNIOL-VILLARD #ifdef CONFIG_USB_KEYBOARD 1652cb4d4fSJean-Christophe PLAGNIOL-VILLARD #include <stdio_dev.h> 172731b9a8SJean-Christophe PLAGNIOL-VILLARD extern unsigned char new[]; 182731b9a8SJean-Christophe PLAGNIOL-VILLARD #endif 192731b9a8SJean-Christophe PLAGNIOL-VILLARD 20*95de1e2fSPaul Kocialkowski #ifndef CONFIG_USB_MUSB_TIMEOUT 21*95de1e2fSPaul Kocialkowski # define CONFIG_USB_MUSB_TIMEOUT 100000 22c3a012ceSBryan Wu #endif 23c3a012ceSBryan Wu 242731b9a8SJean-Christophe PLAGNIOL-VILLARD /* This defines the endpoint number used for control transfers */ 252731b9a8SJean-Christophe PLAGNIOL-VILLARD #define MUSB_CONTROL_EP 0 262731b9a8SJean-Christophe PLAGNIOL-VILLARD 272731b9a8SJean-Christophe PLAGNIOL-VILLARD /* This defines the endpoint number used for bulk transfer */ 28e608f221SBryan Wu #ifndef MUSB_BULK_EP 292731b9a8SJean-Christophe PLAGNIOL-VILLARD # define MUSB_BULK_EP 1 30e608f221SBryan Wu #endif 312731b9a8SJean-Christophe PLAGNIOL-VILLARD 322731b9a8SJean-Christophe PLAGNIOL-VILLARD /* This defines the endpoint number used for interrupt transfer */ 332731b9a8SJean-Christophe PLAGNIOL-VILLARD #define MUSB_INTR_EP 2 342731b9a8SJean-Christophe PLAGNIOL-VILLARD 352731b9a8SJean-Christophe PLAGNIOL-VILLARD /* Determine the operating speed of MUSB core */ 362731b9a8SJean-Christophe PLAGNIOL-VILLARD #define musb_ishighspeed() \ 372731b9a8SJean-Christophe PLAGNIOL-VILLARD ((readb(&musbr->power) & MUSB_POWER_HSMODE) \ 382731b9a8SJean-Christophe PLAGNIOL-VILLARD >> MUSB_POWER_HSMODE_SHIFT) 392731b9a8SJean-Christophe PLAGNIOL-VILLARD 40321790f6SBryan Wu /* USB HUB CONSTANTS (not OHCI-specific; see hub.h) */ 41321790f6SBryan Wu 42321790f6SBryan Wu /* destination of request */ 43321790f6SBryan Wu #define RH_INTERFACE 0x01 44321790f6SBryan Wu #define RH_ENDPOINT 0x02 45321790f6SBryan Wu #define RH_OTHER 0x03 46321790f6SBryan Wu 47321790f6SBryan Wu #define RH_CLASS 0x20 48321790f6SBryan Wu #define RH_VENDOR 0x40 49321790f6SBryan Wu 50321790f6SBryan Wu /* Requests: bRequest << 8 | bmRequestType */ 51321790f6SBryan Wu #define RH_GET_STATUS 0x0080 52321790f6SBryan Wu #define RH_CLEAR_FEATURE 0x0100 53321790f6SBryan Wu #define RH_SET_FEATURE 0x0300 54321790f6SBryan Wu #define RH_SET_ADDRESS 0x0500 55321790f6SBryan Wu #define RH_GET_DESCRIPTOR 0x0680 56321790f6SBryan Wu #define RH_SET_DESCRIPTOR 0x0700 57321790f6SBryan Wu #define RH_GET_CONFIGURATION 0x0880 58321790f6SBryan Wu #define RH_SET_CONFIGURATION 0x0900 59321790f6SBryan Wu #define RH_GET_STATE 0x0280 60321790f6SBryan Wu #define RH_GET_INTERFACE 0x0A80 61321790f6SBryan Wu #define RH_SET_INTERFACE 0x0B00 62321790f6SBryan Wu #define RH_SYNC_FRAME 0x0C80 63321790f6SBryan Wu /* Our Vendor Specific Request */ 64321790f6SBryan Wu #define RH_SET_EP 0x2000 65321790f6SBryan Wu 66321790f6SBryan Wu /* Hub port features */ 67321790f6SBryan Wu #define RH_PORT_CONNECTION 0x00 68321790f6SBryan Wu #define RH_PORT_ENABLE 0x01 69321790f6SBryan Wu #define RH_PORT_SUSPEND 0x02 70321790f6SBryan Wu #define RH_PORT_OVER_CURRENT 0x03 71321790f6SBryan Wu #define RH_PORT_RESET 0x04 72321790f6SBryan Wu #define RH_PORT_POWER 0x08 73321790f6SBryan Wu #define RH_PORT_LOW_SPEED 0x09 74321790f6SBryan Wu 75321790f6SBryan Wu #define RH_C_PORT_CONNECTION 0x10 76321790f6SBryan Wu #define RH_C_PORT_ENABLE 0x11 77321790f6SBryan Wu #define RH_C_PORT_SUSPEND 0x12 78321790f6SBryan Wu #define RH_C_PORT_OVER_CURRENT 0x13 79321790f6SBryan Wu #define RH_C_PORT_RESET 0x14 80321790f6SBryan Wu 81321790f6SBryan Wu /* Hub features */ 82321790f6SBryan Wu #define RH_C_HUB_LOCAL_POWER 0x00 83321790f6SBryan Wu #define RH_C_HUB_OVER_CURRENT 0x01 84321790f6SBryan Wu 85321790f6SBryan Wu #define RH_DEVICE_REMOTE_WAKEUP 0x00 86321790f6SBryan Wu #define RH_ENDPOINT_STALL 0x01 87321790f6SBryan Wu 88321790f6SBryan Wu #define RH_ACK 0x01 89321790f6SBryan Wu #define RH_REQ_ERR -1 90321790f6SBryan Wu #define RH_NACK 0x00 91321790f6SBryan Wu 922731b9a8SJean-Christophe PLAGNIOL-VILLARD /* extern functions */ 932731b9a8SJean-Christophe PLAGNIOL-VILLARD extern int musb_platform_init(void); 942731b9a8SJean-Christophe PLAGNIOL-VILLARD extern void musb_platform_deinit(void); 952731b9a8SJean-Christophe PLAGNIOL-VILLARD 962731b9a8SJean-Christophe PLAGNIOL-VILLARD #endif /* __MUSB_HCD_H__ */ 97