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

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

?? mt8980.c

?? 這是單板上DPRAM的驅動程序
?? C
字號:
#include <psos.h>
#include "board.h"
#include "sdev.h"
#include "bspspec.h"
#include "mt8980.h"

#define MT8980_CR(ba)        REG8(ba)
#define MT8980_CH(ba,ch)     REG8(ba + 0x20 + ch)

static int ConfigTs(MT8980CfgStruct* pCfg, SDCConfigTsStruct *pTs)
{
    if(pTs->StreamOut>7 || pTs->StreamIn>7 || pTs->ChanOut>31 || pTs->ChanIn>31)
        return SDE_INVALID_ARG;
    MT8980_CR(pCfg->BaseAddr) = (0x18 | pTs->StreamOut );/* Conn Mem High(11)*/
    MT8980_CH(pCfg->BaseAddr, pTs->ChanOut) = (0x01);    /* enable the output */
    MT8980_CR(pCfg->BaseAddr) = (0x10 | pTs->StreamOut ); /* Conn Mem Low(10) */
    MT8980_CH(pCfg->BaseAddr, pTs->ChanOut) 
           = ((pTs->StreamIn << 5) | pTs->ChanIn );
    return SDE_OK;
}

static void MT8980ConfigMessageMode(MT8980CfgStruct* pCfg, 
                                    MT8980MessageModeStruct *pMsgMode)
{
    MT8980_CR(pCfg->BaseAddr) 
        = (0x18 | ( pMsgMode->StreamOut & 0x7));  /* Conn Mem High(11)*/
    MT8980_CH(pCfg->BaseAddr, pMsgMode->ChanOut) 
        = 0x07;    /* set ChanOut message mode, enable the output */
                                                          
    MT8980_CR(pCfg->BaseAddr) 
        = (0x10 | ( pMsgMode->StreamOut & 0x7)); /* Conn Mem Low(10) */
    MT8980_CH(pCfg->BaseAddr, pMsgMode->ChanOut) 
        = pMsgMode->ChanOutValue;     
    
    MT8980_CR(pCfg->BaseAddr) 
        = 0x08 | (pMsgMode->StreamOut & 0x7); /* read Val in the data memory*/
}

static int MT8980CheckMsg(MT8980CfgStruct* pCfg, 
                          MT8980MessageModeStruct *pMsgMode)
{
   
   if((pMsgMode->StreamOut>7)||(pMsgMode->ChanOut>31))
	  return SDE_INVALID_ARG;
   MT8980_CR(pCfg->BaseAddr)=(0x1<<3)|pMsgMode->StreamOut;              
   if(pMsgMode->ChanOutValue!=(char)MT8980_CH(pCfg->BaseAddr, pMsgMode->ChanOut)) 
      return SDE_CHK_MSG_ERR;
   return  SDE_OK;  
	
}

static void MT8980Init(void *pDataBuf, MT8980CfgStruct *cfg )
{
    int i, j;
    MT8980CfgStruct *pCfg = (MT8980CfgStruct *)(pDataBuf);
    
/*-------------------------<< Initial data >>-------------------------------*/
    memmove(pCfg,cfg,sizeof(MT8980CfgStruct));

    for (i = 0; i < 8; i++) {
        MT8980_CR(pCfg->BaseAddr) = (0x18 | (i & 0x7)); /* Conn Mem High(11) */
        for (j = 0; j < 32; j++) {
            MT8980_CH(pCfg->BaseAddr,j) =  (0x0); /* disable the output */
        }
    }

    for (i=0; i< pCfg->ValidConfigTsNum;i++)
        ConfigTs(pCfg,&(pCfg->ConfigTsTable[i]));
}

static int MT8980Cntrl(void *pDataBuf, int cmd, void *pParam, int maxlen)
{
    int i, j;
    /* PDA *pda= (PDA *)(GetIMMR() & IO_MAP_MASK);  */
    MT8980CfgStruct*  pCfg =(MT8980CfgStruct *)(pDataBuf);   
    
    switch(cmd)
    {
        case SDC_REINIT:
            MT8980Init(pDataBuf, pCfg);
            break;
            
        case SDC_CONFIG_TS:
            if(maxlen!=sizeof(SDCConfigTsStruct))
                return SDE_INVALID_ARG;
            ConfigTs(pCfg, (SDCConfigTsStruct *)pParam);
            break;
            
        case SDC_CONFIG_2TS:
        {
            SDCConfigTsStruct ts;
            if(maxlen!=sizeof(SDCConfigTsStruct))return SDE_INVALID_ARG;
            ConfigTs(pCfg, (SDCConfigTsStruct *)pParam);
	        ts.StreamIn =((SDCConfigTsStruct*)pParam)->StreamOut;
	        ts.StreamOut=((SDCConfigTsStruct*)pParam)->StreamIn;
	        ts.ChanIn   =((SDCConfigTsStruct*)pParam)->ChanOut;
	        ts.ChanOut  =((SDCConfigTsStruct*)pParam)->ChanIn;
            ConfigTs(pCfg, &ts);
        }
        break;

     
        case SDC_MESSAGE_MODE:
            if(maxlen!=sizeof(MT8980MessageModeStruct))
                return SDE_INVALID_ARG;
            MT8980ConfigMessageMode(pCfg, (MT8980MessageModeStruct *)pParam);
            break;    
            
        case SDC_CHECK_MSG:
            if(maxlen!=sizeof(MT8980MessageModeStruct))
                return SDE_INVALID_ARG;
            return MT8980CheckMsg(pCfg, (MT8980MessageModeStruct *)pParam);  
        default: 
            return SDE_UNKNOW_CMD;
    }/* end of switch(cmd) */
    return SDE_OK;
}

char *MT8980BspInit(int DEV, char *FreeMemPtr, MT8980CfgStruct *cfg)
{
    InstallSD(DEV,NULL,NULL,MT8980Cntrl,FreeMemPtr);
    MT8980Init(FreeMemPtr, cfg); 
    FreeMemPtr += sizeof(MT8980CfgStruct);
    memcpy(FreeMemPtr,"*8980Dat",8);
    FreeMemPtr += 8;
    return FreeMemPtr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文字幕制服| 日韩三级免费观看| 国产成人在线色| 国产成人在线色| 九色综合国产一区二区三区| 国内不卡的二区三区中文字幕| 秋霞国产午夜精品免费视频| 久久er精品视频| 国产成人综合在线| av在线一区二区三区| 91黄色免费版| 日韩欧美国产三级电影视频| 久久久美女毛片| 综合在线观看色| 一区二区在线免费观看| 五月综合激情网| 美女视频免费一区| 成人h动漫精品一区二| 一本大道久久a久久精品综合| 欧美日韩在线综合| 精品久久久三级丝袜| 国产精品久久久久久久久晋中| 亚洲视频免费在线观看| 日本视频在线一区| 国产不卡免费视频| 欧美午夜理伦三级在线观看| 日韩亚洲欧美高清| 中文字幕的久久| 午夜伊人狠狠久久| 国产91精品在线观看| 在线精品视频一区二区三四| 精品国精品自拍自在线| 亚洲日本va在线观看| 蜜乳av一区二区| 91女厕偷拍女厕偷拍高清| 91精品国产欧美一区二区18 | 视频一区视频二区中文| 麻豆精品视频在线观看免费| 成人在线视频一区二区| 91麻豆精品国产91久久久久| 国产精品欧美综合在线| 奇米777欧美一区二区| 一本色道久久综合精品竹菊 | 国产成都精品91一区二区三| 欧美亚洲尤物久久| 国产精品美女www爽爽爽| 日本成人在线不卡视频| 91激情五月电影| 中文字幕中文字幕中文字幕亚洲无线| 亚洲国产cao| 日本久久电影网| 国产精品伦理一区二区| 狠狠色狠狠色综合日日91app| 欧美日韩精品免费| 亚洲精品一二三四区| 99久久精品免费精品国产| 国产日韩影视精品| 久久99蜜桃精品| 91精品国产全国免费观看| 一区二区三区四区亚洲| 成人av电影在线网| 国产精品区一区二区三| 盗摄精品av一区二区三区| 2023国产精品视频| 美女一区二区视频| 日韩午夜在线观看| 香蕉乱码成人久久天堂爱免费| 91香蕉视频黄| 中文字幕亚洲欧美在线不卡| 国产一区中文字幕| 精品国产乱子伦一区| 蜜桃精品视频在线观看| 日韩欧美色综合| 蜜臀99久久精品久久久久久软件| 欧美精品在欧美一区二区少妇| 一区二区三区免费网站| 色婷婷亚洲精品| 亚洲精品国产无天堂网2021| 99久久久精品| 亚洲一区在线观看视频| 在线精品观看国产| 日韩电影在线观看网站| 欧美一激情一区二区三区| 全部av―极品视觉盛宴亚洲| 日韩亚洲欧美一区| 国产一区二区三区精品视频| 欧美激情综合在线| 91免费国产视频网站| 一区二区在线观看不卡| 欧美日韩高清一区二区不卡 | 欧美电影免费观看高清完整版在线观看| 午夜在线成人av| 欧美成人aa大片| 国产成人精品aa毛片| 亚洲欧美一区二区三区孕妇| 欧美揉bbbbb揉bbbbb| 美脚の诱脚舐め脚责91| 久久久亚洲精品一区二区三区| 国产精品亚洲а∨天堂免在线| 日韩美女啊v在线免费观看| 欧美在线不卡一区| 韩国三级在线一区| 亚洲天堂福利av| 日韩视频不卡中文| av一区二区久久| 亚洲va韩国va欧美va| 337p日本欧洲亚洲大胆精品| av激情亚洲男人天堂| 婷婷久久综合九色综合绿巨人| 精品国产乱码久久久久久牛牛| 成人动漫视频在线| 日韩成人一级片| 成人免费在线观看入口| 日韩午夜激情免费电影| 91亚洲精品乱码久久久久久蜜桃| 青青青爽久久午夜综合久久午夜 | 欧美日韩激情在线| 国产精品影视在线观看| 一区二区三区四区蜜桃| 精品国内二区三区| 欧美剧在线免费观看网站| 成人一区二区三区在线观看| 亚洲成av人**亚洲成av**| 国产精品女同互慰在线看| 3d动漫精品啪啪一区二区竹菊| 成人性色生活片| 久久av中文字幕片| 亚洲1区2区3区视频| 1区2区3区精品视频| 久久九九国产精品| 欧美久久久影院| 在线中文字幕不卡| 成人涩涩免费视频| 国产乱人伦偷精品视频免下载| 亚洲gay无套男同| 亚洲三级小视频| 国产精品久久三| 久久精品欧美日韩精品| 精品三级av在线| 欧美电视剧在线看免费| 制服丝袜国产精品| 8x福利精品第一导航| 欧美亚洲国产怡红院影院| 色综合久久天天| 91美女视频网站| 99riav久久精品riav| 国产成人精品免费在线| 风间由美一区二区三区在线观看 | 日韩女优电影在线观看| 欧美精品在线观看一区二区| 欧美日韩一区二区三区在线| 色94色欧美sute亚洲线路一久| aa级大片欧美| 97se亚洲国产综合自在线观| 成人avav影音| 色哟哟在线观看一区二区三区| 91亚洲精华国产精华精华液| 97久久精品人人做人人爽| 91色在线porny| 欧美性感一类影片在线播放| 欧美亚洲另类激情小说| 91精品欧美久久久久久动漫 | 亚洲天堂2014| 夜夜嗨av一区二区三区四季av| 亚洲精品国产高清久久伦理二区| 中文字幕日韩一区| 亚洲精品成人精品456| 亚洲一区二三区| 日韩经典中文字幕一区| 看国产成人h片视频| 精品无人区卡一卡二卡三乱码免费卡| 国产真实乱子伦精品视频| 粉嫩高潮美女一区二区三区 | 日韩一级免费观看| 久久久久久久久久久久久夜| 综合电影一区二区三区 | 1024成人网色www| 午夜亚洲福利老司机| 麻豆精品一区二区三区| 国产很黄免费观看久久| 91麻豆免费观看| 日韩精品中午字幕| 日韩毛片精品高清免费| 男人操女人的视频在线观看欧美| 国产精品伊人色| 在线观看免费亚洲| 久久伊99综合婷婷久久伊| 亚洲一区二区三区中文字幕| 美女视频黄久久| 91国偷自产一区二区开放时间 | 中国色在线观看另类| 亚洲综合免费观看高清在线观看| 欧美aaaaa成人免费观看视频| 成人性生交大片免费看中文网站| 在线这里只有精品| 久久久久久免费网| 亚洲国产精品久久久久婷婷884| 国产精选一区二区三区| 欧美日韩一区二区三区免费看| 国产欧美一区二区三区鸳鸯浴|