📄 hal4otg.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 + -