// Function: configure_dss // This function configures the display sub-system void configure_dss( unsigned int framebuffer ){ // Configure the clock source OUTREG32(0x48045040, 1<<8 | 0<<9 | 0<<10 | 0<<12 | 0<<17);//DSI_CTRL udelay(10000); // Configure interconnect parameters // OUTREG32(0x48041010, 1<<0 | 1<<3 | 1<<12 ); OUTREG32(0x48041010, 0x00002015); udelay(10000); // Disable any interrupts OUTREG32(0x4804501c,0);//DSI_IRQENABLE udelay(10000); // Over-ride default LCD config //OUTREG32(DISPC_CONFIG,BSP_LCD_CONFIG); //OUTREG32(0x48041620, );//DISPC_CONFIG2 in omap4 // Configure graphic window OUTREG32(0x48041080,framebuffer);//DISPC_GFX_BA_0 // Configure the position of graphic window OUTREG32(0x48041088,BSP_GFX_POS(g_LogoX,g_LogoY));//DISPC_GFX_POSITION // Configure the size of graphic window OUTREG32(0x4804108c,BSP_GFX_SIZE(g_LogoW,g_LogoH));//DISPC_GFX_SIZE // GW Enabled, RGB24 packed, little Endian //OUTREG32(0x480410a0,LOGO_GFX_ATTRIBUTES);//DISPC_GFX_ATTRIBUTES // OUTREG32(0x480410a0,1<<0 | 9<<1);//DISPC_GFX_ATTRIBUTES no crash // OUTREG32(0x480410a0,1<<30 | 0x3<<26 | 1<<25 | 1<<14 | 1<<0 | 9<<1);//DISPC_GFX_ATTRIBUTES // OUTREG32(0x480410a0,1<<30 | 0x3<<26 | 1<<25 | 1<<7 | 1<<0 | 9<<1);//DISPC_GFX_ATTRIBUTES OUTREG32(0x480410a0,1<<30); udelay(10000); SETREG32(0x480410a0,0x3<<26); udelay(10000); SETREG32(0x480410a0,1<<25); udelay(10000); SETREG32(0x480410a0,1<<14); udelay(10000); SETREG32(0x480410a0,1<<7); udelay(10000); SETREG32(0x480410a0,1<<0 | 6<<1);//DISPC_GFX_ATTRIBUTES udelay(10000); //0000 0000 0000 0000 0000 0000 0001 0011 //OUTREG32(0x480410a0,0x42000099);//DISPC_GFX_ATTRIBUTES OUTREG32(0x480410a4,DISPC_GFX_FIFO_THRESHOLD_R(192,252));//DISPC_GFX_FIFO_THRESHOLD // OUTREG32(0x480410a4,0x04ff0480);//DISPC_GFX_FIFO_THRESHOLD //!!! should be modify?? OUTREG32(0x480410ac,1);//DISPC_GFX_ROW_INC OUTREG32(0x480410b0,1);//DISPC_GFX_PIXEL_INC OUTREG32(0x480410b4,0);//DISPC_GFX_WINDOW_SKIP // Configure the LCD LcdPdd_LCD_Initialize(); }
//------------------------------------------------------------------------------ // // Function: configure_dss // // This function configures the Display Sub System on omap35xx // void configure_dss( UINT32 framebuffer ) { OMAP_DSS_REGS *pDSSRegs = OALPAtoUA(OMAP_DSS1_REGS_PA); OMAP_DISPC_REGS *pDisplayRegs = OALPAtoUA(OMAP_DISC1_REGS_PA); HANDLE hGpio = GPIOOpen(); // OALMSG(OAL_INFO, (L"configure_dss+\r\n")); // Configure the clock source OUTREG32( &pDSSRegs->DSS_CONTROL, DSS_CONTROL_DISPC_CLK_SWITCH_DSS1_ALWON | DSS_CONTROL_DSI_CLK_SWITCH_DSS1_ALWON ); // Configure interconnect parameters OUTREG32( &pDSSRegs->DSS_SYSCONFIG, DISPC_SYSCONFIG_AUTOIDLE ); OUTREG32( &pDisplayRegs->DISPC_SYSCONFIG, DISPC_SYSCONFIG_AUTOIDLE|SYSCONFIG_NOIDLE|SYSCONFIG_NOSTANDBY ); // Not enabling any interrupts OUTREG32( &pDisplayRegs->DISPC_IRQENABLE, 0x00000000 ); // Configure the LCD LcdPdd_LCD_Initialize( pDSSRegs, pDisplayRegs, NULL, NULL); // Over-ride default LCD config OUTREG32(&pDisplayRegs->DISPC_CONFIG,BSP_LCD_CONFIG); // Configure Graphics Window //-------------------------- OUTREG32(&pDisplayRegs->DISPC_GFX_BA0 ,framebuffer ); // configure the position of graphics window OUTREG32(&pDisplayRegs->DISPC_GFX_POSITION,BSP_GFX_POS); // size of graphics window OUTREG32(&pDisplayRegs->DISPC_GFX_SIZE,BSP_GFX_SIZE); // GW Enabled, RGB24 packed, Little Endian OUTREG32(&pDisplayRegs->DISPC_GFX_ATTRIBUTES,LOGO_GFX_ATTRIBUTES); OUTREG32(&pDisplayRegs->DISPC_GFX_FIFO_THRESHOLD,BSP_GFX_FIFO_THRESHOLD); OUTREG32(&pDisplayRegs->DISPC_GFX_ROW_INC,BSP_GFX_ROW_INC); OUTREG32(&pDisplayRegs->DISPC_GFX_PIXEL_INC,BSP_GFX_PIXEL_INC); OUTREG32(&pDisplayRegs->DISPC_GFX_WINDOW_SKIP,BSP_GFX_WINDOW_SKIP); // OALMSG(OAL_INFO, (L"configure_dss-\r\n")); GPIOClose(hGpio); }