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

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

?? gspi_bus_2440.c

?? murata wifi 模塊源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
#if defined(IF_GSPI) && (defined(SC2442_SPI))

#include <Windows.h>
#include <Pkfuncs.h>
#include "s3c2440a.h"
#define SSPreg  S3C2440A_SPI_REG
#define DMAreg  S3C2440A_DMA_REG
#define IOPreg  S3C2440A_IOPORT_REG
#define CLKreg  S3C2440A_CLKPWR_REG
#define SSP_BASE S3C2440A_BASE_REG_PA_SPI
#define IOP_BASE S3C2440A_BASE_REG_PA_IOPORT
#define DMA_BASE S3C2440A_BASE_REG_PA_DMA
#define CLK_BASE S3C2440A_BASE_REG_PA_CLOCK_POWER
#define rGPDDAT GPDDAT
#define rGPDCON GPDCON
#define rGPDUP GPDUP
#define rGPEDAT GPEDAT
#define rGPECON GPECON
#define rGPEUP GPEUP
#define rGPFDAT GPFDAT
#define rGPFCON GPFCON
#define rGPFUP GPFUP
#define rGPGDAT GPGDAT
#define rGPGCON GPGCON
#define rGPGUP GPGUP
#define rGPHDAT GPHDAT
#define rGPHCON GPHCON
#define rGPHUP GPHUP
#define rSPCON0 SPCON0
#define rSPPRE0 SPPRE0
#define rSPPIN0 SPPIN0
#define rSPSTA0 SPSTA0
#define rSPTDAT0 SPTDAT0
#define rSPRDAT0 SPRDAT0
#define rMISCCR MISCCR
#define rEXTINT0 EXTINT0
#define rEXTINT1 EXTINT1
#define rDSTAT1 DSTAT1
#define rDISRC1 DISRC1
#define rDISRCC1 DISRCC1
#define rDIDST1 DIDST1
#define rDIDSTC1 DIDSTC1
#define rDIDSTC1 DIDSTC1
#define rDCON1   DCON1
#define rDMASKTRIG1 DMASKTRIG1
#define rDSTAT3 DSTAT3
#define rDISRC3 DISRC3
#define rDISRCC3 DISRCC3
#define rDIDST3 DIDST3
#define rDIDSTC3 DIDSTC3
#define rDIDSTC3 DIDSTC3
#define rDCON3   DCON3
#define rDMASKTRIG3 DMASKTRIG3

#include "gspi_bus_2440.h"
typedef struct GspiBusDmaData
{
   DWORD   dwDmaIntID;
   HANDLE  hGspiDmaIntrEvent;
   HANDLE  hIstDmaThread;
   HANDLE  hGspiBusSem;
   int     IstPriority;
   BOOLEAN gspi_dma_exit;
} 
GSPI_DMA_DATA,*PGSPI_DMA_DATA;

static SYSTEM_INFO si = {0, 0, 0, 0};

#ifndef DEBUG
#define GSPI_BUS_DELAY(x) gspi_bus_delay(x)	
#else
#define GSPI_BUS_DELAY(x)
#endif 

//#define GSPI_WAIT_FOR_BUS_RDY() while(!(*spi_status_ptr & BIT0))
//#define GSPI_WAIT_FOR_BUS_RDY()		while(!(*((volatile UINT32 *)(&(g_pHwInfo->pSPIRegs->rSPSTA0))) & BIT0))

#if 1
#ifndef DEBUG
#define GSPI_WAIT_FOR_BUS_RDY()  gspi_wait_for_bus_rdy()
#else
#define GSPI_WAIT_FOR_BUS_RDY()  while (!((volatile)(g_pHwInfo->pSPIRegs->rSPSTA0) & BIT0))
#endif 
#endif 
/* ----- Local function declaration -------- */
UINT32 spi_status = 0;

void* MapIOSpace(void* pPhysAddr,
                 DWORD dwSize,
                 DWORD dwFlags);
void UnmapIOSpace(void* pVirtAddr);
DWORD WINAPI GspiBusDmaIST(PVOID pContext);
int GspiBusCtrlInit();
int GspiBusGPIOInit();
int GspiBusDmaInit();
void GspiBusInitRxDMA();
void GspiBusInitTxDMA();
static __inline 
void gspi_bus_delay(int times);
static __inline  
void gspi_wait_for_bus_rdy();
static __inline  
void gspi_xmt_data(UINT16* pData,UINT16 size);
static __inline  
void gspi_recv_data(UINT16* pData,UINT16 size);
int gspi_read_data(UINT16 *data, UINT16 size);
int gspi_bus_write_data(UINT16 *data, UINT16 size);
int gspi_read_data_direct(UCHAR *data, UINT16 reg, UINT16 size);
int gspi_bus_write_data_direct(UCHAR *data, UINT16 reg, UINT16 size);
void gspi_delay(int loop);
unsigned long GspiBusGetBSPDMAIntID();
int GspiBusDmaDeinit();
int GspiBusDmaIntrInit(IN PGSPI_DMA_DATA pDriver);
int GspiBusDmaIntrDeinit(IN PGSPI_DMA_DATA pDriver);
/* ----------------------------------------- */

/* Use default clock rate of 20 Mhz for GSPI. So, clkdiv as 0 */
static int	    clkdiv = 0; 
//extern int				g_spi_dummy_clk_reg;
//extern int				g_spi_dummy_clk_data;
int             g_spi_dummy_clk_reg = 0x05;   //JKU
int     		g_spi_dummy_clk_data = 0x0e;  //JKU
volatile UINT32  *spi_status_ptr;
// Pointers to Hardware register base.
static GSPI_HW_INFO HwInfo;
pGSPI_HW_INFO g_pHwInfo = &HwInfo;
static GSPI_DMA_DATA g_GspiDmaData;

#ifdef BUILT_FOR_LGEVT
volatile BSP_ARGS* g_pBspArgs = NULL;
#endif

//__inline
void GspiBusDMADone()//PSPI_DMA_DATA pDrv);
{    
    ReleaseSemaphore(g_GspiDmaData.hGspiBusSem, 1, NULL);
}

//__inline
int GspiBusWaitForDMA()
{  
   	WaitForSingleObject(g_GspiDmaData.hGspiBusSem, INFINITE);
    return 1;
}
void gspi_set_read_delay(int reg,int io)
{
	g_spi_dummy_clk_reg = reg;
	g_spi_dummy_clk_data = io;
}
void GspiHostSetTst1High()
{
	g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 10); //GPE10
}

void GspiHostSetTst1Low()
{
	g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 10); //GPE10 
}
void GspiHostSetTst2Low()
{
  g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 9); //GPE9

}
void GspiHostSetTst2High()
{
  g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 9); //GPE9
}
void GspiHostSetTst3High()
{
	g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 8); //GPE8
}
void GspiHostSetTst3Low()
{
	g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 8); //GPE8 
}

void GspiHostSetSCSHigh()
{ 
   //g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 9); //GPE9
   g_pHwInfo->pGPIORegs->rGPGDAT |= (0x1 << 2); //nSS0
	gspi_delay(10);
}

void GspiHostSetSCSLow()
{
    //g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 9); //GPE9
    g_pHwInfo->pGPIORegs->rGPGDAT &= ~(0x1 << 2); //nSS0
}

void GspiHostSetRSTHigh()
{
	g_pHwInfo->pGPIORegs->rGPHDAT |= (0x1 << 10); //GPH10
}

void GspiHostSetRSTLow()
{
	g_pHwInfo->pGPIORegs->rGPHDAT &= ~(0x1 << 10); //GPH10

}
void GspiHostSetPDHigh()
{
	g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 9); //GPE9
}

void GspiHostSetPDLow()
{
	g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 9); //GPE9
}

void GspiHostSetPwrEnHigh()
{
}

void GspiHostSetPwrEnLow()
{

}
static __inline
void prepare_for_spibus(UCHAR *data, UCHAR* source, UINT16 size)
{
    register int ii, jj;
    UINT16 *tmpval = (UINT16*)data;
	
    for (ii = 0; ii < size; ii++)
    {
		jj = 2 * ii;
        tmpval[ii] = (source[jj] << 8) | (source[jj+1] );
    }
}

static __inline 
void GspiBusSetTransmitter(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x58; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=DMA
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
}

static __inline 
void GspiBusSetTransmitter_nodma(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x18; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
//	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x38; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=Interrupt
	
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
}

static __inline 
void GspiBusResetTransmitter(void)
{
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x18; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
}

static __inline 
void GspiBusSetReceiver(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x59; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=DMA
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
} 

static __inline 
void GspiBusSetReceiver_nodma(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x19; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
//	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x39; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=interrupt
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
} 
static __inline 
void GspiBusResetReceiver(void)
{
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x18; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
}

int GspiCardInit(void)
{
    // take the card out of reset
	GspiHostSetRSTHigh();
	//NdisMSleep(1000);
	Sleep(1);
	GspiHostSetRSTLow();
	//JKU: NdisMSleep(5000);
	Sleep(5);
    GspiHostSetRSTHigh();
	//JKU: NdisMSleep(1000);
  	Sleep(1);
return GSPI_OK;
}

//
// Map H/W registers and DMA pages into the local address space.
//

int GspiMapMemories()
{
    // Map SPI registers into driver address space
    g_pHwInfo->pSPIRegs = (SSPreg*)MapIOSpace(
						(void *)( SSP_BASE ),
						sizeof(SSPreg),
						( PAGE_READWRITE | PAGE_NOCACHE ) 
						);
    if (!g_pHwInfo->pSPIRegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping SPI registers.\n" ) ) );
        return !GSPI_OK;
    }
  //  DBG_PRINT(gDbgInfo,("SPI register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs));

	// Map gpio register space
    g_pHwInfo->pGPIORegs = (IOPreg*)MapIOSpace(
						(void*)( IOP_BASE ),
						sizeof( IOPreg ),
						PAGE_READWRITE | PAGE_NOCACHE );
    if (!g_pHwInfo->pGPIORegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping GPIO registers.\n" ) ) );
        return !GSPI_OK;
    }
//    DBG_PRINT(gDbgInfo,("GPIO register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pGPIORegs));

	// Map clock register space	
	 g_pHwInfo->pCLKRegs = (CLKreg*)MapIOSpace(
						(void*)( CLK_BASE ),
						sizeof( CLKreg ),
						PAGE_READWRITE | PAGE_NOCACHE );
    if (!g_pHwInfo->pCLKRegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping CLK registers.\n" ) ) );
        return !GSPI_OK;
    }
//    DBG_PRINT(gDbgInfo,("CLK register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pCLKRegs));

    // Map DMA registers into driver address space
    g_pHwInfo->pDMARegs = (DMAreg*)MapIOSpace(
                        (void *)( DMA_BASE ),
						sizeof(DMAreg),
						( PAGE_READWRITE | PAGE_NOCACHE ) );
    if (!g_pHwInfo->pDMARegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping DMA registers.\n" ) ) );
        return !GSPI_OK;
    }
//    DBG_PRINT(gDbgInfo,("DMA register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pDMARegs));
    

    // Allocate a block of virtual memory big enough to hold the DMA buffers
    g_pHwInfo->dmaTxBuf = AllocPhysMem(BSP_GSPI_DMA_TX_BUF_SIZE, ( PAGE_READWRITE | PAGE_NOCACHE ), 0, 0, &g_pHwInfo->dmaPhyTxBuf);
    if (!g_pHwInfo->dmaTxBuf)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR allocate Tx DMA memory.\n" ) ) );
        return !GSPI_OK;
    }
    g_pHwInfo->dmaRxBuf = AllocPhysMem(BSP_GSPI_DMA_RX_BUF_SIZE, ( PAGE_READWRITE | PAGE_NOCACHE ), 0, 0, &g_pHwInfo->dmaPhyRxBuf);
    if (!g_pHwInfo->dmaRxBuf)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR allocate Rx memory.\n" ) ) );
        return !GSPI_OK;
    }
    g_pHwInfo->dmaTxRxBuf = AllocPhysMem(BSP_GSPI_DMA_TX_RX_BUF_SIZE, ( PAGE_READWRITE | PAGE_NOCACHE ), 0, 0, &g_pHwInfo->dmaPhyTxRxBuf);
    if (!g_pHwInfo->dmaTxRxBuf)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR allocate TxRx memory.\n" ) ) );
        return !GSPI_OK;
    }

    memset(g_pHwInfo->dmaTxRxBuf, 0xff, BSP_GSPI_DMA_TX_RX_BUF_SIZE);
//    DBG_PRINT(gDbgInfo,("DMA tx buffer virtual addr =0x%lX, phy addr=0x%x\n", (unsigned long)g_pHwInfo->dmaTxBuf, g_pHwInfo->dmaPhyTxBuf));
//    DBG_PRINT(gDbgInfo,("DMA rx buffer virtual addr =0x%lX, phy addr=0x%x\n", (unsigned long)g_pHwInfo->dmaRxBuf, g_pHwInfo->dmaPhyRxBuf));
//    DBG_PRINT(gDbgInfo,("DMA txrx buffer virtual addr =0x%lX, phy addr=0x%x\n", (unsigned long)g_pHwInfo->dmaTxRxBuf, g_pHwInfo->dmaPhyTxRxBuf));
   
    return GSPI_OK;
}

int GspiUnmapMemories()
{
    // Unmap SPI registers into driver address space
	if(g_pHwInfo->pSPIRegs)
		UnmapIOSpace(g_pHwInfo->pSPIRegs);
	
	// Unmap gpio register space
	if(g_pHwInfo->pGPIORegs)
	   UnmapIOSpace(g_pHwInfo->pGPIORegs);

	// Unmap clock register space
	if(g_pHwInfo->pCLKRegs)
		UnmapIOSpace(g_pHwInfo->pCLKRegs);

    // Map DMA registers into driver address space
	if(g_pHwInfo->pDMARegs)
	  UnmapIOSpace(g_pHwInfo->pDMARegs);

    // Free the  virtual memory allocated for  DMA buffers
  
     if (g_pHwInfo->dmaTxBuf)
		FreePhysMem(g_pHwInfo->dmaTxBuf);

	 if(g_pHwInfo->dmaRxBuf)
		FreePhysMem(g_pHwInfo->dmaRxBuf);

	 if(g_pHwInfo->dmaTxRxBuf)
		FreePhysMem(g_pHwInfo->dmaTxRxBuf);

	 return GSPI_OK;
}

int GspiBusHwReset()
{
	GspiHostSetPDHigh();
	//JKU: NdisMSleep(5000);
	Sleep(5);

	// Initialize SPI controller here
	if(GspiBusGPIOInit() != GSPI_OK)
		return !GSPI_OK;

	if(GspiBusCtrlInit() != GSPI_OK)
		return !GSPI_OK;
    return GSPI_OK;
}
int GspiBusHwInit()
{

	if (GspiMapMemories() != GSPI_OK)
		return !GSPI_OK;

	// program gpio pins
	if(GspiBusGPIOInit()  != GSPI_OK)
		return !GSPI_OK;

	GspiHostSetPDHigh();
	//JKU: NdisMSleep(10000);
	Sleep(10);

	//GspiBusIntGPIOInit();
	g_GspiDmaData.hGspiBusSem = CreateSemaphore(NULL,0,1,NULL);	
	
	// Initialize SPI controller here
	if(GspiBusCtrlInit() != GSPI_OK)
		return !GSPI_OK;
    if(GspiBusDmaInit() != GSPI_OK)
		return !GSPI_OK;		

	spi_status_ptr = &g_pHwInfo->pSPIRegs->rSPSTA0;
    return GSPI_OK;
}

int GspiBusHwDeinit()
{
	GspiBusDmaDeinit();	

	GspiHostSetPDLow();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看视频一区| 欧美专区日韩专区| 麻豆国产精品官网| 日韩在线卡一卡二| 日本亚洲一区二区| 精品一区二区三区的国产在线播放| 五月天亚洲精品| 日韩国产欧美在线观看| 久久精品av麻豆的观看方式| 日本va欧美va欧美va精品| 奇米精品一区二区三区在线观看| 免费高清视频精品| 国产一区二区伦理片| 国产精品18久久久久久久久 | 在线观看成人免费视频| 欧美性色欧美a在线播放| 欧美少妇bbb| 精品国产百合女同互慰| 国产欧美日韩在线| 亚洲免费观看在线观看| 性做久久久久久免费观看欧美| 秋霞影院一区二区| 国产一区 二区| 色综合天天综合狠狠| 色天使久久综合网天天| 欧美亚州韩日在线看免费版国语版| 欧美日韩精品欧美日韩精品| 欧美r级在线观看| 中文字幕免费一区| 天天影视网天天综合色在线播放| 精品影院一区二区久久久| 国产 欧美在线| 欧美日韩国产美| 欧美激情在线看| 日韩福利电影在线观看| aaa欧美大片| 日韩欧美你懂的| 亚洲日本护士毛茸茸| 久久精品国产免费| 色哟哟一区二区| 欧美va亚洲va国产综合| 一区二区三区在线影院| 国产精品18久久久久| 欧美日韩亚洲综合| 亚洲国产电影在线观看| 久久99精品一区二区三区三区| 97se亚洲国产综合自在线| 欧美一级理论性理论a| 亚洲男人电影天堂| 丁香婷婷综合激情五月色| 制服丝袜在线91| 中文字幕亚洲欧美在线不卡| 精品一区二区三区久久| 欧美日韩一区不卡| 亚洲欧洲性图库| 国产成人综合精品三级| 欧美刺激午夜性久久久久久久| 一区二区三区精品视频| 成人动漫一区二区三区| 精品免费99久久| 奇米一区二区三区| 欧美日韩午夜影院| 亚洲精品福利视频网站| 91在线精品秘密一区二区| 精品国产三级a在线观看| 日日夜夜精品免费视频| 日韩午夜激情av| 自拍偷拍欧美精品| 国产一区二区三区免费观看| 欧美日韩免费视频| 一区二区三区久久| 99riav久久精品riav| 国产精品久久久久久亚洲毛片| 国产伦精品一区二区三区免费迷 | 色哟哟在线观看一区二区三区| 国产欧美精品日韩区二区麻豆天美| 久久精品国产99国产| 日韩一级二级三级| 亚洲国产精品v| 国产成人av电影在线观看| 色综合久久中文字幕综合网| 欧美大片一区二区| 精品亚洲国内自在自线福利| 日韩欧美激情在线| 久久99精品国产麻豆不卡| 精品免费一区二区三区| 国产麻豆9l精品三级站| 国产欧美一区二区在线观看| 成人性生交大片免费看中文网站| 久久亚洲捆绑美女| 国产乱国产乱300精品| 国产精品色在线观看| 成人小视频在线| 亚洲一区视频在线观看视频| 欧美精品久久一区二区三区| 久久国产精品99精品国产 | 成人黄色小视频在线观看| 日本一区二区三区dvd视频在线| 福利一区福利二区| 一区二区三区四区视频精品免费| 欧美日韩国产综合一区二区 | 亚洲国产精品久久久男人的天堂 | 精品福利视频一区二区三区| 国产九色sp调教91| 亚洲精品国久久99热| 欧美一区二区在线视频| 高清国产午夜精品久久久久久| 夜夜亚洲天天久久| 精品少妇一区二区三区免费观看 | 欧美精品乱码久久久久久| 久久精品国产精品青草| 亚洲色图丝袜美腿| 精品久久久久香蕉网| 99re热视频这里只精品| 免费在线观看一区| 亚洲视频免费看| 久久色在线观看| 欧美日本一道本在线视频| 丁香婷婷综合五月| 日韩制服丝袜先锋影音| 国产精品美女久久久久av爽李琼| 欧美日韩亚洲综合在线| 成人av电影观看| 黄页网站大全一区二区| 日韩精品国产欧美| 亚洲欧美日韩中文播放| 久久久精品欧美丰满| 91.xcao| 色欲综合视频天天天| 国产成人av福利| 激情五月婷婷综合| 五月综合激情日本mⅴ| 亚洲乱码中文字幕| 国产精品三级av在线播放| 日韩欧美成人午夜| 欧美日韩激情在线| 色屁屁一区二区| 99精品国产一区二区三区不卡| 国产麻豆精品视频| 激情综合色播五月| 美女免费视频一区二区| 日本亚洲视频在线| 日韩专区在线视频| 日精品一区二区三区| 五月激情综合婷婷| 午夜精品福利在线| 午夜伦欧美伦电影理论片| 亚洲国产婷婷综合在线精品| 亚洲在线中文字幕| 亚洲一二三专区| 首页国产丝袜综合| 日韩影院免费视频| 日韩影院精彩在线| 青青草原综合久久大伊人精品优势 | 欧美一区二区视频在线观看2020| 欧美在线看片a免费观看| 色综合久久中文综合久久97| 在线国产亚洲欧美| 欧美午夜电影网| 欧美日韩国产123区| 91精品国产综合久久精品性色| 欧美另类高清zo欧美| 91精品国产麻豆| 精品久久久久一区| 日本一区二区久久| 亚洲精品中文字幕在线观看| 亚洲制服丝袜在线| 人人精品人人爱| 国产揄拍国内精品对白| av网站免费线看精品| 欧美色图激情小说| 日韩一级二级三级| 亚洲国产精品国自产拍av| 成人免费在线视频观看| 亚洲影视在线播放| 久久99精品久久久久久| 成人高清av在线| 欧美视频一区二区三区| 日韩欧美一区电影| 日韩美女啊v在线免费观看| 亚洲一级二级在线| 韩国精品免费视频| 91精品办公室少妇高潮对白| 在线观看91av| 国产欧美精品一区二区三区四区| 亚洲激情av在线| 国内精品自线一区二区三区视频| 99这里只有久久精品视频| 91精品国产色综合久久不卡电影| 国产亚洲制服色| 亚洲一区二区三区四区的| 国产乱子轮精品视频| 欧美午夜精品久久久| 久久精品视频一区二区| 一区二区三区不卡视频在线观看| 激情综合色综合久久| 欧美日韩一区二区三区在线| 久久亚洲私人国产精品va媚药| 亚洲电影在线免费观看| 国产不卡免费视频|