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

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

?? s3c6410_iis_interface.c

?? 6410BSP3
?? C
字號:
//
// Copyright (c) Samsung Electronics. Co. LTD.  All rights reserved.
//
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

*/

#include <windows.h>
#include <wavedbg.h>
#include <bsp_cfg.h>
#include <s3c6410.h>
#include "s3c6410_iis_interface_macro.h"
#include "s3c6410_iis_interface.h"

#define IIS_MSG(x)
#define IIS_INF(x)    DEBUGMSG(ZONE_FUNCTION, x)
#define IIS_ERR(x)    DEBUGMSG(ZONE_ERROR, x)

#define DELAY_LOOP_COUNT    (S3C6410_ACLK/100000)
#define CONTROL_DELAY        (10)
#define CMD_DELAY            (3)

static volatile S3C6410_GPIO_REG * g_pGPIOReg = NULL;
static volatile S3C6410_IIS_REG * g_pIISReg = NULL;

IIS_ERROR IIS_initialize_register_address(void *pIISReg, void *pGPIOReg)
{
    IIS_ERROR error = IIS_SUCCESS;

    IIS_MSG((_T("[IIS]++IIS_initialize_register_address(0x%08x, 0x%08x)\n\r"), pIISReg, pGPIOReg));

    if (pIISReg == NULL || pGPIOReg == NULL)
    {
        IIS_ERR((_T("[IIS:ERR] IIS_initialize_register_address() : NULL pointer parameter\n\r")));
        error = IIS_ERROR_NULL_PARAMETER;
    }
    else
    {
        g_pIISReg = (S3C6410_IIS_REG *)pIISReg;
        g_pGPIOReg = (S3C6410_GPIO_REG *)pGPIOReg;
        IIS_INF((_T("[IIS:INF] g_pIISReg = 0x%08x\n\r"), g_pIISReg));
        IIS_INF((_T("[IIS:INF] g_pGPIOReg = 0x%08x\n\r"), g_pGPIOReg));
    }

    IIS_MSG((_T("[IIS]--IIS_initialize_register_address() : %d\n\r"), error));

    return error;
}

void IIS_initialize_interface(void)
{
    IIS_MSG((_T("[IIS] ++IIS_initialize_interface()\n\r")));

    IIS_set_active_off();

    // Initialize IIS Interface
    IIS_port_initialize(IIS_CH_2);

#if    1    // Sampling Rate 44.1 KHz with EPLL 84,666,667 Hz
    // Configurre IIS clock prescale value
    IIS_set_prescale_value(4);            // EPLL Fout/(4+1) = 84,666,667 Hz / 5 = 16,933,334 Hz
    IIS_set_prescale_enable();

    // Flush IIS fifo
    IIS_fifo_flush(IIS_TX_FIFO_FLUSH);
    IIS_fifo_flush(IIS_TX_FIFO_NOFLUSH);
    IIS_fifo_flush(IIS_RX_FIFO_FLUSH);
    IIS_fifo_flush(IIS_RX_FIFO_NOFLUSH);

    //
    IIS_set_transfer_mode(IIS_TRANSFER_TX);

    //rI2SMOD : TxOnlyMode, I2SRootClk, BitClk, BitLength
    //IIS_set_interface_mode(ISS_TRANSFER_TX, eLEFT_LOW_RIGHT_HIGH, eI2S_DATA_I2S, ucCODECLK, ucBCLK, ucBLTH);

    IIS_set_interface_codec_clock_source(IIS_INTERNEL_CDCLK);
    IIS_set_interface_master_slave_mode(IIS_MASTER_BYPASS_MODE);
    IIS_set_interface_tranmit_receive_mode(IIS_TRANSFER_BOTH);
    IIS_set_interface_clock_polarity(LOW_FOR_LEFT);
    IIS_set_interface_serial_data_format(IIS_FORMAT);
    IIS_set_interface_codec_clock_frequency(IIS_CODEC_CLOCK_384FS);
    IIS_set_interface_bit_clock_frequency(IIS_BIT_CLOCK_32FS);
    IIS_set_interface_bit_length(IIS_BIT_LENGTH_16BIT);
#else
    // Configurre IIS clock prescale value
    IIS_set_prescale_value(1);
    IIS_set_prescale_enable();

    // Flush IIS fifo
    IIS_fifo_flush(IIS_TX_FIFO_FLUSH);
    IIS_fifo_flush(IIS_TX_FIFO_NOFLUSH);
    IIS_fifo_flush(IIS_RX_FIFO_FLUSH);
    IIS_fifo_flush(IIS_RX_FIFO_NOFLUSH);

    //
    IIS_set_transfer_mode(IIS_TRANSFER_TX); //IIS_TRANSFER_TX);

    //rI2SMOD : TxOnlyMode, I2SRootClk, BitClk, BitLength
    //IIS_set_interface_mode(ISS_TRANSFER_TX, eLEFT_LOW_RIGHT_HIGH, eI2S_DATA_I2S, ucCODECLK, ucBCLK, ucBLTH);

    IIS_set_interface_codec_clock_source(IIS_TRANSFER_BOTH); //IIS_TRANSFER_BOTH);
    IIS_set_interface_master_slave_mode(IIS_MASTER_DIVIDE_MODE);
    IIS_set_interface_tranmit_receive_mode(IIS_TRANSFER_BOTH); //IIS_TRANSFER_BOTH
    IIS_set_interface_clock_polarity(LOW_FOR_LEFT);
    IIS_set_interface_serial_data_format(IIS_FORMAT);
    IIS_set_interface_codec_clock_frequency(IIS_CODEC_CLOCK_384FS);
    IIS_set_interface_bit_clock_frequency(IIS_BIT_CLOCK_32FS);
    IIS_set_interface_bit_length(IIS_BIT_LENGTH_16BIT);
#endif

    IIS_MSG((_T("[IIS] --IIS_initialize_interface()\n\r")));
}

unsigned int IIS_get_output_physical_buffer_address(IIS_CHANNEL mChannel)
{
    unsigned int m_physical_buffer_address = 0;
    if (mChannel == IIS_CH_0) m_physical_buffer_address = (unsigned int)(0x7F002010);
    if (mChannel == IIS_CH_1) m_physical_buffer_address = (unsigned int)(0x7F003010);
    if (mChannel == IIS_CH_2) m_physical_buffer_address = (unsigned int)(0x7F00D010);
    
    return m_physical_buffer_address;
}

unsigned int IIS_get_input_physical_buffer_address(IIS_CHANNEL mChannel)
{
    unsigned int m_physical_buffer_address = 0;
    if (mChannel == IIS_CH_0) m_physical_buffer_address = (unsigned int)(0x7F002014);
    if (mChannel == IIS_CH_1) m_physical_buffer_address = (unsigned int)(0x7F003014);
    if (mChannel == IIS_CH_2) m_physical_buffer_address = (unsigned int)(0x7F00D014);
    
    return m_physical_buffer_address;
}

PRIVATE void IIS_port_initialize(IIS_CHANNEL mChnNum)
{
    IIS_MSG((_T("[IIS] IIS_port_initialize()\n\r")));

    ASSERT( (mChnNum == IIS_CH_0) || (mChnNum == IIS_CH_1)  || (mChnNum == IIS_CH_2));

    // IIS CLK        : GPD[0], GPE[0]
    // IIS CDCLK    : GPD[1], GPE[1]
    // IIS LRCLK    : GPD[2], GPE[2]
    // IIS DI        : GPD[3], GPE[3]
    // IIS DO        : GPD[4], GPE[4]

    if (mChnNum == IIS_CH_0)
    {
        // IIS CH 0 Use GPD Port
        g_pGPIOReg->GPDPUD &= ~(0x3ff);    // Pull-Up/Down Disable
        g_pGPIOReg->GPDCON = 0x33333;         // GPD -> IIS
    }
    else if (mChnNum == IIS_CH_1)
    {
        // IIS CH 1 Use GPE Port
        g_pGPIOReg->GPEPUD &= ~(0x3ff);    // Pull-Up/Down Disable
        g_pGPIOReg->GPECON = 0x33333;         // GPD -> IIS
    }
    else if (mChnNum == IIS_CH_2)
    {
        // IIS CH 2 Use GPC, GPH Port
        g_pGPIOReg->GPCPUD &= ~((0x3<<8)|(0x3<<10)|(0x3<<14));    // Pull-Up/Down Disable
        g_pGPIOReg->GPCCON = (g_pGPIOReg->GPCCON & ~((0xf<<16)|(0xf<<20)|(0xf<<28))) | ((5<<16)|(5<<20)|(5<<28));         // GPC -> IIS

        g_pGPIOReg->GPHPUD &= ~((0x3<<12)|(0x3<<14)|(0x3<<16)|(0x3<<18));    // Pull-Up/Down Disable
        g_pGPIOReg->GPHCON0 = (g_pGPIOReg->GPHCON0 & ~((0xf<<24)|(0xf<<28))) | ((5<<24)|(5<<28));         // GPH -> IIS
        g_pGPIOReg->GPHCON1 = (g_pGPIOReg->GPHCON1 & ~((0xf<< 0)|(0xf<< 4))) | ((5<< 0)|(5<< 4));
    }

}

PRIVATE void IIS_set_prescale_value(DWORD mPrescaleValue)
{
    mPrescaleValue = mPrescaleValue & PRESCALER_A_DIVISION_VALUE_MASK; // PSVALA[9:0]

    IIS_MSG((_T("[IIS] Prescale Value = %d\r\n"), mPrescaleValue));
    IIS_MSG((_T("[IIS] Masked Prescale Value = %d\r\n"), (mPrescaleValue&PRESCALER_A_DIVISION_VALUE_MASK)));

    g_pIISReg->IISPSR = (g_pIISReg->IISPSR & ~(PRESCALER_A_DIVISION_VALUE_MASK<<PRESCALER_A_DIVISION_VALUE_SHIFT));
    g_pIISReg->IISPSR |= (mPrescaleValue<<PRESCALER_A_DIVISION_VALUE_SHIFT);
}

PRIVATE void IIS_set_prescale_enable()
{
    IIS_MSG((_T("[IIS] Prescale Enabled\r\n")));

    g_pIISReg->IISPSR |= PRESCALER_A_ACTIVE;
}

PRIVATE void IIS_set_prescale_disable()
{
    IIS_MSG((_T("[IIS] Prescale Disabled\r\n")));

    g_pIISReg->IISPSR &= ~(PRESCALER_A_ACTIVE);
}


PRIVATE void IIS_fifo_flush(IIS_FIFO_FLUSH mFlushMode)
{
    ASSERT( mFlushMode <= IIS_RX_FIFO_NOFLUSH );

    IIS_MSG((_T("[IIS] FIFO Flush Mode [%d] -> [%s][%s]\r\n"), mFlushMode,
        ((mFlushMode/2)? _T("RX") : _T("TX")), ((mFlushMode%2)? _T("NOFLUSH") : _T("FLUSH"))));

    switch(mFlushMode)
    {
        case IIS_TX_FIFO_FLUSH: g_pIISReg->IISFIC |= (TX_FIFO_FLUSH); break;
        case IIS_TX_FIFO_NOFLUSH: g_pIISReg->IISFIC &= ~(TX_FIFO_FLUSH); break;
        case IIS_RX_FIFO_FLUSH: g_pIISReg->IISFIC |= (RX_FIFO_FLUSH); break;
        case IIS_RX_FIFO_NOFLUSH: g_pIISReg->IISFIC &= ~(RX_FIFO_FLUSH); break;
        default: break;
    }
}

PRIVATE void IIS_set_transfer_mode(IIS_TRANSFER_MODE mTransferMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_transfer_mode [%d]\r\n"), mTransferMode));

    uRegValue = g_pIISReg->IISCON & ~(TX_MOD_MASK|RX_MOD_MASK);

    // IISCON : TxDMAPause(6), RxDMAPause(5), TxCHPause(4), RxCHPause(3), TxDMAActive(2), RxDMAActive(1)
    switch(mTransferMode)
    {
        case IIS_TRANSFER_TX :
            uRegValue = uRegValue |(TX_DMA_NOPAUSE) | (RX_DMA_PAUSE) | (TX_CHANNEL_NOPAUSE) | (RX_CHANNEL_PAUSE) | (TX_DMA_ACTIVE) | (RX_DMA_INACTIVE);
            break;
        case IIS_TRANSFER_RX :
            uRegValue = uRegValue | (TX_DMA_PAUSE) | (RX_DMA_NOPAUSE) | (TX_CHANNEL_PAUSE) | (RX_CHANNEL_NOPAUSE) | (TX_DMA_INACTIVE) | (RX_DMA_ACTIVE);
            break;
        case IIS_TRANSFER_BOTH :
            uRegValue = uRegValue | (TX_DMA_NOPAUSE) | (RX_DMA_NOPAUSE) | (TX_CHANNEL_NOPAUSE) | (RX_CHANNEL_NOPAUSE) | (TX_DMA_ACTIVE) | (RX_DMA_ACTIVE);
            break;
        default :
            break;
    }

    g_pIISReg->IISCON = uRegValue;
}

void IIS_set_tx_mode_control(IIS_TRANSFER_PAUSE_CONTROL mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_tx_mode_control [%d]\r\n"), mMode));

    uRegValue = g_pIISReg->IISCON & ~(TX_MOD_MASK);

    switch(mMode)
    {
        case IIS_TRANSFER_NOPAUSE :
            uRegValue = uRegValue |(TX_DMA_NOPAUSE) | (TX_CHANNEL_NOPAUSE) | (TX_DMA_ACTIVE);
            break;
        case IIS_TRANSFER_PAUSE :
            uRegValue = uRegValue | (TX_DMA_PAUSE) | (TX_CHANNEL_PAUSE) | (TX_DMA_INACTIVE);
            break;
        default :
            break;
    }

    g_pIISReg->IISCON = uRegValue;
}

void IIS_set_rx_mode_control(IIS_TRANSFER_PAUSE_CONTROL mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_rx_mode_control [%d]\r\n"), mMode));

    uRegValue = g_pIISReg->IISCON & ~(RX_MOD_MASK);

    switch(mMode)
    {
        case IIS_TRANSFER_NOPAUSE :
            uRegValue = uRegValue | (RX_DMA_NOPAUSE) | (RX_CHANNEL_NOPAUSE) | (RX_DMA_ACTIVE);
            break;
        case IIS_TRANSFER_PAUSE :
            uRegValue = uRegValue | (RX_DMA_PAUSE) | (RX_CHANNEL_PAUSE) | (RX_DMA_INACTIVE);
            break;
        default :
            break;
    }

    g_pIISReg->IISCON = uRegValue;
}


PRIVATE void IIS_set_interface_codec_clock_source(IIS_CODEC_CLOCK_MODE mCodecClockSource)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_mode_codec_clock_source(%d)\r\n"), mCodecClockSource));

    uRegValue = (g_pIISReg->IISMOD & ~(CODEC_CLOCK_SOURCE_MASK));
    if (mCodecClockSource == IIS_INTERNEL_CDCLK) uRegValue |= CODEC_CLK_USE_INTERNEL_CLK;
    if (mCodecClockSource == IIS_EXTERNEL_CDCLK) uRegValue |= CODEC_CLK_USE_EXTERNEL_CLK;
    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_master_slave_mode(IIS_MASTER_SLAVE_MODE mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_master_slave_mode(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(IIS_CLK_MASTER_SLAVE_MASK));
    if (mMode == IIS_MASTER_DIVIDE_MODE) uRegValue |= IIS_CLK_MASTER_PCLK_DIV_MODE;
    if (mMode == IIS_MASTER_BYPASS_MODE) uRegValue |= IIS_CLK_MASTER_IISCLK_BYPASS_MODE;
    if (mMode == IIS_SLAVE_MODE) uRegValue |= IIS_CLK_SLAVE_MODE;

    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_tranmit_receive_mode(IIS_TRANSFER_MODE mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_tranmit_receive_mode(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(TRANSFER_MODE_MASK));
    if (mMode == IIS_TRANSFER_TX) uRegValue |= TRANSFER_MODE_TX_ONLY;
    if (mMode == IIS_TRANSFER_RX) uRegValue |= TRANSFER_MODE_RX_ONLY;
    if (mMode == IIS_TRANSFER_BOTH) uRegValue |= TRANSFER_MODE_BOTH;

    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_clock_polarity(IIS_CLOCK_POLARITY mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_clock_polarity(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(LR_CH_POL_MASK));
    if (mMode == LOW_FOR_LEFT) uRegValue |= LR_CH_POL_LOW_FOR_LEFT_HIGH_FOR_RIGHT;
    if (mMode == HIGH_FOR_LEFT) uRegValue |= LR_CH_POL_HIGH_FOR_LEFT_LOW_FOR_RIGHT;

    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_serial_data_format(IIS_DATA_FORMAT mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_serial_data_format(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(SERIAL_DATA_FORMAT_MASK));
    if (mMode == IIS_FORMAT) uRegValue |= SERIAL_DATA_FORMAT_IIS;
    if (mMode == MSB_JUSTIFIED_FORMAT) uRegValue |= SERIAL_DATA_FORMAT_MSB_JUSTIFIED;
    if (mMode == LSB_JUSTIFIED_FORMAT) uRegValue |= SERIAL_DATA_FORMAT_LSB_JUSTIFIED;

    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_codec_clock_frequency(IIS_CODEC_CLOCK_MODE mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_codec_clock_frequency(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(IIS_CODEC_CLOCK_FREQUENCY_MASK));
    if (mMode == IIS_CODEC_CLOCK_256FS) uRegValue |= IIS_CODEC_CLOCK_FREQUENCY_256FS;
    if (mMode == IIS_CODEC_CLOCK_512FS) uRegValue |= IIS_CODEC_CLOCK_FREQUENCY_512FS;
    if (mMode == IIS_CODEC_CLOCK_384FS) uRegValue |= IIS_CODEC_CLOCK_FREQUENCY_384FS;
    if (mMode == IIS_CODEC_CLOCK_768FS) uRegValue |= IIS_CODEC_CLOCK_FREQUENCY_768FS;

    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_bit_clock_frequency(IIS_BIT_CLOCK_MODE mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_bit_clock_frequency(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(BIT_CLOCK_FREQUENCY_MASK));
    if (mMode == IIS_BIT_CLOCK_32FS) uRegValue |= BIT_CLOCK_FREQUENCY_32FS;
    if (mMode == IIS_BIT_CLOCK_48FS) uRegValue |= BIT_CLOCK_FREQUENCY_48FS;
    if (mMode == IIS_BIT_CLOCK_16FS) uRegValue |= BIT_CLOCK_FREQUENCY_16FS;
    if (mMode == IIS_BIT_CLOCK_24FS) uRegValue |= BIT_CLOCK_FREQUENCY_24FS;

    g_pIISReg->IISMOD = uRegValue;
}

PRIVATE void IIS_set_interface_bit_length(IIS_BIT_LENGTH mMode)
{
    DWORD uRegValue = 0;

    IIS_MSG((_T("[IIS] IIS_set_interface_bit_length(%d)\r\n"), mMode));

    uRegValue = (g_pIISReg->IISMOD & ~(BIT_LENGTH_PER_CHANNEL_MASK));
    if (mMode == IIS_BIT_LENGTH_16BIT) uRegValue |= BIT_LENGTH_PER_CHANNEL_16BIT;
    if (mMode == IIS_BIT_LENGTH_8BIT) uRegValue |= BIT_LENGTH_PER_CHANNEL_8BIT;
    if (mMode == IIS_BIT_LENGTH_24BIT) uRegValue |= BIT_LENGTH_PER_CHANNEL_24BIT;

    g_pIISReg->IISMOD = uRegValue;
}


PRIVATE void IIS_set_active_on(void)
{
    IIS_MSG((_T("[IIS] IIS_set_active_on()\n\r")));

    if (g_pIISReg->IISCON & IIS_ACTIVE)
        IIS_MSG((_T("IIS is already active\r\n")));
    else
        g_pIISReg->IISCON |= IIS_ACTIVE;
}

PRIVATE void IIS_set_active_off(void)
{
    IIS_MSG((_T("[IIS] IIS_set_active_off()\n\r")));

    g_pIISReg->IISCON &= ~IIS_ACTIVE;
}

PRIVATE void DelayLoop(unsigned int count)
{
    volatile int i, j=0;

    for(;count > 0;count--)
        for(i=0;i < DELAY_LOOP_COUNT; i++) { j++; }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自拍三区| 亚洲色图在线播放| 欧美性色黄大片手机版| 97久久精品人人做人人爽| 成人网在线播放| 岛国精品在线观看| 成人av电影在线网| 99riav一区二区三区| 一本久道中文字幕精品亚洲嫩| 成人福利电影精品一区二区在线观看| 成人亚洲精品久久久久软件| 国产91综合网| 91女神在线视频| 欧美日韩精品免费观看视频| 欧美二区三区91| 精品国产乱码久久久久久久| 日本一区二区不卡视频| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲欧美另类图片小说| 性久久久久久久久久久久| 久久99精品久久久久| 成人一区二区三区| 欧美亚洲国产一区在线观看网站| 欧美一级二级三级蜜桃| 国产清纯美女被跳蛋高潮一区二区久久w| 国产亚洲精品福利| 亚洲国产视频直播| 国产在线精品不卡| 色综合久久中文字幕| 欧美一区二区福利视频| 国产欧美日韩中文久久| 亚洲成av人影院在线观看网| 国产成人无遮挡在线视频| 在线观看亚洲专区| 久久理论电影网| 一区二区三区国产精华| 激情综合网天天干| 在线免费观看不卡av| 久久香蕉国产线看观看99| 一区二区三区四区在线免费观看| 美女网站色91| 欧美色综合网站| 国产精品系列在线| 日一区二区三区| av电影一区二区| 欧美精品一区二区三区高清aⅴ | 午夜精品久久久久影视| 国产不卡视频在线播放| 91精品国产综合久久精品| 中文字幕视频一区二区三区久| 日日嗨av一区二区三区四区| 99久久99久久精品免费观看| 久久久久久久久久久电影| 日韩av中文在线观看| 91在线无精精品入口| 久久伊人中文字幕| 免费观看成人av| 欧美色图片你懂的| 亚洲欧洲综合另类| 成人午夜碰碰视频| 久久精品夜色噜噜亚洲a∨| 韩国av一区二区| 欧美日本国产一区| 亚洲一区二区中文在线| 在线免费观看日韩欧美| 亚洲人成人一区二区在线观看| 国产成都精品91一区二区三| 精品久久久久久久久久久久久久久 | 亚洲国产精品一区二区www| av成人免费在线观看| 欧美国产日韩a欧美在线观看 | 国产精品色在线观看| 国产成人免费高清| 国产午夜精品久久久久久免费视 | 久久综合九色综合欧美98| 欧美a一区二区| 欧美一级片在线看| 久久精品国产999大香线蕉| 91精品国产综合久久精品app| 日韩国产欧美一区二区三区| 亚洲一区在线观看网站| 成人av集中营| 中文字幕在线不卡| 91丨porny丨中文| 一区二区三区91| 欧美日韩一二区| 免费观看一级欧美片| 日韩无一区二区| 免费成人av资源网| 国产欧美va欧美不卡在线| 国产白丝精品91爽爽久久| 国产精品不卡一区| 在线视频欧美精品| 日韩不卡一区二区三区| 精品国偷自产国产一区| 国产一区二区91| 欧美性猛交xxxx乱大交退制版| 一区二区三国产精华液| 欧美精品aⅴ在线视频| 国产综合色在线| 国产精品色婷婷久久58| 欧美午夜精品久久久久久超碰| 五月天久久比比资源色| 久久综合久久鬼色| 99v久久综合狠狠综合久久| 午夜精品福利一区二区三区蜜桃| 欧美一区二区日韩| 成人免费av在线| 水蜜桃久久夜色精品一区的特点| 精品99一区二区三区| 91在线看国产| 精品在线播放免费| 亚洲久草在线视频| 亚洲精品一线二线三线| 欧美亚洲一区二区在线| 国产在线精品一区二区三区不卡| 亚洲黄色免费网站| 久久久久久久久99精品| 欧美丝袜丝nylons| 夫妻av一区二区| 日韩成人一区二区| 日韩毛片视频在线看| 日韩精品在线网站| 欧美性猛交xxxx黑人交| 成人精品一区二区三区四区 | 26uuu精品一区二区 | 天天色 色综合| 中文字幕欧美一区| 日韩美一区二区三区| 欧美色涩在线第一页| 国产91综合网| 国精产品一区一区三区mba桃花| 夜夜操天天操亚洲| 亚洲色图欧洲色图婷婷| 久久久久国产精品人| 91精品一区二区三区久久久久久| 一本高清dvd不卡在线观看| 国产.欧美.日韩| 精品中文av资源站在线观看| 日韩 欧美一区二区三区| 亚洲国产中文字幕| 一区二区三区在线视频免费| 亚洲欧洲一区二区在线播放| 久久精品一区二区| 久久久91精品国产一区二区精品| 日韩一区二区三区四区| 欧美人xxxx| 欧美福利电影网| 欧美日本一区二区三区四区 | 免费成人你懂的| 丝袜a∨在线一区二区三区不卡 | 久久成人18免费观看| 日本午夜一区二区| 日本sm残虐另类| 奇米影视一区二区三区| 日本vs亚洲vs韩国一区三区二区| 亚洲国产成人自拍| 麻豆91在线播放| 美女视频黄 久久| 美女mm1313爽爽久久久蜜臀| 蜜桃视频第一区免费观看| 丝袜亚洲另类欧美综合| 青青草精品视频| 国产一区二区视频在线| 国产激情视频一区二区在线观看 | 国产精品久久久久久久久图文区 | 午夜欧美大尺度福利影院在线看| 亚洲国产精品久久人人爱| 天堂久久久久va久久久久| 毛片一区二区三区| 国产经典欧美精品| 日本韩国欧美三级| 5月丁香婷婷综合| 欧美精品一区二区三区蜜桃视频| 久久精品欧美日韩精品 | 欧美一区二区啪啪| 国产亚洲一二三区| 亚洲美女屁股眼交| 日本成人在线电影网| 国产高清精品久久久久| 99国产一区二区三精品乱码| 欧美日韩在线一区二区| 欧美精品一区二区三区蜜桃视频| 1024亚洲合集| 日日欢夜夜爽一区| 波多野结衣在线一区| 欧美午夜精品久久久久久超碰| 精品美女被调教视频大全网站| 日韩一区中文字幕| 久久精品99久久久| 91丨porny丨户外露出| 日韩三级电影网址| 亚洲日韩欧美一区二区在线| 老司机免费视频一区二区| 99九九99九九九视频精品| 精品噜噜噜噜久久久久久久久试看 | 亚洲一区日韩精品中文字幕| 国内久久精品视频| 56国语精品自产拍在线观看| 久久精品一区二区三区不卡牛牛|