Ejemplo n.º 1
0
DSI_STATUS DSI_Init(void)
{
    DSI_STATUS ret = DSI_STATUS_OK;

    memset(&_dsiContext, 0, sizeof(_dsiContext));

    // LCD controller would NOT reset register as default values
    // Do it by SW here
    //
    _ResetBackupedDSIRegisterValues();

    ret = DSI_PowerOn();

	OUTREG32(&DSI_REG->DSI_MEM_CONTI, (DSI_WMEM_CONTI<<16)|(DSI_RMEM_CONTI));	

    ASSERT(ret == DSI_STATUS_OK);

	//DSI_REG->DSI_INTEN.CMD_DONE=1;

#if ENABLE_DSI_INTERRUPT
    if (request_irq(MT6575_DSI_IRQ_ID,
        _DSI_InterruptHandler, IRQF_TRIGGER_LOW, MTKFB_DRIVER, NULL) < 0)
    {
        printf("DSI", "fail to request DSI irq\n"); 
        return DSI_STATUS_ERROR;
    }
	mt65xx_irq_unmask(MT6575_DSI_IRQ_ID);
    init_waitqueue_head(&_dsi_wait_queue);
    DSI_REG->DSI_INTEN.CMD_DONE=1;
    DSI_REG->DSI_INTEN.RD_RDY=1;
#endif
    
    return DSI_STATUS_OK;
}
Ejemplo n.º 2
0
DSI_STATUS DSI_Init(BOOL isDsiPoweredOn)
{
    DSI_STATUS ret = DSI_STATUS_OK;

    memset(&_dsiContext, 0, sizeof(_dsiContext));

    if (isDsiPoweredOn) {
        _BackupDSIRegisters();
    } else {
        _ResetBackupedDSIRegisterValues();
    }
	ret = DSI_PowerOn();

	OUTREG32(&DSI_REG->DSI_MEM_CONTI, (DSI_WMEM_CONTI<<16)|(DSI_RMEM_CONTI));	

    ASSERT(ret == DSI_STATUS_OK);

	mipitx_con0=DSI_PHY_REG->MIPITX_CON0;
	mipitx_con1=DSI_PHY_REG->MIPITX_CON1;
	mipitx_con3=DSI_PHY_REG->MIPITX_CON3;
	mipitx_con6=DSI_PHY_REG->MIPITX_CON6;
	mipitx_con8=DSI_PHY_REG->MIPITX_CON8;
	mipitx_con9=DSI_PHY_REG->MIPITX_CON9;

#if ENABLE_DSI_INTERRUPT
    init_waitqueue_head(&_dsi_wait_queue);
    init_waitqueue_head(&_dsi_dcs_read_wait_queue);	
    if (request_irq(MT6575_DSI_IRQ_ID,
        _DSI_InterruptHandler, IRQF_TRIGGER_LOW, MTKFB_DRIVER, NULL) < 0)
    {
        DISP_LOG_PRINT(ANDROID_LOG_ERROR, "DSI", "fail to request DSI irq\n"); 
        return DSI_STATUS_ERROR;
    }
		//mt65xx_irq_unmask(MT6575_DSI_IRQ_ID);
    DSI_REG->DSI_INTEN.CMD_DONE=1;
    DSI_REG->DSI_INTEN.RD_RDY=1;
#endif
    
    return DSI_STATUS_OK;
}