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

📄 otg_drv_pri.h

📁 8032底层驱动部分。因为可以移植 所以单独来拿出来
💻 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).
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *    otg_drv_pri.h
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *  This file intends for otg hardware related function definitions. Only use for hardware driver.
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
 
#ifndef OTG_DRV_PRI_H
#define OTG_DRV_PRI_H

/* timer definetions*/

/* Wait for VBUS Rise  */
#define TA_WAIT_VRISE		(100)	/* a_wait_vrise 100 ms, section: 6.6.5.1 */

/* A bus suspend timer before we can switch to B_WAIT_ACON */
#define TB_A_SUSPEND		(7)

/* A-Idle to B-Disconnect */
/* It is necessary for this timer to be more than 750 ms because of a bug in OPT
test 5.4 in which B OPT disconnects after 750 ms instead of 75ms as stated in the
test description */
#define TA_AIDL_BDIS		(800)	/* a_suspend minimum 200 ms, section: 6.6.5.3 */

#define TA_DATA_PLS			(7)	

#define TA_REMOTE_WAKEUP	(30)		/* OPT remote wakeup */

#define TA_BIDL_ADIS		(3)

#define TA_CHECK_VBUS		(535)

/* A-SE0 to B-Reset  */
//#define TB_ASE0_BRST		(6)		/* b_wait_acon 3.125, section: 6.8.2.4 */
#define TB_ASE0_BRST		(7)

/* SE0 Time Before SRP */
#define TB_SE0_SRP			(5)		/* b_idle 2 ms 5.3.2 */

/* Data-Line Pulse Time*/
#define TB_DATA_PLS			(6)		/* b_srp_init 5 to 10 ms, section: 5.3.3 */

/* VBus timer */
#define TB_VBUS_PLS			(10)		/* sufficient time to keep Vbus pulsing asserted */ 

/* Discharge timer */
//#define TB_VBUS_DSCHRG	(7)		
#define TB_VBUS_DSCHRG		(3)	

/* SRP Fail Time  */
#define TB_SRP_FAIL			(7000)	/* b_srp_init 5 to 30 sec,section: 6.8.2.2*/


typedef enum
{
	OTG_TIMER_NONE,
	OTG_TIMER_A_BUS_SUSPEND,
	OTG_TIMER_A_WAIT_VRISE,
	OTG_TIMER_A_WAIT_BCON,
	OTG_TIMER_A_IDLE_BDIS,
	OTG_TIMER_A_DATA_PLS,
	OTG_TIMER_A_BIDLE_ADIS,
	OTG_TIMER_A_REMOTE_WAKEUP,
	OTG_TIMER_A_CHECK_VBUS,
	OTG_TIMER_B_ASE0_BRST,
	OTG_TIMER_B_SE0_SRP,
	OTG_TIMER_B_DATA_PLS,
	OTG_TIMER_B_VBUS_PLS,
	OTG_TIMER_B_VBUS_DSCHG,
	OTG_TIMER_B_SRP_FAIL
}OTG_TIMER_TYPE;

typedef struct
{
	/* state machine*/
	OTG_STATE			otg_state;

	/* host/device down/up handler*/
	otg_intr_handler_ptr	host_up_hdlr;
	otg_intr_handler_ptr	host_down_hdlr;
	otg_intr_handler_ptr	device_up_hdlr;
	otg_intr_handler_ptr	device_down_hdlr;
	
	otg_intr_handler_ptr	a_host_stop_hdlr;
	
	/* HNP handler*/
	otg_intr_handler_ptr	b_hnp_fail_hdlr;
	otg_intr_handler_ptr	a_hnp_fail_hdlr;
	otg_intr_handler_ptr	a_hnp_stop_hdlr;

	/* SRP handler*/
	otg_intr_handler_ptr	a_vrise_fail_hdlr;
	otg_intr_handler_ptr	b_srp_fail_hdlr;
	otg_intr_handler_ptr	b_srp_stop_hdlr;
	
	/* status*/
	kal_bool				a_bus_req;				/* For VBUS request */
	kal_bool				a_detect_b_conn;
	kal_bool				a_detect_b_suspend;
	kal_bool				a_detect_b_resume;
	kal_bool				a_detect_b_data_pls;	
	kal_bool				a_detect_b_srp;
	kal_bool				a_suspend_req;
	kal_bool				a_resume_req;
	kal_bool				a_set_b_hnp_enable;

	kal_bool				a_process_hnp;
	kal_bool				a_process_srp;

	kal_bool				b_session_valid;	
	kal_bool				b_suspend_req;				/* For B request for host role or not*/
	kal_bool				b_detect_a_conn;
	kal_bool				b_detect_a_suspend;
	kal_bool				b_detect_a_resume;	
	kal_bool				b_srp_request;
	kal_bool				b_hnp_enable;
	
	kal_bool				b_check_session;
	
	OTG_TIMER_TYPE			timer_type;
	kal_bool				timer_on;
	kal_bool				timer_out;
	kal_uint32				timeout_tick;

	kal_bool				device_up;
	kal_bool				host_up;

	kal_bool				b_processing;

	kal_bool				b_unmask_irq;
	kal_bool				is_ProOTGHISR;

	volatile kal_uint8		otg_intr_status;

	kal_uint8				gpt_handle;    /*GPT handle*/

	OTG_PLUG_TYPE			plug_type;
	kal_uint8				a_plug_gpt_handle;    /*GPT handle for A-plug debounce*/
	kal_bool				a_plug_intr_allow;
}OTG_Drv_Info;


#endif /* OTG_DRV_PRI_H */
 

⌨️ 快捷键说明

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