⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbimage_drv.h

📁 mtk 6225平台的usb程序! 对想了解mtk平台usb的朋友会有帮助!
💻 H
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*  
*  A. Patent Notice:
*  The software delivered hereunder, including any and all updates and upgrades, 
*  might be subject to patent rights of standard-setting organizations, patent pools 
*  or their respective patent owners, that will be necessarily infringed by the use 
*  and distribution of the products incorporating all or part of this software.  
*  According to the licensing terms of these patent holders, it is your sole 
*  obligation to obtain the necessary patent licenses from these patent holders 
*  before you can use or distribute the products incorporating all or part of this 
*  software. MediaTek shall not be liable for your failure to obtain or maintain such 
*  licenses.
*  
*    As a courtesy to our customers, the following are some of the software that might 
*    contain such patent licenses, but MediaTek does not warrant the accuracy or
*    completeness of the information below.  
*    (1) MPEG4/AAC/AACPLUS/AACVPLUSV2: essential patents license must be obtained
*        from Via Licensing: <www.vialicensing.com>
*    (2) WAP/MMS security RC5 algorithm belongs to RSA Data Security: 
*        <www.rsasecurity.com> 
*    Notice: Please contact RSA to get this license before shipping the products to 
*    USA which include RC5 security algorithm.
*  
*  B. In addition, customers must contact the respective licensors to obtain 
*  necessary software licenses before it can use or distribute the licensed 
*  products. 
*  
*    As a courtesy to our customers, the following are some of the software licensers 
*    and the notice or disclaimer required by their licenses, but MediaTek does not 
*    warrant the accuracy or completeness of the information below.  
*    (1) Microsoft Windows Media (WMA software): 
*        Microsoft: <www.microsoft.com> 
*        Approved OEM Manufacturers: <wmlicense.smdisp.net/oem_approved/>
*        Sample Windows Media Licensing Agreements: 
*        <www.microsoft.com/windows/windowsmedia/licensing/agreements.aspx>
*    Notice in header or documentation: "This product is protected by certain 
*    intellectual property rights of Microsoft and cannot be used or further 
*    distributed without a license from Microsoft."
*    
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *   usbimage_drv.h
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *  This file intends for usb IMAGE class driver definitions
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/

#ifndef USBIMAGE_DRV_H
#define USBIMAGE_DRV_H

#include "usb_custom.h"


/***********************************************
	image class specific command definition
************************************************/
#define USB_IMAGE_DEVICE_CODE						0x00
#define USB_IMAGE_SUBCLASS_CODE					0x00
#define USB_IMAGE_PROTOCOL_CODE					0x00
#define USB_IMAGE_INTERFACE_CLASS_CODE 			0x06
#define USB_IMAGE_INTERFACE_SUBCLASS_CODE 		0x01
#define USB_IMAGE_INTERFACE_PROTOCOL_CODE 		0x01

/* Class-Specific Requset Code, EP0 command*/
#define USB_IMAGE_CANCEL         						0x64
#define USB_IMAGE_GET_EXTENDED_EVENT_DATA		0x65
#define USB_IMAGE_RESET         						0x66
#define USB_IMAGE_GET_DEVICE_STATUS  				0x67

/* Class-Specific Container Type */
#define USB_IMAGE_UNDEFINED						0x00
#define USB_IMAGE_COMMAND_BLOCK					0x01
#define USB_IMAGE_DATA_BLOCK						0x02
#define USB_IMAGE_RESPONSE_BLOCK					0x03
#define USB_IMAGE_EVENT_BLOCK						0x04

/***********************************************
	implement definition
************************************************/
#define USB_IMAGE_EP_NUMBER						3 

#define USB_IMAGE_MAX_BUFFERSIZE     				(2*1024)
//#define USB_IMAGE_MAX_BUFFERSIZE     				(32*1024)
#define USB_IMAGE_MAX_TX_BUFFERSIZE     			(USB_IMAGE_MAX_BUFFERSIZE/2)
//#define USB_IMAGE_MAX_RX_BUFFERSIZE     			(USB_IMAGE_MAX_BUFFERSIZE/2)

#define USB_IMAGE_MAX_XMLBUFFERSIZE     			(1024)

#define USB_IMAGE_CONTAINER_LENGTH				12
#define USB_IMAGE_RES_1_PARA						16
#define USB_IMAGE_RES_3_PARA						24

/***********************************************
	implement enum and structure 
************************************************/
typedef enum
{
	/* msg from USB to mmi */
	USB_IMAGE_MSG_MMI_DISCOVERY_IND,
	USB_IMAGE_MSG_MMI_HREQUEST_IND,
	USB_IMAGE_MSG_MMI_HRESPONSE_IND,
	USB_IMAGE_MSG_MMI_DREQUEST_CONF,
	USB_IMAGE_MSG_MMI_DRESPONSE_CONF
}USBIMAGE_MSG_TYPE;

typedef struct {
   LOCAL_PARA_HDR
   kal_uint8             *xml_address; 				/* address of xml packet*/
   kal_uint32		xml_packet_size; 			/*xml packet size*/   
}usb_image_xml_struct;

typedef struct {
   LOCAL_PARA_HDR
   kal_uint8             *dps_request_address; 	/* address of xml packet*/
   kal_uint8		*dps_response_address;
}usb_image_start_struct;

typedef struct
{
	kal_uint8		data_buffer[2][USB_IMAGE_MAX_BUFFERSIZE/2];
}USB_IMAGE_BUFFER;


typedef struct
{
	kal_uint16	Cancellation_Code;
	kal_uint16	TransactionID[2];
}USB_Image_block_struct;

typedef struct
{
	kal_uint16	wLength;
	kal_uint16	Code;
//	kal_uint16	Num_para;
//	kal_uint16	Para_size;
//	kal_uint16	endpoint;
}USB_Image_Device_Status_struct;

/***********************************************
	function and global variable
************************************************/
extern void USB_Image_If_Create(void *ifname);
extern void USB_Image_If_Reset(void);
extern void USB_Init_Image_Status(void);
extern void USB_Release_Image_Status(void);

extern void USB_Image_Plug_Out_Hdlr(void);
//extern void USB_Image_BuildRx(void *addr, kal_uint32 len);
extern void USB_Image_BuildTx(void *addr, kal_uint32 len);
extern void USB_Image_ReturnTx(void *addr, kal_uint32 len);
extern void USB_Send_Null_Packet(kal_uint8 no);
extern void USB_Image_Send_Intr(void *addr, kal_uint32 len);
extern void USB_Image_Cancel_By_Device(void *pdest, kal_uint16 code);
extern void USB_Image_Send_Msg(USBIMAGE_MSG_TYPE msg_type, kal_uint32 param1, kal_uint32 param2);

#endif /* USBIMAGE_DRV_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -