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

📄 hal4otg.h

📁 此為philip 1362 USB DOS下的驅動程式包, 已經共測試並內含有說明文件
💻 H
字号:
/*
   //*************************************************************************
   //
   //                  P H I L I P S   P R O P R I E T A R Y
   //
   //           COPYRIGHT (c)   2000-2002 BY PHILIPS SINGAPORE.
   //                     --  ALL RIGHTS RESERVED  --
   //
   // File Name:        HAL4OTG.H
   // Author:           ZhenYu Zhang
   // Created:      	Jun. 8, 2000
   // Modified:			Jun. 6, 2002 by wang.zhong.wei@philips.com
   // Revision:         1.0
   //
   //*************************************************************************
   //
   //*************************************************************************
*/


#ifndef __HAL4OTG_H__
#define __HAL4OTG_H__

#define Hal4Otg_OutW	Hal4Hc_RegOutW
#define	Hal4Otg_InW		Hal4Hc_RegInW

#define OTG_PORT		1	//select roothub port 1(FIRST PORT) as OTG port

#define REG_OTG_CONTROL			0x62
#define REG_OTG_STATUS			0x67
#define REG_OTG_INTERRUPT		0x68
#define REG_OTG_INT_ENABLE		0x69
#define REG_OTG_TMR				0x6A
#define REG_OTG_TMR2			0x6C

//OtgControl register bitmap
#define	OTG_DRV_VBUS		0x0001
#define	OTG_CHRG_VBUS		0x0002
#define	OTG_DISCHRG_VBUS	0x0004
#define	OTG_SEL_CP_EXT		0x0008
#define	OTG_LOC_CONN		0x0010
#define	OTG_A_RDIS_LCON_EN	0x0020
#define	OTG_LOC_PULLDN_DP	0x0040
#define	OTG_LOC_PULLDN_DM	0x0080
#define	OTG_SEL_HC_DC		0x0100
#define	OTG_A_SEL_SRP		0x0200
#define OTG_A_SRP_DET_EN	0x0400
#define	OTG_B_RCON_LSE0_EN	0x0800

//OtgInterruptEnable register bitmap
#define OTG_IRQ_ID			0x0001
#define OTG_IRQ_A_VBUS_VLD	0x0002
#define OTG_IRQ_B_SESS_END	0x0004
#define OTG_IRQ_A_SESS_VLD	0x0008
#define OTG_IRQ_B_SESS_VLD	0x0010
#define OTG_IRQ_RMT_CONN	0x0020
#define OTG_IRQ_SUSPND		0x0040
#define OTG_IRQ_RESUME		0x0080
#define OTG_IRQ_SRP_DET		0x0100
#define OTG_IRQ_SE0_SRP		0x0200
#define OTG_IRQ_TMR			0x0400

typedef	struct _BMP_OTGCTRL {
	UCHAR		drv_vbus		:1; //b0: 1: enable driving Vbus to 5v
	UCHAR		chrg_vbus 		:1; //b1: 1: enable charge Vbus
	UCHAR		dischrg_vbus 	:1; //b2: 1: enable dischrge Vbus
	UCHAR		sel_cp_ext	 	:1; //b3: 0: use CP, 1: use ext 5v
	UCHAR		loc_conn		:1; //b4: 1: enable pull-up on D+
	UCHAR		a_rdis_lcon_en 	:1; //b5: 1: enable auto-connect feature
	UCHAR		loc_pulldn_dp	:1; //b6: 1: enable pull-down on D+
	UCHAR		loc_pulldn_dm	:1; //b7: 1: enable pull-down on D-

	UCHAR		sel_hc_dc		:1; //b8: 0:atx connect hc, 1:atx connect dc
	UCHAR		a_sel_srp	 	:1; //b9: 0: Vbus SRP, 1: Dataline SRP
	UCHAR		a_srp_det_en 	:1; //b10: 1: enable SRP detection
	UCHAR		b_rcon_lse0_en 	:1; //b11: 1: enable auto bus reset feature
	UCHAR						:5; //b12-15
} BMP_OTGCTRL;

typedef	union _OTG_CTRL {

	BMP_OTGCTRL	bitmap;
	USHORT		Word;
} OTG_CTRL;

typedef	struct _BMP_OTGSTATUS {
	UCHAR		ID				:1 ;//b0
	UCHAR		a_vbus_vld		:1 ;//b1
	UCHAR		b_sess_end		:1 ;//b2
	UCHAR		a_sess_vld		:1 ;//b3
	UCHAR		b_sess_vld		:1 ;//b4
	UCHAR		rmt_conn		:1 ;//b5
	UCHAR						:1 ;//b6
	UCHAR						:1 ;//b7

	UCHAR						:1 ;//b8
	UCHAR		b_se0_srp		:1 ;//b9
	UCHAR						:6 ;//b10-15
} BMP_OTGSTATUS;

typedef	union _OTG_STATUS {

	BMP_OTGSTATUS	bitmap;
	USHORT			Word;
} OTG_STATUS;

typedef	struct _BMP_OTGSTATUSCHANGE {
	UCHAR		ID_c			:1 ;//b0
	UCHAR		a_vbus_vld_c	:1 ;//b1
	UCHAR		b_sess_end_c	:1 ;//b2
	UCHAR		a_sess_vld_c	:1 ;//b3
	UCHAR		b_sess_vld_c	:1 ;//b4
	UCHAR		rmt_conn_c		:1 ;//b5
	UCHAR		bus_suspend		:1 ;//b6
	UCHAR		bus_resume		:1 ;//b7

	UCHAR		a_srp_det		:1 ;//b8
	UCHAR		b_se0_srp		:1 ;//b9
	UCHAR		otg_tmr_tmout	:1 ;//b10
	UCHAR						:5 ;//b11-b15
} BMP_OTGSTATUSCHANGE;

typedef	union _OTG_STATUSCHANGE {

	BMP_OTGSTATUSCHANGE	bitmap;
	USHORT			Word;
} OTG_STATUSCHANGE;

typedef	struct _BMP_OTGSTATUSCHANGEIE {
	UCHAR		ID_IE			:1 ;//b0
	UCHAR		a_vbus_vld_IE	:1 ;//b1
	UCHAR		b_sess_end_IE	:1 ;//b2
	UCHAR		a_sess_vld_IE	:1 ;//b3
	UCHAR		b_sess_vld_IE	:1 ;//b4
	UCHAR		rmt_conn_IE		:1 ;//b5
	UCHAR		bus_suspend_IE	:1 ;//b6
	UCHAR		bus_resume_IE	:1 ;//b7

	UCHAR		a_srp_det_IE	:1 ;//b8
	UCHAR		b_se0_srp_IE	:1 ;//b9
	UCHAR		otg_tmr_tmout_IE:1 ;//b10
	UCHAR						:5 ;//b11-15
} BMP_OTGSTATUSCHANGEIE;

typedef	union _OTG_IE {

	BMP_OTGSTATUSCHANGEIE	bitmap;
	USHORT			Word;
} OTG_IE;

typedef struct _OTG_REG {

	// OTG_CONTROL
	OTG_CTRL 	CtrlPort;

	// OTG_STATUS
	OTG_STATUS  StatusPort;

	// OTG_STATUS_CHANGE
	OTG_STATUSCHANGE  StatusChangePort;

	// OTG_STATUS_CHANGE_INTERRUPT_ENABLE
	OTG_IE  IEPort;
} OTG_REG;

void Hal4OTG_PULLDOWN_CTRL(BOOL bTrue);
void Hal4OTG_PULLUP_CTRL(BOOL bTrue);
void Hal4OTG_SOF_CTRL(BOOL bTrue);
void Hal4OTG_VBUS_PowerUp(BOOL bTrue);
void Hal4OTG_VBUS_SessionReq(BOOL bTrue);
void Hal4OTG_VBUS_DisChrg(BOOL bTrue);
void Hal4OTG_HC_DC_Sel(BOOL bTrue);
void Hal4OTG_SRP_Det_En(BOOL bTrue);
void Hal4OTG_RdisLcon_En(BOOL bTrue);
void Hal4OTG_RconLse0_En(BOOL bTrue);
void Hal4OTG_SuspendOTGPort(BOOL bTrue);
void Hal4OTG_StartTimer(ULONG uTimerout);
void Hal4OTG_StopTimer(void);

USHORT Hal4OTG_Status(void);
void Hal4OTG_ClearIRQ(USHORT wIRQ);
void Hal4OTG_Sel_Vbus(void);

#endif

⌨️ 快捷键说明

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