Files
banban/ql-kernel/threadx/common/include/ql_usb_descriptor.h

201 lines
5.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*================================================================
Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
Quectel Wireless Solutions Proprietary and Confidential.
=================================================================*/
#ifndef __QL_USB_H__
#define __QL_USB_H__
//绑定USB网卡
#include "quec_net.h"
#include "quec_usb.h"
#include <stdint.h>
//states: 1>USB插入 0>USB拔出
typedef void (*usbdectcb)(unsigned int states);
/***********************************************
*注册USB插入与拔出的检测回调函敿
*函数成功返回0,否则返囿1
***********************************************/
int ql_usbdect_register_cb(usbdectcb cb);
/*****************************************************************
* Function: ql_usb_get_type
*
* Description:
* 获取USB的类型。
*
* Parameters:
* void
* Return:
* 1 USB正常枚举。
* 0 USB未能正常枚举,非USB,可能是适配器。
*
NOTES:此接口耗时2s
*****************************************************************/
extern int ql_usb_get_type(void);
/*****************************************************************
* Function: ql_usb_connect_state
*
* Description:
* 获取USB的连接状态,d+,d-。
*
* Parameters:
* void
* Return:
* 1 USB正常枚举且可以正常通讯。
* 0 USB未连接。
*
*****************************************************************/
int ql_usb_connect_state(void);
/*****************************************************************
* Function: ql_usb_plugin
*
* Description: 软件触发插入USB,进行枚举。
*
* Parameters: void
* Return: void
*****************************************************************/
void ql_usb_plugin(void);
/*****************************************************************
* Function: ql_usb_unplug
*
* Description: 软件触发拔出USB,进行去枚举。
*
* Parameters: void
* Return: void
*****************************************************************/
void ql_usb_unplug(void);
/*****************************************************************
* Function: ql_usb_disable_enumeration
*
* Description:
* 关闭USB枚举,配置掉电保存。
*
* Parameters:
* disable 是否关闭usb枚举,1 关闭 ,0 打开
* Return:
* 1 配置成功
* 0 配置失败
*
*****************************************************************/
int ql_usb_disable_enumeration(unsigned int disable);
/*****************************************************************
* Function: ql_cdc_switch_ccid_desc
*
* Description:
* 将cdc接口切换为ccid标准设备。
*
* Parameters:
* enable: 是否将cdc切换为ccid,1 ccid ,0 cdc
* Return:
* void:
*
*****************************************************************/
void ql_cdc_switch_ccid_desc(unsigned char enable);
/*****************************************************************
* Function: ql_cdc_switch_printer_desc
*
* Description:
* 将cdc接口切换为printer设备。
*
* Parameters:
* enable: 是否将cdc切换为printer,1 printer ,0 cdc
* config printer配置
* Return:
* void:
*
*****************************************************************/
void ql_cdc_switch_printer_desc(unsigned char enable,struct usb_printer_config config);
#ifdef MV_USB2_HID_SUPPORT
/*****************************************************************
* Function: ql_usb_hid_send_data
*
* Description:
* 将数据发送给usb hid设备。
*
* Parameters:
* buf: 数据指针
* len: 数据长度
* Return:
* 0: 发送成功
* -1: 发送失败
*
*****************************************************************/
int ql_usb_hid_send_data(char *buf, unsigned char len);
/*****************************************************************
* Function: ql_usb_device_get_hid_dtd_cnt
*
* Description:
* 获取usb hid 当前缓冲的包个数
*
* Parameters:
* void
* Return:
* 缓冲包个数
*
*
*****************************************************************/
unsigned char ql_usb_device_get_hid_dtd_cnt(void);
/*****************************************************************
* Function: ql_usb_device_free_hid_dtd
*
* Description:
* 释放usb hid设备。
*
* Parameters:
* void
* Return:
* 0: 释放成功
* -1: 释放失败
*
*****************************************************************/
void ql_usb_device_free_hid_dtd(void);
/*****************************************************************
* Function: ql_usb_enable_hid
*
* Description:
* 使能usb hid设备。
*
* Parameters:
* enable: 是否使能usb hid,1 使能 ,0 不使能
* Return:
* void:
*
*****************************************************************/
void ql_usb_enable_hid(unsigned char enable);
#endif
//绑定USB网卡
typedef enum
{
QL_NETIF_DISCONNECT=0,
QL_NETIF_CONNECT,
QL_NETIF_REMOVE=0xFF,
}ql_netif_status_e;
typedef enum
{
QL_NETIF_ECM_MODE=0, /* ECM模式 */
QL_NETIF_RNDIS_MODE, /* RNDIS模式 */
} ql_netif_mode_e;
QuecOSStatus ql_netdevctl_lwip_config(ql_netif_status_e netif_config,uint8 set_cid);
QuecOSStatus ql_set_usbnet_mode(ql_netif_mode_e netif_mode);
QuecOSStatus ql_get_usbnet_mode(ql_netif_mode_e *netif_mode);
uint8_t ql_usb_vbus_wakeup_get_enable(void);
void ql_usb_vbus_wakeup_set_enable(uint8_t enable);
#endif