This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

  • TI Thinks Resolved

RTOS: LCD3 issue on tda2px

Intellectual 425 points

Replies: 2

Views: 100

Tool/software: TI-RTOS

Hi,

we have a custom board with tda2px SoC.
LCD1 is working properly with minor changes. Now, I want to configure LCD3.
I found that the driver doesn't support pinmux settings for DPI2 and DPI3, so I added code to configure pinmux.
Also, I made the following changes in chains_common.c :

if(displayType == CHAINS_DISPLAY_TYPE_LCD_10_INCH)
    {
        pPrm->deviceId = DISPLAYCTRL_LINK_USE_LCD;
        pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD3;
        pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI3_OUTPUT;

        if ((BSP_PLATFORM_SOC_ID_TDA2EX == Bsp_platformGetSocId()) &&
            (BSP_PLATFORM_PACKAGE_TYPE_17x17 == Bsp_platformGetPackageType()))
        {
            /* In case of TDA2EX and Package is 17 X 17, LCD is on DPI 3 */
            pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD3;
            pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI3_OUTPUT;
        }

        pVInfo->vencOutputInfo.vsPolarity    =   SYSTEM_DCTRL_POLARITY_ACT_LOW;
        pVInfo->vencOutputInfo.hsPolarity    =   SYSTEM_DCTRL_POLARITY_ACT_LOW;

        /* Below are of dont care for EVM LCD */
        pVInfo->vencOutputInfo.fidPolarity      =   SYSTEM_DCTRL_POLARITY_ACT_HIGH;
        pVInfo->vencOutputInfo.actVidPolarity   =   SYSTEM_DCTRL_POLARITY_ACT_HIGH;

        pVInfo->mInfo.standard                  =   SYSTEM_STD_CUSTOM;
        pVInfo->mInfo.width                     =   displayWidth;
        pVInfo->mInfo.height                    =   displayHeight;
        pVInfo->mInfo.scanFormat                =   SYSTEM_SF_PROGRESSIVE;
        pVInfo->mInfo.fps                       =   60U;
        pVInfo->mInfo.hFrontPorch               =   48U;
        pVInfo->mInfo.vBackPorch                =   12U;
        pVInfo->mInfo.vFrontPorch               =   6U;
        pVInfo->vencDivisorInfo.divisorLCD      =   1;
    }

    /* Configure overlay params */
        ovlyPrms->vencId                        = SYSTEM_DCTRL_DSS_VENC_LCD3;

    pVInfo->mode = 0;
    pVInfo->isInputPipeConnected[0] =
                    TRUE;
    pVInfo->isInputPipeConnected[1] =
                    TRUE;
    if(Bsp_platformIsTda2xxFamilyBuild())
    {
        pVInfo->isInputPipeConnected[2] =
                    TRUE;
    }
    else
    {
        pVInfo->isInputPipeConnected[2] =
                    FALSE;
    }
    pVInfo->isInputPipeConnected[3] =
                    TRUE;
    pVInfo->writeBackEnabledFlag = FALSE;


    /* Setting other overlay parameters common to both Venc */

    ovlyPrms->deltaLinesPerPanel   = 0;
    ovlyPrms->alphaBlenderEnable   = 0;
    ovlyPrms->backGroundColor      = 0x0;
    ovlyPrms->colorKeyEnable       = 1;
    ovlyPrms->colorKeySel          = SYSTEM_DSS_DISPC_TRANS_COLOR_KEY_SRC;

    pVInfo->mode = 0;
    pVInfo->isInputPipeConnected[0] =
                    TRUE;
    pVInfo->isInputPipeConnected[1] =
                    TRUE;
    if(Bsp_platformIsTda2xxFamilyBuild())
    {
        pVInfo->isInputPipeConnected[2] =
                    TRUE;
    }
    else
    {
        pVInfo->isInputPipeConnected[2] =
                    FALSE;
    }
    pVInfo->isInputPipeConnected[3] =
                    TRUE;
    pVInfo->writeBackEnabledFlag = FALSE;


    /* Setting other overlay parameters common to both Venc */

    ovlyPrms->deltaLinesPerPanel   = 0;
    ovlyPrms->alphaBlenderEnable   = 0;
    ovlyPrms->backGroundColor      = 0x0;
    ovlyPrms->colorKeyEnable       = 1;
    ovlyPrms->colorKeySel          = SYSTEM_DSS_DISPC_TRANS_COLOR_KEY_SRC;
#ifdef ROBUST_RVC_INCLUDE
    ovlyPrms->ovlyOptimization     = SYSTEM_DSS_DISPC_OVLY_FETCH_OPTIMIZED;
#else
    ovlyPrms->ovlyOptimization     = SYSTEM_DSS_DISPC_OVLY_FETCH_ALLDATA;
#endif
    ovlyPrms->transColorKey        = DRAW2D_TRANSPARENT_COLOR;

    /* Setting overlay pipe parameters */

    pipeOvlyPrms[0].pipeLine = SYSTEM_DSS_DISPC_PIPE_VID1;
    pipeOvlyPrms[0].globalAlpha = 0xFF;
    pipeOvlyPrms[0].preMultiplyAlpha = 0;
    pipeOvlyPrms[0].zorderEnable = TRUE;
    pipeOvlyPrms[0].zorder = SYSTEM_DSS_DISPC_ZORDER0;

    pipeOvlyPrms[1].pipeLine = SYSTEM_DSS_DISPC_PIPE_VID2;
    pipeOvlyPrms[1].globalAlpha = 0xFF;
    pipeOvlyPrms[1].preMultiplyAlpha = 0;
    pipeOvlyPrms[1].zorderEnable = TRUE;
    pipeOvlyPrms[1].zorder = SYSTEM_DSS_DISPC_ZORDER1;

    if(Bsp_platformIsTda2xxFamilyBuild())
    {
        pipeOvlyPrms[2].pipeLine = SYSTEM_DSS_DISPC_PIPE_VID3;
        pipeOvlyPrms[2].globalAlpha = 0xFF;
        pipeOvlyPrms[2].preMultiplyAlpha = 0;
        pipeOvlyPrms[2].zorderEnable = TRUE;
        pipeOvlyPrms[2].zorder = SYSTEM_DSS_DISPC_ZORDER2;
    }

    pipeOvlyPrms[3].pipeLine = SYSTEM_DSS_DISPC_PIPE_GFX1;
    pipeOvlyPrms[3].globalAlpha = 0xFF;
    pipeOvlyPrms[3].preMultiplyAlpha = 0;
    pipeOvlyPrms[3].zorderEnable = TRUE;
    pipeOvlyPrms[3].zorder = SYSTEM_DSS_DISPC_ZORDER3;
    if(Bsp_platformIsTda3xxFamilyBuild())
    {
        pipeOvlyPrms[3].zorder = SYSTEM_DSS_DISPC_ZORDER2;
    }



Also, in file bsp_boardTda2pxDefault.h  VPS_DSS_DRV_INST_ID_TDA2PX_DEFAULT_LCD was defined as VPS_DSS_DISPC_OVLY_DPI1, so I changed it to VPS_DSS_DISPC_OVLY_DPI3.

And, in lcd.c changed  dpiPort = SYSTEM_DSS_DISPC_OVLY_DPI3;

Is there any problem with this configuration? What else should I change in order to enable LCD3?

Regards.

Nevena Stojanovic






 

--
RT-RK Automotive
Narodnog Fronta 23 D-E
21000 Novi Sad
Serbia

  • Hi Nevena,

    This changes looks fine, but this enables vout3 in the display controller, ie it enables the VENC and sets the resolution. But this does not set the pinmux. You need to set pinmux explicitly. I think this is not supported in Bsp_boardSetPinMux API, so probably either you need to add support for DPI3 in this API, or you could set the pinmux in the usecase itself, using PDK API Bsp_platformSetPinmuxRegs. You need to check what all pins are required and set the mux accordingly.

    Regards,
    Brijesh
  • In reply to Brijesh Jadav:

    Hi,

    I have resolved this issue.

    Thank you for support.

    --
    RT-RK Automotive
    Narodnog Fronta 23 D-E
    21000 Novi Sad
    Serbia

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.