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.

Omap4460 pandaboard ES Ver.B3 run linaro 12.04(Linux) with DSI video mode

Hello, 

I already finished my module with command mode(board_omap4panda.c dsi.c panel_taal.c).

But I am still not working for video mode.

I find out my problem.

I can send command and data with Low Power mode and High speed mode.

But when I send "dsi_video_enable(dssdev,0x3E)"

CLK lane enter high speed mode.

But Data lane keep high(1.2V).

Do you have some advice to trouble shoot for me ?

source code as below 

in board_omap4panda.c 

static struct omap_dss_device sdp4430_lcd_device = {

    .name                = "lcd",

    .driver_name         = "taal",

    .type                = OMAP_DISPLAY_TYPE_DSI,

    .data                = &dsi1_panel,

    .phy.dsi             = {

            .type        = OMAP_DSS_DSI_TYPE_VIDEO_MODE,

            .clk_lane    = 1,

            .clk_pol     = 0,

            .data1_lane = 2,

            .data1_pol   = 0,

            .module      = 0,

    },

    .clocks = {

            .dispc = {

                    .channel = {

                            /* Logic Clock = 144M Hz*/ //144000000

                            .lck_div     = 1,

                            /* Pixel Clock = 34.56 MHz */

                     // .pck_div     = 16,

                            .pck_div= 16 ,

                            .lcd_clk_src = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,

                    },

                       // .dispc_fclk_src   = OMAP_DSS_CLK_SRC_FCK,

                            .dispc_fclk_src = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,

             },

            .dsi = {

                    .regn                =  25,  /* Fint = 38.4 / 16 = 2.4 MHz */

                    .regm                = 111,  /* DDR Clock = 2.4 M * 2 * regm = 960 MHz  */

                    .regm_dispc          =   2,  /* PLL1_CLK1 = 144 MHz */

                    .regm_dsi            =   2,  /* PLL1_CLK2 = 144 MHz */

                    .lp_clk_div          =   9,  /* LP Clock = 10.29 MHz */

                    .offset_ddr_clk      =   0,

                    .dsi_fclk_src        = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DSI, //170.7M Hz

            },

    },



      .channel             =  OMAP_DSS_CHANNEL_LCD,

      .skip_init           = false ,

      .platform_enable     = NULL  ,

      .platform_disable    = NULL  ,

};

in panel_taal.c 

static struct panel_config panel_configs[] = {

    {

            .name        = "taal",

    //   .type        = PANEL_TAAL,

            .type        = 0,

            .timings     = {

                    .x_res       = 320,

                    .y_res       = 480,

                    .pixel_clock = 10656,

                    .hsw= 4,

                    .hfp=10,

                    .hbp= 3,

                    .vsw= 2,

                    .vfp=43,

                    .vbp= 2,

            },

            .sleep       = {

                    .sleep_in    = 5,

                    .sleep_out   = 5,

                    .hw_reset    = 100,

                    .enable_te   = 100, /* possible panel bug */

            },

            .reset_sequence = {

                    .high        = 10,

                    .low         = 10,

            },

       },

};

static int taal_power_on(struct omap_dss_device *dssdev)

{

    struct taal_data *td = dev_get_drvdata(&dssdev->dev);

    u8 id1, id2, id3;

    int r;

    r = omapdss_dsi_display_enable(dssdev);

    if (r) {

            dev_err(&dssdev->dev, "failed to enable DSI\n");

            goto err0;

    }

    taal_hw_reset(dssdev);

    omapdss_dsi_vc_enable_hs(dssdev, td->channel, false);

    r = taal_dcs_write_1(td, 0x3A, 0x66);

    if (r)

            goto err;

    r = taal_dcs_write_0(td, DCS_DISPLAY_ON);

    if (r)

            goto err;

    td->enabled = 1;




    if (!td->intro_printed) {

            dev_info(&dssdev->dev, "%s panel revision %02x.%02x.%02x\n",

                    td->panel_config->name, id1, id2, id3);

            if (td->cabc_broken)

                    dev_info(&dssdev->dev,

                                    "old Taal version, CABC disabled\n");

            td->intro_printed = true;

    }

  //  dsi_video_mode_enable(dssdev,0x1e);

    omapdss_dsi_vc_enable_hs(dssdev, td->channel, true);

    dsi_video_mode_enable(dssdev,0x3E);

    return 0;

err:

    dev_err(&dssdev->dev, "error while enabling panel, issuing HW reset\n");

    taal_hw_reset(dssdev);

    omapdss_dsi_display_disable(dssdev, true, false);

err0:

    return r;

}