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