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.

OMAP-L138 framebuffer with 8bpp

Other Parts Discussed in Thread: OMAP-L138, DA8XX, OMAPL138

We have a 16-Bit TFT display connectet to OMAP-L138 and we are using the framebuffer device driver "da8xx-fb".

It's working fine and the command "fbset -i" shows the following informations:

mode "800x480-61"
    # D: 37.501 MHz, H: 30.218 kHz, V: 60.558 Hz
    geometry 800 480 800 480 16
    timings 26666 128 250 1 14 63 4
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name        : DA8xx FB Drv
    Address     : 0xc7000000
    Size        : 1638400
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 0
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 1600
    Accelerator : No


We need the frambuffer in a 8bpp format.
With the command "fbset -depth 8" the display gets dark and we can't it get back with "fbset -depth 16"; we have to reboot the device.

Is it possible to configure the frame buffer device driver for a 8bpp (8 bits per pixel) format together with output lines for a TFT display with 16-Bit RGB signal lines?

  • Hi,

    Thanks for your post.

    Usually a palette entry would be selected from the look-up palette by the pixel data and once it is selected, it's contents would be sent to the gray-scaler/serializer and If it is monochrome data, it would be encoded as 4 bits passive (STN) mode.

    These 4-bit values would be used to select one of the 16 intensity levels, as shown in Table 24-7, section 24.2.5.4.1 in the OMAPl138 TRM as below. A patented algorithm would be used during this processing to provide an optimized intensity value that matches the eye's visual perception of color/gray gradations.

    For more details, please refer entry palette/frame buffer format (1,2,4, 12,16 BPP) in sections 24.2.5.1 & 24.2.5.2 from omapl138 TRM below:

    www.ti.com/.../spruh77a.pdf

    Thanks & regards,

    Sivaraj K

    ---------------------------------------------------------------------------------
    Please click the Verify Answer button on this post if it answers your question.
    ---------------------------------------------------------------------------------

  • Hi Sivaraj!

    Thank you for your replay of my post.
    I know and I've read the OMAP-L138 TRM's sections regarding the LCDC.

    But under Linux I don't program or set the controller registers directly.
    Instead I've to use a device driver.

    The device driver for the framebuffer is "da8xx-fb.c" located under "/drivers/video/fbdev/" in the Linux source tree.
    This driver configures a framebuffer and the LCDC registers.

    In my board file I have to register a device with the function da8xx_register_lcdc():
    ...
    ret = da8xx_register_lcdc(&wvga_16bpp_pdata);
    if (ret) {
    pr_warn("da8xx_register_lcdc(&wvga_16bpp_pdata) failed: %d\n", ret);
    return;
    }
    ...

    The structurte for the platform data is:

    struct da8xx_lcdc_platform_data wvga_16bpp_pdata = {
    .manu_name = "ti",
    .controller_data = &lcd_cfg_16bpp,
    .type = "DVI_WVGA",
    };

    An element of this structure is "controller_data" and I've set this to:

    static struct lcd_ctrl_config lcd_cfg_16bpp = {
    .panel_shade = COLOR_ACTIVE,
    .ac_bias = 255,
    .ac_bias_intrpt = 0,
    .dma_burst_sz = 16,
    .bpp = 16,
    .fdd = 0,
    .tft_alt_mode = 0,
    .stn_565_mode = 0,
    .mono_8bit_mode = 0,
    .sync_edge = 0,
    .raster_order = 0,
    .fifo_th = 6,
    };

    With this parameters I get a working display (TFT display with WVGA (800x400 pixel) resolution) and a framebuffer with a format of 16bpp.

    Trying to set the element "bpp" to the value of "8" results in a not working display.

    My questions are:
    Is the device driver "da8xx-fb" able to set and configure a framebuffer with a format of 8bpp?
    How can I set the parameters so that I get a framebuffer with a format of 8bpp?
    How I've to set an appropriate palette?
    Do you know someone who is familiar with the Linux device driver "da8xx-fb"?

    Best regards,
    Jan-Marc Stranz.