Files
TAIXIN/sdk/include/dev/usb/hgusb20_v1_dev_ep0.h

70 lines
2.2 KiB
C

/*****************************************************************************
* Module : usb
* File : usb_dev.h
* Author :
* Function : USB Device驱动的一些定义
*****************************************************************************/
#ifndef USB20_DEV_H
#define USB20_DEV_H
#include "typesdef.h"
#ifdef __cplusplus
extern "C" {
#endif
#define USB_REQUEST_DIRECTION (p_dev->usb_ctrl.cmd.rtype & 0x80)
#define USB_REQUEST_TYPE (p_dev->usb_ctrl.cmd.rtype & 0x60)
#define USB_REQUEST_RECIPIENT (p_dev->usb_ctrl.cmd.rtype & 0x1f)
#define USB_REQUEST_ENDPOINT BYTE0(p_dev->usb_ctrl.cmd.index)
#define USB_REQUEST_TEST_INDEX BYTE1(p_dev->usb_ctrl.cmd.index)
#define USB_REQUEST_FEATURE_SELECTOR (p_dev->usb_ctrl.cmd.value)
#define USB_REQUEST_DESCRIPTOR_TYPE BYTE1(p_dev->usb_ctrl.cmd.value)
#define USB_REQUEST_DESCRIPTOR_INDEX BYTE0(p_dev->usb_ctrl.cmd.value)
#define USB_REQUEST_LENGTH (p_dev->usb_ctrl.cmd.length)
struct hgusb20_dev_info {
//uint8_t type; //设备类型
//uint8_t set_addr; //设地址
//uint8_t cfg_value; //Config Value, 用于Set Config与Get Config
uint8_t cur_state : 4, //USB当前状态机
ep0_state : 4; //EP0的状态机
uint8_t ep0_pkt; //EP0包大小
uint8_t *ep0_ptr; //当前发送指针
uint16_t ep0_len; //当前发送剩余
uint8_t *ep0_ptr_rx; //当前发送指针
uint16_t ep0_len_rx; //当前发送剩余
volatile uint8_t ep_tx_stall; //ep1 tx stall标志
volatile uint8_t ep_rx_stall; //ep1 rx stall标志
// uint8_t ep_num_rx;
// uint8_t ep_num_tx;
// uint8_t ep_rx_type;
// uint8_t ep_tx_type;
// uint16_t max_pkt_rx[MAX_EP];
// uint16_t max_pkt_tx[MAX_EP];
} ;
struct hgusb20_audio_ctrl {
uint8_t speaker_mute;
uint8_t mic_mute;
uint8_t volume;
/*
uint8_t *adc_root;
uint8_t *adc_end;
uint8_t *adc_ptr;
int16_t adc_cnt;
int16_t adc_total;
int8_t mic_speed;
*/
} ;
#ifdef __cplusplus
}
#endif
#endif