亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hostctrl.h

?? Usb Host/Periphel Control TD1120 codes
?? H
字號:
/*-----------------------------------------------------------------------------
$File: //hodad/usblink/3.4/source/hostctrl/otg242/hostctrl.h $
$DateTime: 2003/11/21 14:48:39 $
$Revision: #2 $
Purpose:   OTG242 host controller data and macro definitions.

CONFIDENTIAL AND PROPRIETARY INFORMATION OF SOFTCONNEX TECHNOLOGIES, INC.

THIS NOTICE IS NOT TO BE DELETED, MODIFIED, MOVED OR CHANGED IN ANY WAY.

Copyright (c) 1999 - 2003 by SoftConnex Technologies, Inc. 

This software is protected by copyright laws and international copyright 
treaties, as well as other intellectual property laws and treaties.  This
software is a CONFIDENTIAL, unpublished work of authorship, and with portions 
constituting TRADE SECRETS of SoftConnex Technologies, Inc., a Delaware USA 
corporation.  Any unauthorized use, disclosure, and/or reproduction of this 
software, or any part of this software; or distribution of this software in any 
form or by any means; or storage of this software in any database or retrieval 
system, without the express written consent of, and license from, SoftConnex 
Technologies, Inc. is strictly prohibited.  This software is protected under the
copyright and/or trade secret laws in other countries in addition to USA.  All 
Rights Reserved.  Failure to abide by the use, disclosure and/or reproduction 
restrictions may result in civil and /or criminal penalties, and will be 
prosecuted to the maximum extent of the law.
-----------------------------------------------------------------------------*/

#ifndef _SOFTCONNEX_OTG242HC_H_
#define _SOFTCONNEX_OTG242HC_H_

#include "ohcihc.h"
#include "ohcied.h"
#include "ohcitd.h"
#include "etd.h"

#if 0
#define OTG242_HARDWARE_FPGA           0
#define OTG242_HARDWARE_CHIP           (~OTG242_HARDWARE_FPGA & 0x1)
#endif

#define OTG242_CHIP_REV_A              0x00000000
#define OTG242_CHIP_REV_B              0x00000001



#define OTG242HC_INTR_SCHEDULE_OVERRUN       0x00000001
#define OTG242HC_INTR_WRITE_DONE_HEAD        0x00000002
#define OTG242HC_INTR_START_OF_FRAME         0x00000004
#define OTG242HC_INTR_RESUME_DETECT          0x00000008
#define OTG242HC_INTR_UNRECOVERABLE_ERROR    0x00000010
#define OTG242HC_INTR_FRAME_NO_OVERFLOW      0x00000020
#define OTG242HC_INTR_ROOT_HUB_STATUS_CHANGE 0x00000040

#define OTG242HC_CTRL                        0x80
#define OTG242HC_INTR_STATUS                 0x88
#define OTG242HC_INTR_ENABLE                 0x8C
#define OTG242HC_XBUFFERINTERRUPTSTATUS      0x98 
#define OTG242HC_YBUFFERINTERRUPTSTATUS      0x9C 
#define OTG242HC_XYINTERRUPTENABLES          0xA0 
#define OTG242HC_XBUFFILLEDSTATUS            0xA8     
#define OTG242HC_YBUFFILLEDSTATUS            0xAC 
#define OTG242HC_ETD_ENABLE                  0xC0
#define OTG242HC_IMMEDIATE_INTR              0xCC
#define OTG242HC_ENDPOINTDONESTATUS          0xD0 
#define OTG242HC_ETDDONEENABLE               0xD4 
#define OTG242HC_FRAME_NUMBER                0xE0
#define OTG242HC_LS_THRESHOLD                0xE4
#define OTG242HC_RH_DESCRIPTOR_A             0xE8
#define OTG242HC_RH_DESCRIPTOR_B             0xEC
#define OTG242HC_RH_STATUS                   0xF0
#define OTG242HC_RH_PORT1_STATUS             0xF4
#define OTG242HC_RH_PORT2_STATUS             0xF8


#define OTG242HC_REVISION_REVISION           0x000000FF

#if 0
#define OTG242HC_REVISION_FPGA               0x00000000
#define OTG242HC_REVISION_CHIP               0x00000000

#if OTG242_HARDWARE_FPGA
#define OTG242HC_REVISION                    OTG242HC_REVISION_FPGA
#elif OTG242_HARDWARE_CHIP
#define OTG242HC_REVISION                    OTG242HC_REVISION_CHIP
#else
#error("(hostctrl.h): ERROR no hardware define")
#endif
#endif

#define OTG242HC_CTRL_CBSR                   0x00000003
#define OTG242HC_CTRL_HCFS                   0x0000000C
#define OTG242HC_CTRL_RWE                    0x00000010
#define OTG242HC_CTRL_CBSR_1TO1              0x00000000
#define OTG242HC_CTRL_CBSR_2TO1              0x00000001
#define OTG242HC_CTRL_CBSR_3TO1              0x00000002
#define OTG242HC_CTRL_CBSR_4TO1              0x00000003

#define OTG242HC_CMD_STATUS_HCR              0x80000000
#define OTG242HC_CMD_STATUS_SOC              0x00030000
#define OTG242HC_FM_REMAINING_FRT            0x80000000

#define OTG242HC_CTRL_HCFS_RESET             0x00000000
#define OTG242HC_CTRL_HCFS_RESUME            0x00000004 
#define OTG242HC_CTRL_HCFS_OPERATIONAL       0x00000008 
#define OTG242HC_CTRL_HCFS_SUSPEND           0x0000000C 

#define OTG242HC_CTRL_HCFS_FROM_OHCI(val)    ((val & OHCI_HC_CTRL_HCFS) >> 4)
#define OTG242HC_CTRL_RWE_FROM_OHCI(val)     ((val & OHCI_HC_CTRL_RWE) >> 6)
#define OTG242HC_CTRL_HCFS_TO_OHCI(val)      ((val & OTG242HC_CTRL_HCFS) << 4)
#define OTG242HC_CTRL_RWE_TO_OHCI(val)       ((val & OTG242HC_CTRL_RWE) << 6)

#define OTG242HC_CMD_STATUS_HCR_TO_OHCI(val) ((val & OTG242HC_CMD_STATUS_HCR) >> 31)
#define OTG242HC_CMD_STATUS_SOC_TO_OHCI(val) ((val & OTG242HC_CMD_STATUS_SOC))

#define OTG242HC_FRAME_REMAINING_FRT_TO_OHCI(val)  ((val & OTG242HC_FM_REMAINING_FRT))


#define OTG242HC_RH_PORT_STATUS(n)           (OTG242HC_RH_PORT1_STATUS + ((n - 1) << 2))
#define OTG242HC_RH_PORT_STATUS_CCS          0x00000001
#define OTG242HC_RH_PORT_STATUS_PES          0x00000002
#define OTG242HC_RH_PORT_STATUS_PSS          0x00000004
#define OTG242HC_RH_PORT_STATUS_POCI         0x00000008
#define OTG242HC_RH_PORT_STATUS_PRS          0x00000010
#define OTG242HC_RH_PORT_STATUS_PPS          0x00000100
#define OTG242HC_RH_PORT_STATUS_LSDA         0x00000200
#define OTG242HC_RH_PORT_STATUS_CSC          0x00010000
#define OTG242HC_RH_PORT_STATUS_PESC         0x00020000
#define OTG242HC_RH_PORT_STATUS_PSSC         0x00040000
#define OTG242HC_RH_PORT_STATUS_OCIC         0x00080000
#define OTG242HC_RH_PORT_STATUS_PRSC         0x00100000

#define OTG242HC_RH_PORT_STATUS_CHANGE       \
	( \
	OTG242HC_RH_PORT_STATUS_CSC | \
	OTG242HC_RH_PORT_STATUS_PESC | \
	OTG242HC_RH_PORT_STATUS_PSSC | \
	OTG242HC_RH_PORT_STATUS_OCIC | \
	OTG242HC_RH_PORT_STATUS_PRSC \
	)

#define OTG242HC_RH_PORT_FIRST               1
#define OTG242HC_RH_PORT_MAX                 2
#define OTG242HC_RH_OTG_PORT                 OTG242HC_RH_PORT_FIRST


#define OTG242HC_START_ADDRESS_ETD           0x200
#define OTG242HC_START_ADDRESS_DATA          0x1000

#define OTG242HC_REGISTER_MAX                (0x54 + 4 * OTG242HC_RH_PORT_MAX)
#define OTG242HC_HC_BASE                     OTG242HC_REGISTER_MAX


#define OTG242HC_HCCA_INTR(hc, num)          (hc->hcca + num)
#define OTG242HC_HCCA_FRAME_NUMBER(hc)       ((U16 *)(hc->hcca + 0x20))
#define OTG242HC_HCCA_DONE_HEAD(hc)          (hc->hcca + 0x21)


struct _Otg242;

typedef struct _Otg242Hc
   {
   U32  ohciRegMap[256 / sizeof(U32)];
   U32* ohciReg;

   volatile U8* regBase;
   U32* hcca;

   U32  intrEnable;
   U32  frameNo;
   U32  previousFrameNo;

   U32  etdIntrEnable;

   U32  bulkMemorySize;

   SctSemaphore   regLock;

   U32  freeEtdCount;
   Otg242EtdBank  etdBank[OTG242ETD_MAX];

   struct _Otg242*   otg;
   }
Otg242Hc;

#define OTG242HC_GetOHCIRegisterBase(hc)     ((hc)->ohciReg)
#define OTG242HC_ReadReg(hc, reg)            HW_ReadOtg242Register(hc->regBase, reg)
#define OTG242HC_WriteReg(hc, reg, val)      HW_WriteOtg242Register(hc->regBase, reg, val)
#define OTG242HC_ReadReg16(hc, reg)          HW_ReadOtg242Register16(hc->regBase, reg)
#define OTG242HC_WriteReg16(hc, reg, val)    HW_WriteOtg242Register16(hc->regBase, reg, val)

#define OTG242HC_GetBulkMemorySize(hc)       (hc->bulkMemorySize)
#define OTG242HC_IncFreeEtd(hc)              (hc->freeEtdCount++)
#define OTG242HC_DecFreeEtd(hc)              (hc->freeEtdCount--)

#define OTG242HC_GetHcCommandStatus(hc)  \
   (hc->ohciReg[OHCI_HC_CMD_STATUS / sizeof(U32)])
#define OTG242HC_SetHcCommandStatus(hc, status)   \
   hc->ohciReg[OHCI_HC_CMD_STATUS / sizeof(U32)] = status
#define OTG242HC_AddHcCommandStatus(hc, status)   \
   hc->ohciReg[OHCI_HC_CMD_STATUS / sizeof(U32)] |= status

#define OTG242HC_GetHcControlHeadEd(hc)  \
   (hc->ohciReg[OHCI_HC_CTRL_HEAD_ED / sizeof(U32)])
#define OTG242HC_SetHcControlHeadEd(hc, ed) \
   hc->ohciReg[OHCI_HC_CTRL_HEAD_ED / sizeof(U32)] = ed

#define OTG242HC_GetHcControlCurrentEd(hc)  \
   (hc->ohciReg[OHCI_HC_CTRL_CURRENT_ED / sizeof(U32)])
#define OTG242HC_SetHcControlCurrentEd(hc, ed) \
   hc->ohciReg[OHCI_HC_CTRL_CURRENT_ED / sizeof(U32)] = ed

#define OTG242HC_GetHcBulkHeadEd(hc)  \
   (hc->ohciReg[OHCI_HC_BULK_HEAD_ED / sizeof(U32)])
#define OTG242HC_SetHcBulkHeadEd(hc, ed) \
   hc->ohciReg[OHCI_HC_BULK_HEAD_ED / sizeof(U32)] = ed

#define OTG242HC_GetHcBulkCurrentEd(hc)  \
   (hc->ohciReg[OHCI_HC_BULK_CURRENT_ED / sizeof(U32)])
#define OTG242HC_SetHcBulkCurrentEd(hc, ed) \
   hc->ohciReg[OHCI_HC_BULK_CURRENT_ED / sizeof(U32)] = ed


#define OTG242HC_GetHcDoneHead(hc) \
   (hc->ohciReg[OHCI_HC_DONE_HEAD / sizeof(U32)])
#define OTG242HC_SetHcDoneHead(hc, ed)   \
   hc->ohciReg[OHCI_HC_DONE_HEAD / sizeof(U32)] = (U32)ed

#define OTG242HC_GetHcIntrStatus(hc) \
   (hc->ohciReg[OHCI_HC_INTR_STATUS / sizeof(U32)])
#define OTG242HC_SetHcIntrStatus(hc, intr) \
   hc->ohciReg[OHCI_HC_INTR_STATUS / sizeof(U32)] |= intr

#define OTG242HC_GetHcIntrEnable(hc) \
   (hc->ohciReg[OHCI_HC_INTR_ENABLE / sizeof(U32)])

#define OTG242HC_AllocateMemory(hc, length)    OTG242_AllocateMemory(hc->otg, length)
#define OTG242HC_FreeMemory(hc, addr)          OTG242_FreeMemory(hc->otg, addr)

void  OTG242HC_ResumeFromPowerSaveMode(Otg242Hc *hc);
U32   OTG242HC_IntrHandler(Otg242Hc *hc);


SctStatus OTG242HC_Create(Otg242Hc *hc, struct _Otg242 *otg);
SctStatus OTG242HC_Initialize(Otg242Hc *hc);
void OTG242HC_Delete(Otg242Hc *hc);

void OTG242HC_Operational(Otg242Hc *hc);

void OTG242HC_RhStatusWrite(Otg242Hc *hc, U32 val);
void OTG242HC_CommandStatusWrite(Otg242Hc *hc, U32 *reg, U32 val);
void OTG242HC_DoIsocList(Otg242Hc *hc);
void OTG242HC_DoPeriodicList(Otg242Hc *hc);
void OTG242HC_DoCtrlList(Otg242Hc *hc);
void OTG242HC_DoBulkList(Otg242Hc *hc);

void OTG242HC_ReadFromChip(Otg242Hc *hc, U32 dest, U32 hc_mem, U32 len, U32 endPage);
void OTG242HC_WriteToChip(Otg242Hc *hc, U32 source, U32 hc_mem, U32 len, U32 endPage);
void OTG242HC_ReadEtdFromChip(Otg242Hc *hc, Otg242Etd *etd, S32 index);
void OTG242HC_WriteEtdToChip(Otg242Hc *hc, Otg242Etd *etd, S32 index);

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品福利在线播放| 在线一区二区视频| 久久久久久久久久久久久女国产乱 | 亚洲三级免费观看| 91久久线看在观草草青青| 亚洲成在人线在线播放| 日韩欧美久久久| 国产福利一区二区三区视频在线| 国产精品午夜电影| 在线一区二区三区| 久久99精品久久久久婷婷| 国产日产欧美一区二区三区| 91麻豆swag| 久久国产麻豆精品| 国产精品久线在线观看| 欧美日韩精品高清| 精品一区二区三区视频在线观看| 亚洲国产成人午夜在线一区| 欧美伊人久久大香线蕉综合69| 蜜桃精品视频在线观看| 国产精品美女久久久久高潮| 精品视频在线视频| 国产精华液一区二区三区| 一区二区在线观看不卡| 日韩欧美综合在线| 91丝袜美腿高跟国产极品老师| 五月婷婷综合激情| 国产精品情趣视频| 欧美日本乱大交xxxxx| 国产伦精品一区二区三区免费| 亚洲精品久久久久久国产精华液| 日韩欧美你懂的| 91福利社在线观看| 国模娜娜一区二区三区| 亚洲美女在线一区| 久久久亚洲国产美女国产盗摄 | 亚洲婷婷在线视频| 精品久久久久香蕉网| 色av综合在线| 国产精选一区二区三区| 亚洲动漫第一页| 国产精品电影一区二区| 日韩欧美在线不卡| 在线免费av一区| 国产成人h网站| 久久国内精品自在自线400部| 亚洲欧洲在线观看av| 精品免费国产二区三区| 欧美日韩激情在线| www.久久精品| 国产精品一区二区不卡| 天堂va蜜桃一区二区三区| 亚洲免费观看在线视频| 国产日韩欧美在线一区| 日韩欧美在线1卡| 欧美精选一区二区| 色视频成人在线观看免| 岛国一区二区三区| 国产一区二区三区香蕉| 免费不卡在线视频| 秋霞电影一区二区| 午夜精品久久久久久不卡8050| 亚洲激情在线激情| 亚洲免费色视频| 亚洲国产人成综合网站| 国产精品美女www爽爽爽| 久久久久久夜精品精品免费| 精品久久久久一区| 精品理论电影在线| 日韩欧美视频一区| 日韩精品中文字幕在线不卡尤物 | 日韩片之四级片| 3atv一区二区三区| 3d动漫精品啪啪1区2区免费| 欧美视频在线观看一区二区| 欧美伊人久久久久久久久影院| 91网站黄www| 91高清视频在线| 欧美亚洲一区三区| 欧美日韩国产中文| 日韩一区二区在线看| 欧美一级爆毛片| 欧美精品一区二区三区高清aⅴ| 欧美变态tickle挠乳网站| 日韩欧美在线观看一区二区三区| 欧美一区二区三区精品| 欧美大胆人体bbbb| 国产午夜精品一区二区三区四区| 26uuu国产一区二区三区| 国产亚洲精品aa午夜观看| 中文字幕精品综合| 亚洲欧洲精品一区二区精品久久久| 国产精品久久网站| 亚洲一区av在线| 日本免费在线视频不卡一不卡二| 美女视频第一区二区三区免费观看网站| 日本欧美在线看| 国产剧情一区二区| 色94色欧美sute亚洲13| 欧美人狂配大交3d怪物一区| 欧美一卡二卡在线| 久久久久国产精品厨房| 亚洲欧洲日产国产综合网| 亚洲一区二区视频在线观看| 麻豆91在线播放| av在线不卡电影| 51精品视频一区二区三区| 久久久久综合网| 一级中文字幕一区二区| 捆绑紧缚一区二区三区视频| 成人美女在线视频| 欧美日本乱大交xxxxx| 久久美女高清视频| 亚洲国产综合在线| 国产精品资源在线观看| 欧日韩精品视频| 国产午夜精品理论片a级大结局| 一区二区三区在线免费观看| 久久99热这里只有精品| 波多野结衣欧美| 欧美α欧美αv大片| 一区二区三区中文字幕在线观看| 卡一卡二国产精品| 色欧美88888久久久久久影院| 日韩亚洲欧美高清| 一区二区三区四区蜜桃| 国产一区二区三区免费观看 | 69堂成人精品免费视频| 久久久综合九色合综国产精品| 亚洲二区在线视频| www.亚洲在线| 精品蜜桃在线看| 亚洲一区二区成人在线观看| 高潮精品一区videoshd| 91精品久久久久久久91蜜桃| 亚洲乱码中文字幕综合| 国产福利不卡视频| 欧美一区二区视频在线观看2020| 亚洲人妖av一区二区| 国产成人在线看| 精品国产乱码久久久久久久久 | 国产在线国偷精品免费看| 欧美日韩另类一区| 亚洲男人的天堂网| av电影在线观看一区| 久久久蜜臀国产一区二区| 免费观看久久久4p| 欧美日韩卡一卡二| 亚洲一区二区3| 91福利精品第一导航| 综合久久给合久久狠狠狠97色| 国产成人av自拍| 国产午夜精品一区二区三区嫩草| 精品一二三四区| 精品伦理精品一区| 久久国产麻豆精品| 精品av久久707| 精品一区二区在线看| 日韩欧美高清在线| 蜜臀va亚洲va欧美va天堂| 91精品国产日韩91久久久久久| 一区二区三区在线观看国产| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 青青草97国产精品免费观看| 欧美日本精品一区二区三区| 亚洲国产aⅴ成人精品无吗| 精品视频在线视频| 日韩vs国产vs欧美| 欧美一区二区久久| 捆绑紧缚一区二区三区视频| 精品国产不卡一区二区三区| 久久成人免费网站| 久久亚洲捆绑美女| 成人免费电影视频| 亚洲欧美一区二区视频| 色偷偷久久一区二区三区| 亚洲高清视频在线| 欧美一区二区性放荡片| 国产一区二区中文字幕| 中文字幕二三区不卡| 99麻豆久久久国产精品免费| 亚洲精品国产精品乱码不99| 欧美色综合网站| 美女在线视频一区| 国产色综合一区| 91丨九色丨尤物| 午夜精品久久久久| www国产亚洲精品久久麻豆| 成人免费视频国产在线观看| 亚洲精品写真福利| 欧美一卡二卡三卡四卡| 国产成人精品一区二区三区四区 | 欧美日韩成人一区二区| 日韩av电影天堂| 久久久久久久久久久99999| 99精品视频在线免费观看| 婷婷久久综合九色综合伊人色| 欧美va亚洲va在线观看蝴蝶网| 成人黄色网址在线观看| 亚洲电影欧美电影有声小说|