1 /*
2  * Copyright (c) 2022 Emerson Electric Co.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @file
9  * @brief USB Hub Class device API header
10  */
11 
12 #ifndef ZEPHYR_INCLUDE_USB_CLASS_USB_HUB_H_
13 #define ZEPHYR_INCLUDE_USB_CLASS_USB_HUB_H_
14 
15 /** USB Hub Class Feature Selectors defined in spec. Table 11-17 */
16 #define USB_HCFS_C_HUB_LOCAL_POWER	0x00
17 #define USB_HCFS_C_HUB_OVER_CURRENT	0x01
18 #define USB_HCFS_PORT_CONNECTION	0x00
19 #define USB_HCFS_PORT_ENABLE		0x01
20 #define USB_HCFS_PORT_SUSPEND		0x02
21 #define USB_HCFS_PORT_OVER_CURRENT	0x03
22 #define USB_HCFS_PORT_RESET		0x04
23 #define USB_HCFS_PORT_POWER		0x08
24 #define USB_HCFS_PORT_LOW_SPEED		0x09
25 #define USB_HCFS_C_PORT_CONNECTION	0x10
26 #define USB_HCFS_C_PORT_ENABLE		0x11
27 #define USB_HCFS_C_PORT_SUSPEND		0x12
28 #define USB_HCFS_C_PORT_OVER_CURRENT	0x13
29 #define USB_HCFS_C_PORT_RESET		0x14
30 #define USB_HCFS_PORT_TEST		0x15
31 #define USB_HCFS_PORT_INDICATOR		0x16
32 
33 /** USB Hub Class Request Codes defined in spec. Table 11-16 */
34 #define USB_HCREQ_GET_STATUS		0x00
35 #define USB_HCREQ_CLEAR_FEATURE		0x01
36 #define USB_HCREQ_SET_FEATURE		0x03
37 #define USB_HCREQ_GET_DESCRIPTOR	0x06
38 #define USB_HCREQ_SET_DESCRIPTOR	0x07
39 #define USB_HCREQ_CLEAR_TT_BUFFER	0x08
40 #define USB_HCREQ_RESET_TT		0x09
41 #define USB_HCREQ_GET_TT_STATE		0x0A
42 #define USB_HCREQ_STOP_TT		0x0B
43 
44 #endif /* ZEPHYR_INCLUDE_USB_CLASS_USB_HUB_H_ */
45