GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)

This commit is contained in:
lai
2026-09-06 03:52:57 +08:00
commit b1928b41c0
21813 changed files with 4413081 additions and 0 deletions
@@ -0,0 +1,244 @@
/*
* Copyright (c) LOTUS. All rights reserved.
*/
#ifndef __USB3_H__
#define __USB3_H__
#include "asm/types.h"
#include "types.h"
#define STRING_LANGUAGE 0
#define STRING_MANUFACTURER 1
#define STRING_PRODUCT 2
#define USB_SPEED_UNKNOWN 0x00
#define USB_SPEED_LOW 0x01
#define USB_SPEED_FULL 0x02
#define USB_SPEED_HIGH 0x03
#define USB_SPEED_VARIABLE 0x04
#define USB_SPEED_SUPER 0x05
#define UDESC_DEVICE 0x01
#define UDESC_CONFIG 0x02
#define UDESC_STRING 0x03
#define UDESC_INTERFACE 0x04
#define UDESC_ENDPOINT 0x05
#define UDESC_SS_USB_COMPANION 0x30
#define UDESC_DEVICE_QUALIFIER 0x06
#define UDESC_BOS 0x0f
#define UDESC_DEVICE_CAPABILITY 0x10
#define ut_get_dir(a) ((a)&0x80)
#define UT_WRITE 0x00
#define UT_READ 0x80
#define ut_get_type(a) ((a)&0x60)
#define UT_STANDARD 0x00
#define UT_CLASS 0x20
#define UT_VENDOR 0x40
#define ut_get_recipient(a) ((a)&0x1f)
#define UT_DEVICE 0x00
#define UT_INTERFACE 0x01
#define UT_ENDPOINT 0x02
#define UT_OTHER 0x03
#define UR_GET_STATUS 0x00
#define UR_CLEAR_FEATURE 0x01
#define UR_SET_FEATURE 0x03
#define UR_SET_ADDRESS 0x05
#define UR_GET_DESCRIPTOR 0x06
#define UR_SET_DESCRIPTOR 0x07
#define UR_GET_CONFIG 0x08
#define UR_SET_CONFIG 0x09
#define UR_GET_INTERFACE 0x0a
#define UR_SET_INTERFACE 0x0b
#define UR_SYNCH_FRAME 0x0c
#define UR_SET_SEL 0x30
#define UR_SET_ISOC_DELAY 0x31
/* Feature numbers */
#define UF_ENDPOINT_HALT 0
#define UF_DEVICE_REMOTE_WAKEUP 1
#define UF_TEST_MODE 2
#define UF_DEVICE_B_HNP_ENABLE 3
#define UF_DEVICE_A_HNP_SUPPORT 4
#define UF_DEVICE_A_ALT_HNP_SUPPORT 5
#define UF_FUNCTION_SUSPEND 0
#define UF_U1_ENABLE 48
#define UF_U2_ENABLE 49
#define UF_LTM_ENABLE 50
/* OTG feature selectors */
#define UOTG_B_HNP_ENABLE 3
#define UOTG_A_HNP_SUPPORT 4
#define UOTG_A_ALT_HNP_SUPPORT 5
#define UOTG_NTF_HOST_REL 51
#define UOTG_B3_RSP_ENABLE 52
#define ue_get_dir(a) ((a)&0x80)
#define ue_set_dir(a, d) ((a) | (((d)&1) << 7))
#define UE_DIR_IN 0x80
#define UE_DIR_OUT 0x00
#define UE_ADDR 0x0f
#define ue_get_addr(a) ((a)&UE_ADDR)
/* * Maxpacket size for EP0, defined by USB3 spec */
#define USB3_MAX_EP0_SIZE 512
/* * Maxpacket size for any EP, defined by USB3 spec */
#define USB3_MAX_PACKET_SIZE 1024
#define USB2_HS_MAX_PACKET_SIZE 512
#define USB2_FS_MAX_PACKET_SIZE 64
#define USB3_BULK_IN_EP 1
#define USB3_BULK_OUT_EP 1
typedef struct usb_device_request {
unsigned char bm_request_type;
unsigned char b_request;
unsigned short w_value;
unsigned short w_index;
unsigned short w_length;
} usb_device_request_t;
#pragma pack(1)
/* * USB_DT_DEVICE: Device descriptor */
typedef struct usb_device_descriptor {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned short bcd_usb;
#define USB_CLASS_COMM 0x02
#define USB_CLASS_VENDOR_SPEC 0xFF
#define USB_SC_VENDOR_SPEC 0xFF
#define USB_PR_VENDOR_SPEC 0xFF
unsigned char b_device_class;
unsigned char b_device_sub_class;
unsigned char b_device_protocol;
unsigned char b_max_packet_size0;
unsigned short id_vendor;
unsigned short id_product;
unsigned short bcd_device;
unsigned char i_manufacturer;
unsigned char i_product;
unsigned char i_serial_number;
unsigned char b_num_configurations;
} usb_device_descriptor_t;
/* USB_DT_CONFIG: Config descriptor */
typedef struct usb_config_descriptor {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned short w_total_length;
unsigned char b_num_interfaces;
#define CONFIG_VALUE 1
unsigned char b_configuration_value;
unsigned char i_configuration;
#define USB_CONFIG_ATT_ONE (1 << 7)
unsigned char bm_attributes;
#define USB_CONFIG_VBUS_DRAW (0xFA)
unsigned char b_max_power;
} usb_config_descriptor_t;
/* USB_DT_DEVICE_QUALIFIER: Device Qualifier descriptor */
typedef struct usb_qualifier_descriptor {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned short bcd_usb;
unsigned char b_device_class;
unsigned char b_device_sub_class;
unsigned char b_device_protocol;
unsigned char b_max_packet_size0;
unsigned char b_num_configurations;
unsigned char b_reserved;
} usb_qualifier_descriptor_t;
/* USB_DT_INTERFACE: Interface descriptor */
typedef struct usb_interface_descriptor {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned char b_interface_number;
unsigned char b_alternate_setting;
unsigned char b_num_endpoints;
unsigned char b_interface_class;
unsigned char b_interface_subclass;
unsigned char b_interface_protocol;
unsigned char i_interface;
} usb_interface_descriptor_t;
/* USB_DT_ENDPOINT: Endpoint descriptor */
typedef struct usb_endpoint_descriptor {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned char b_endpoint_address;
unsigned char bm_attributes;
#define USB_ENDPOINT_XFER_CONTROL 0x00
#define USB_ENDPOINT_XFER_ISOC 0x01
#define USB_ENDPOINT_XFER_BULK 0x02
#define USB_ENDPOINT_XFER_INT 0x03
unsigned short w_max_packet_size;
unsigned char b_interval;
} usb_endpoint_descriptor_t;
/* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */
typedef struct usb_ss_ep_comp_descriptor {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned char b_max_burst;
unsigned char bm_attributes;
unsigned short w_bytes_per_interval;
} usb_ss_ep_comp_descriptor_t;
/* WUSB BOS Descriptor (Binary device Object Store) */
typedef struct wusb_bos_desc {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned short w_total_length;
unsigned char b_num_device_caps;
} wusb_bos_desc_t;
#define USB_DEVICE_CAPABILITY_20_EXTENSION 0x02
typedef struct usb_dev_cap_20_ext_desc {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned char b_devcapability_type;
#define USB_20_EXT_LPM 0x02
unsigned int bm_attributes;
} usb_dev_cap_20_ext_desc_t;
#define USB_DEVICE_CAPABILITY_SS_USB 0x03
typedef struct usb_dev_cap_ss_usb {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned char b_devcapability_type;
#define USB_DC_SS_USB_LTM_CAPABLE 0x02
unsigned char bm_attributes;
#define USB_DC_SS_USB_SPEED_SUPPORT_LOW 0x01
#define USB_DC_SS_USB_SPEED_SUPPORT_FULL 0x02
#define USB_DC_SS_USB_SPEED_SUPPORT_HIGH 0x04
#define USB_DC_SS_USB_SPEED_SUPPORT_SS 0x08
unsigned int w_speeds_supported;
unsigned char b_functionality_support;
unsigned char b_u1dev_exit_lat;
unsigned int w_u2dev_exit_lat;
} usb_dev_cap_ss_usb_t;
#define USB_DEVICE_CAPABILITY_CONTAINER_ID 0x04
typedef struct usb_dev_cap_container_id {
unsigned char b_length;
unsigned char b_descriptor_type;
unsigned char b_devcapability_type;
unsigned char b_reserved;
unsigned char container_id[16];
} usb_dev_cap_container_id_t;
#pragma pack()
#endif /* __USB3_H__ */