예제 #1
0
void UFOE_Init(BOOL isUFOEPoweredOn)
{
	if (isUFOEPoweredOn)
		UFOE_BackupRegisters();
	else
		_ResetBackupedUFOERegisterValues();

	UFOE_PowerOn();
	OUTREGBIT(UFOE_INTEN_REG, UFOE_REG->UFOE_INTEN, ufoe_fra_underrun, 1);
	OUTREGBIT(UFOE_INTEN_REG, UFOE_REG->UFOE_INTEN, ufoe_fra_done, 1);
	OUTREGBIT(UFOE_INTEN_REG, UFOE_REG->UFOE_INTEN, ufoe_fra_complete, 1);
/* UFOE_REG->UFOE_CK_ON = 0x1; */
}
예제 #2
0
DPI_STATUS DPI_EnableInterrupt(DISP_INTERRUPT_EVENTS eventID)
{
#if ENABLE_DPI_INTERRUPT
    switch(eventID)
    {
        case DISP_DPI_VSYNC_INT:
            //DPI_REG->INT_ENABLE.VSYNC = 1;
            OUTREGBIT(DPI_REG_INTERRUPT,DPI_REG->INT_ENABLE,VSYNC,1);
            break;
        case DISP_DPI_FIFO_EMPTY_INT:
            //DPI_REG->INT_ENABLE.VSYNC = 1;
            OUTREGBIT(DPI_REG_INTERRUPT,DPI_REG->INT_ENABLE,UNDERFLOW,1);
            break;
        case DISP_DPI_TARGET_LINE_INT:
            disp_register_irq(DISP_MODULE_RDMA0, _DPI_RDMA0_IRQ_Handler);
            break;
        case DISP_DPI_REG_UPDATE_INT:
            disp_register_irq(DISP_MODULE_MUTEX, _DPI_MUTEX_IRQ_Handler);
            break;
        case DISP_DPI_FIFO_FULL_INT:
        case DISP_DPI_OUT_EMPTY_INT:
        case DISP_DPI_CNT_OVERFLOW_INT:
        case DISP_DPI_LINE_ERR_INT:
        default:
            return DPI_STATUS_ERROR;
    }

    return DPI_STATUS_OK;
#else
    switch(eventID)
    {
        case DISP_DPI_VSYNC_INT:
            OUTREGBIT(DPI_REG_INTERRUPT,DPI_REG->INT_ENABLE,VSYNC,1);
            disp_register_irq(DISP_MODULE_RDMA0, _DPI_RDMA0_IRQ_Handler);
            break;
        case DISP_DPI_TARGET_LINE_INT:
            disp_register_irq(DISP_MODULE_RDMA0, _DPI_RDMA0_IRQ_Handler);
            break;
        case DISP_DPI_REG_UPDATE_INT:
            disp_register_irq(DISP_MODULE_MUTEX, _DPI_MUTEX_IRQ_Handler);
            break;
        default:
            return DPI_STATUS_ERROR;
    }

    return DPI_STATUS_OK;
    ///TODO: warning log here
    //return DPI_STATUS_ERROR;
#endif
}
예제 #3
0
void UFOE_Config(UFOE_para ufoe_config)
{
	OUTREGBIT(UFOE_START_REG, UFOE_REG->UFOE_START, ufoe_bypass, ufoe_config.bypass);
	OUTREG32(&UFOE_REG->UFOE_CFG_0B, ufoe_config.ufoe_cfg_0);
	OUTREG32(&UFOE_REG->UFOE_CFG_1B, ufoe_config.ufoe_cfg_1);
	OUTREG32(&UFOE_REG->UFOE_FRA_WIDTH, ufoe_config.width);
	OUTREG32(&UFOE_REG->UFOE_FRA_HEIGHT, ufoe_config.height);
	UFOE_DumpRegisters();
}
예제 #4
0
DPI_STATUS DPI_EnableInterrupt(DISP_INTERRUPT_EVENTS eventID)
{
#if ENABLE_DPI_INTERRUPT
   switch(eventID)
   {
      case DISP_DPI_VSYNC_INT:
            OUTREGBIT(DPI_REG_INTERRUPT,DPI_REG->INT_ENABLE,VSYNC,1);
         break;
      default:
         return DPI_STATUS_ERROR;
   }
   
   return DPI_STATUS_OK;

#else
   ///TODO: warning log here
   return DPI_STATUS_ERROR;

#endif
}
예제 #5
0
void UFOE_Start(void)
{
	OUTREGBIT(UFOE_START_REG, UFOE_REG->UFOE_START, ufoe_start, 0);
	OUTREGBIT(UFOE_START_REG, UFOE_REG->UFOE_START, ufoe_start, 1);
}