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

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

?? omap730_gspx.c

?? marvell8385 GSPI開發驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:

    if(pDevice->pSPIRegs) 
		MmUnmapIoSpace((PVOID)pDevice->pSPIRegs, sizeof(OMAP730_SPI_REGS));

    if(pDevice->pConfigRegs) 
		MmUnmapIoSpace((PVOID)pDevice->pConfigRegs, sizeof(OMAP730_CONFIG_REGS));

    if(pDevice->hGPIO) 
		GPIOClose(pDevice->hGPIO);

    pDevice->IntsInfo.bDriverShutdown = TRUE;
	
    ClearInterrupt(&pDevice->IntsInfo);
    pHC = NULL;
}

/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_read_reg16()
 *
 *  Description: Omap730 SPI read 16reg
 *  
 *  Arguments: PVOID pHC, USHORT reg, USHORT *data 
 *    
 *  Return Value: int
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
int Omap_gspx_read_reg16(PVOID pHC, USHORT reg, USHORT *data)
{
    GSPI_HW_INFO *pDevice = (GSPI_HW_INFO*) pHC;
    int i = 0;

	NdisAcquireSpinLock(&SpiLock);
    OmapSpiOpen( (PVOID)(pDevice->pSPIRegs) );// open spi
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),reg );// write reg address

    //a delay period required for the WLAN module to prepare the data
    for( i=0;i<dummy_clk_reg;i++ )
          OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs), 0x0);
 
    *data = OmapSpiRead16( (PVOID)(pDevice->pSPIRegs) );// read data
    OmapSpiClose((PVOID)(pDevice->pSPIRegs));// close spi

   //RETAILMSG(1, (TEXT("*** Omap_gspx_read_reg16:[%x]:[%x]  ***\r\n"),reg,*data));
    NdisReleaseSpinLock(&SpiLock);
    return 0; //true
}

/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_write_reg16()
 *
 *  Description: Omap730 SPI write 16reg
 *  
 *  Arguments: PVOID pHC, USHORT reg, USHORT data
 *    
 *  Return Value: int
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
int Omap_gspx_write_reg16(PVOID pHC, USHORT reg, USHORT data)
{
    GSPI_HW_INFO *pDevice = (GSPI_HW_INFO*) pHC;

   NdisAcquireSpinLock(&SpiLock);
    OmapSpiOpen( (PVOID)(pDevice->pSPIRegs) );// open spi
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),(reg | 0x8000));// write address
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),data ); // write data
    OmapSpiClose((PVOID)(pDevice->pSPIRegs)); // close spi

    //RETAILMSG(1, (TEXT("*** Omap_gspx_write_reg16:[%x]:[%x]  ***\r\n"),reg,data));
     NdisReleaseSpinLock(&SpiLock);
    return 0;
}

/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_read_reg32()
 *
 *  Description: Omap730 SPI write 32reg
 *  
 *  Arguments:PVOID pHC, USHORT reg, ULONG *data
 *    
 *  Return Value: int
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
int Omap_gspx_read_reg32(PVOID pHC, USHORT reg, ULONG *data)
{
    GSPI_HW_INFO *pDevice = (GSPI_HW_INFO*) pHC;
    int i;
    USHORT rdata;

    NdisAcquireSpinLock(&SpiLock);
    OmapSpiOpen( (PVOID)(pDevice->pSPIRegs) );// open spi
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),reg); // write reg address

    //a delay period required for the WLAN module to prepare the data
    for(i=0; i<dummy_clk_reg; i++)
          OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),0x0 ); // write dumy data
 
    // read data
    rdata = OmapSpiRead16( (PVOID)(pDevice->pSPIRegs) );
    *data = rdata;
    rdata = OmapSpiRead16( (PVOID)(pDevice->pSPIRegs) );
    *data = ((((ULONG)rdata)<<16) & 0xffff0000) | *data;
    
    OmapSpiClose((PVOID)(pDevice->pSPIRegs));// close spi
    
   // RETAILMSG(1, (TEXT("*** Omap_gspx_read_reg32:[%x]:[%x]  ***\r\n"),reg,*data));
     NdisReleaseSpinLock(&SpiLock);
    return 0;//TRUE;
}

/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_write_reg32()
 *
 *  Description: Omap730 SPI write 32reg
 *  
 *  Arguments:PVOID pHC, USHORT reg, ULONG data
 *    
 *  Return Value: int
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
int Omap_gspx_write_reg32(PVOID pHC, USHORT reg, ULONG data)
{
    GSPI_HW_INFO *pDevice = (GSPI_HW_INFO*) pHC;
    USHORT tdata;

    NdisAcquireSpinLock(&SpiLock);
    OmapSpiOpen( (PVOID)(pDevice->pSPIRegs) ); // open spi
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),(reg | 0x8000));// write address

    // write data
    tdata = (USHORT)((data & 0xffff0000)>>16);
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),tdata );

    // write data
    tdata = (USHORT)(data&0xffff);
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),tdata );
    OmapSpiClose((PVOID)(pDevice->pSPIRegs));// close spi

    //RETAILMSG(1, (TEXT("*** Omap_gspx_write_reg32:[%x]:[%x]  ***\r\n"),reg,data));
     NdisReleaseSpinLock(&SpiLock);
    return 0;//TRUE;
}

/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_read_mem()
 *
 *  Description: Omap730 SPI read memory
 *  
 *  Arguments:PVOID pHC, USHORT reg, USHORT size, UCHAR *data
 *    
 *  Return Value: void
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
void Omap_gspx_read_mem(PVOID pHC, USHORT reg, USHORT size, UCHAR *data)
{
    GSPI_HW_INFO *pDevice = (GSPI_HW_INFO*) pHC;
    int i;
    USHORT rdata;

    NdisAcquireSpinLock(&SpiLock);
    OmapSpiOpen( (PVOID)(pDevice->pSPIRegs) );// open spi 
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),reg );// write reg address

    //a delay period required for the WLAN module to prepare the data
    for( i=0;i<dummy_clk_data;i++ )
        OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),0x0 );  // dumy write data

    // read data
    for( i=0;i<size;i++ )
    {
        rdata = OmapSpiRead16( (PVOID)(pDevice->pSPIRegs) );
        *((USHORT*)data) = rdata;
        data += 2; 
    }
    OmapSpiClose((PVOID)(pDevice->pSPIRegs));// close spi

    //RETAILMSG(1, (TEXT("*** Omap_gspx_read_mem:[%x]:[%x]  ***\r\n"),reg,size));
     NdisReleaseSpinLock(&SpiLock);
    return ;//true ->0
}


/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_write_mem()
 *
 *  Description: Omap730 SPI write memory
 *  
 *  Arguments:PVOID pHC, USHORT reg, USHORT size, UCHAR *data
 *    
 *  Return Value: void
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
void Omap_gspx_write_mem(PVOID pHC, USHORT reg, USHORT size, UCHAR *data)
{
    GSPI_HW_INFO *pDevice = (GSPI_HW_INFO*) pHC;
    USHORT tdata;
    int i;

    NdisAcquireSpinLock(&SpiLock);
    OmapSpiOpen( (PVOID)(pDevice->pSPIRegs) );// open spi
    OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),(reg | 0x8000) ); // write address

    for( i=0;i<size;i++ )
    {
        // write data
        tdata = *((USHORT*)data);
        OmapSpiWrite16( (PVOID)(pDevice->pSPIRegs),tdata );
        data += 2;
    }

    OmapSpiClose((PVOID)(pDevice->pSPIRegs));// close spi

   // RETAILMSG(1, (TEXT("*** Omap_gspx_write_mem:[%x]:[%x]  ***\r\n"),reg,size));
     NdisReleaseSpinLock(&SpiLock);
     return ;//true ->0
}

/*-----------------------------------------------------------
 *
 *  Name: Omap_gspx_get_sysintr()
 *
 *  Description: Get   sysintr
 *  
 *  Arguments:void
 *    
 *  Return Value: ULONG
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
ULONG Omap_gspx_get_sysintr(void)
{
    return  pHwInfo->SysIntr;
}


/*-----------------------------------------------------------
 *
 *  Name: Omap_gspi_register_isr()
 *
 *  Description: register ISR
 *  
 *  Arguments:PGSPI_HW_INFO pGspiHwInfo, void* Adapter, ISRFUNC isrFunc
 *    
 *  Return Value: DWORD
 *           
 *
 *  Notes: 
--------------------------------------------------------------*/
DWORD Omap_gspi_register_isr(PGSPI_HW_INFO pGspiHwInfo, void* Adapter, ISRFUNC isrFunc)
{
	PGSPI_HW_INFO pHC = pGspiHwInfo;

	if((pHC == NULL) || (Adapter == NULL) || (isrFunc == NULL))
		return -1;

	pHC->hIsrParam = (HANDLE) Adapter;
	pHC->isrFunc = isrFunc;

	return 0;
}
void Omap730_PowerDownWlan(void)
{
     //disable interrupt
	pHwInfo->IntsInfo.bDriverShutdown = TRUE;
	// power on wlan
    GPIOClrBit(pHwInfo->hGPIO, BSP_GPIO_WlanPower);
    GPIOClrBit(pHwInfo->hGPIO, BSP_GPIO_WlanPowerDown);
}
	
void Omap730_PowerOnWlan(void)
{
    // power on wlan       
    GPIOSetBit(pHwInfo->hGPIO, BSP_GPIO_WlanPower);
    GPIOSetBit(pHwInfo->hGPIO, BSP_GPIO_WlanPowerDown);
    Sleep(20);
   //disable interrupt
    pHwInfo->IntsInfo.bDriverShutdown = FALSE;

}
    // reset wlan spi

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线free| 在线一区二区三区| 麻豆精品在线看| 日韩成人免费电影| 手机精品视频在线观看| 亚洲一区二区欧美| 性做久久久久久| 天天av天天翘天天综合网| 五月天激情综合| 免费人成在线不卡| 精一区二区三区| 国产麻豆精品theporn| 国产69精品久久99不卡| eeuss鲁一区二区三区| 色综合久久久网| 欧美日韩国产影片| 欧美电视剧在线看免费| 国产欧美一区二区精品性色超碰 | 欧美性猛交一区二区三区精品 | 亚洲毛片av在线| 一区二区三区不卡视频| 偷拍日韩校园综合在线| 另类欧美日韩国产在线| 大白屁股一区二区视频| 91精品福利视频| 欧美一二三区在线观看| 国产精品素人一区二区| 亚洲已满18点击进入久久| 日本亚洲视频在线| 粉嫩嫩av羞羞动漫久久久| 在线观看亚洲精品视频| 日韩一区二区在线观看| 中文字幕一区在线观看视频| 婷婷综合五月天| 国产成人午夜视频| 欧美日韩精品一区二区三区蜜桃| 欧美大片在线观看一区| 亚洲天堂a在线| 久久爱www久久做| 一本久道中文字幕精品亚洲嫩| 日韩女优av电影在线观看| 1区2区3区精品视频| 国产资源在线一区| 欧美视频日韩视频| 欧美激情一区二区三区四区 | 日韩视频中午一区| 亚洲柠檬福利资源导航| 国产乱人伦偷精品视频不卡| 欧美精品久久99| 亚洲色图一区二区三区| 国产一二精品视频| 91麻豆精品91久久久久同性| 亚洲私人黄色宅男| 国产 日韩 欧美大片| 日韩久久久精品| 日韩影视精彩在线| 欧美综合一区二区三区| 中文字幕精品三区| 国产综合一区二区| 日韩精品一区在线观看| 视频一区欧美精品| 欧美色图免费看| 亚洲激情一二三区| 91免费看视频| 中文字幕一区二区三区精华液 | 亚洲成a人在线观看| 91免费视频观看| 中文字幕一区二区三区在线播放| 国产电影精品久久禁18| 精品福利av导航| 国产中文一区二区三区| 精品国产一区二区三区久久久蜜月| 亚洲无人区一区| 欧美亚洲国产一区在线观看网站| 亚洲欧美日韩电影| 色婷婷精品久久二区二区蜜臀av| 日本一区二区免费在线观看视频 | 美女免费视频一区二区| 欧美日韩国产首页在线观看| 一区二区三区四区视频精品免费 | 激情伊人五月天久久综合| 日韩欧美电影一区| 精品无码三级在线观看视频| 欧美大尺度电影在线| 黑人精品欧美一区二区蜜桃| 欧美精品一区二区三区久久久| 激情综合五月天| 国产欧美一区二区三区在线老狼| 成人午夜av在线| 亚洲美女屁股眼交| 337p亚洲精品色噜噜噜| 麻豆91小视频| 中文成人综合网| 欧美午夜在线一二页| 日本不卡免费在线视频| 久久久久久综合| 91最新地址在线播放| 亚洲制服欧美中文字幕中文字幕| 777a∨成人精品桃花网| 国产高清精品久久久久| 成人免费在线视频| 欧美裸体一区二区三区| 国产高清无密码一区二区三区| 中文字幕一区二区三区不卡 | 99re成人精品视频| 五月天激情综合网| 久久久精品免费网站| 91亚洲精品一区二区乱码| 午夜精品影院在线观看| 久久精品一二三| 欧美视频一二三区| 风间由美性色一区二区三区| 丝袜国产日韩另类美女| 国产精品每日更新在线播放网址 | 日本最新不卡在线| 国产精品私人影院| 欧美日韩国产中文| 成人avav影音| 精品在线播放免费| 亚洲黄色小说网站| 国产欧美视频在线观看| 欧美日韩免费观看一区二区三区| 国产一区二区女| 视频一区视频二区中文| 综合久久久久久| 欧美激情在线看| 日韩精品专区在线影院重磅| 在线观看一区日韩| 大桥未久av一区二区三区中文| 免费成人在线观看视频| 亚洲一区在线观看视频| 国产精品你懂的| 久久久久久久久久久久久女国产乱| 精品视频一区三区九区| 色婷婷综合五月| 成人午夜大片免费观看| 国产成人超碰人人澡人人澡| 久久精品国内一区二区三区| 午夜欧美在线一二页| 亚洲精品国产成人久久av盗摄 | 中文字幕一区二区三区不卡 | av高清久久久| 懂色一区二区三区免费观看| 久久99国内精品| 日本大胆欧美人术艺术动态| 亚洲成年人影院| 亚洲国产成人porn| 亚洲午夜激情av| 亚洲成人精品一区二区| 亚洲精品免费在线| 一区二区三区欧美日| 有坂深雪av一区二区精品| 中文字幕一区二区三区色视频| 国产精品免费看片| ●精品国产综合乱码久久久久| 国产精品久久久久久久久免费丝袜| 国产偷v国产偷v亚洲高清| 久久久不卡网国产精品二区| 国产亚洲一区二区三区| 国产欧美日韩麻豆91| 国产精品免费免费| 一区二区三区在线观看国产| 一区二区三区四区在线免费观看 | 精品一区二区久久久| 国产一区福利在线| 东方aⅴ免费观看久久av| av一本久道久久综合久久鬼色| 99视频国产精品| 欧美综合天天夜夜久久| 91麻豆精品国产91久久久更新时间| 制服丝袜av成人在线看| 欧美精品一区在线观看| 亚洲欧美在线高清| 亚洲国产综合人成综合网站| 日本成人在线视频网站| 国产成人在线电影| 在线影院国内精品| 777午夜精品视频在线播放| 欧美大片一区二区| 国产精品久久久久久久久久久免费看| 亚洲特黄一级片| 免费成人结看片| 91无套直看片红桃| 9191精品国产综合久久久久久| 久久综合久久综合久久| 亚洲男人的天堂在线观看| 日本不卡免费在线视频| www.欧美日韩| 日韩欧美国产电影| 亚洲精品日日夜夜| 久久精品国产精品亚洲红杏| 成人精品视频一区二区三区 | 亚洲精品免费在线播放| 久久精品999| 97se亚洲国产综合自在线不卡| 555www色欧美视频| 日韩毛片一二三区| 国产一区二区三区精品欧美日韩一区二区三区| 99re热这里只有精品视频| 日韩一级免费观看|