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.

BeagleBone LCD works but ... FBDEv or DRM ?

Other Parts Discussed in Thread: DA8XX

Hi every body,

I'm using an LCD 7inch screen with BBB rev C.
Screen is working after using a .dts name BB-BONE-LCD7-01.00A3.dts
But screen seems not be really in phase and shake a bit. also my screen ( TX18D203VM2BPA) is 18bits so i need to activate 24 bits mode.
I did it in a A4 version and i change also the frequency fom 30Mhz to 32.32MHz 9 typical vale of my screen) in the DTS file. Compiled and moved in /lib/firmware.
It's well loaded at boot time ( checked with cat slots)
But after reboot, LCD_clock frequency  is still at 30Mhz and color is still not ok ( still blue instead of yellow) .
I know that fbdev driver is not taking into account dtb ( the binarie coming from dts). If i don't ask to load my dtb, lcd is not working so i guess the video driver used is DRM. But why my modification are not taken into account ? I just modificate the field clock frequency and bpp from 24bits to 16.
Is there something special to do that i didn't catch ?
Thanks a lot for you precious input !
  • Hi Florian,

    Could you attach the modified DTS file?

    BR
    Tsvetolin Shulev
  • Hi Tsvetolin,

    thanks for your help.

    I send you my file this evening ( i'm at work at the moment).

    But i can already said that it's the same file than this one:

    github.com/.../BB-BONE-LCD7-01-00A3.dts

    with modifications:

    1) version from 00A3 -> 00A4 for me ( correctly loaded in slots variable in /sys/devices/bone_capemng.9/ )
    2) field clock-frequency = <30000000>; -> clock-frequency = <32320000>;
    3)bpp = <16>; - > bpp = <24>
    4) added in excluse and pin mux the two bit lcd 16 and lcd 17 for my 18 bit screen.

    Is the driver used is the DRM in this kernel 3.8.13?

    Cause in my xorg.conf file, i see it uses fbdev and i think that fbdev doesn't support device tree ( to be confirmed).

    thanks for your help i really appreciate it
  • Hi ,

    joined my .dts.

    I clean and make it simplest as possible, only for my lcd.

    3513.LCD.dts.TXT

  • Oups i think i did a mistake...

    I place into uEnv.txt a line : dtb = BB-BONE-LCD7-01-04.dtbo

    and reboot

    But the Beaglebone is locked and can't start. I hope i can do something cause it stays with the four LED on.

    Any idea to boot again? is there a possibility that this line do something really bad ?
  • Hi

    Some news, its ok i success to correct the booting issue i had, by installing on uSD an image .

    I just remove the ligne in the uEnv.txt.

    So i'm able to boot again on my flash like before.

    So concerning the dts file, is there something special to do to place in 24bits mode and change the frequency ?

    How to be sure that my system with DRM and not FBDEV please ?

    Thank you

  • Hi Florian,

    It is a good new that your board is booting again.
    I suggest you to verify whether the new values for "clock-frequency" in the device tree file are read and parsed properly. To make this check you can add printing of "dt->pixelclock" field in ../linux/drivers/video.of_display_timing.c file after the parsing row:


    ret |= parse_timing_property(np, "clock-frequency", &dt->pixelclock);


    You can make checks for the other settings (version and bpp).

    BR
    Tsvetolin Shulev

  • Nice thanks a lot i will try it !

    I guess i have to compil this file , is it with gcc and special option?

    it will be print into dmesg?

    Sorry to ask very basic question, i'm a beginner but really motivated :)

    Thanks you.

  • Florian,

    You can use the following command for example:

    printk(KERN_INFO "clock-frequency = %s\n", dt->pixelclock);

    to print the clock frequency.

    You should build the whole kernel and device tree according build instruction for your SDK.

    Then after the booting with the new kernel and device tree build you can check the kernel log output - "dmesg".

    BR

    Tsvetolin Shulev

  • Thanks a lot for your answer,

    I was afraid that whole kernel needed to be build, i never did it.

    But its a good exercice .

    i will try to do it thanks you !

    How to be sure that this video driver is loaded by the system at boot time ?
    Do you think several video driver can be loaded at the same time ?

    i ask this because i have seen that lxde interface was using FBdev. DBdev driver seems to not support device tree. It could explain that frequency and bpp descibe in my device tree are not managed.
  • Hi Cvetolin,

    I search for this ../linux/drivers/video.of_display_timing.c

    i did it by searching with find / -name *.c in qll my beqglebone.

    It seems thqt there is not this file in qll the .c source on my beagle bone. Did you check this file exists on this board ?

    in dmesg i also have this line concerning tilcdc:

    [ 0.875559] tilcdc 4830e000.fb: Power GPIO active high, initial state set to high
    [ 0.890498] tilcdc 4830e000.fb: fb0: frame buffer device
    [ 0.890508] tilcdc 4830e000.fb: registered panic notifier
    [ 0.890549] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
    [ 11.966292] tilcdc 4830e000.fb: timeout waiting for framedone
    [ 13.409722] tilcdc 4830e000.fb: timeout waiting for framedone

    and when i list the module loqded i see nothing concerning DRM :

    Module Size Used by
    binfmt_misc 5492 1
    g_multi 50407 2
    libcomposite 15028 1 g_multi
    omap_rng 4062 0
    mt7601Usta 639170 0

    I hope you could give me a clue to find why dts is not taking into account correctly by the system;

  • Florian,

    Sorry for the mistake. The correct path to the file which I mean is:

    ../linux/drivers/video/of_display_timing.c

    instead of ../linux/drivers/video.of_display_timing.c

     

    BR

    Tsvetolin Shulev

  • Thanks for the correction Cvetolin, but there is no files containing timing.c in all the beaglebone.

    I'm really not sur we have the source of the driver into the beaglebone.

    My linux version is : 3.8.13-bone70

    With the previous information i gave you, Is it the fb dev driver or DRM that is used you think ?
  • the own driver i can find is :

    root@beaglebone:/usr/src/linux-headers-3.8.13-bone70/drivers/gpu/drm/tilcdc# cat Kconfig


    config DRM_TILCDC
    tristate "DRM Support for TI LCDC Display Controller"
    depends on DRM && OF && BACKLIGHT_LCD_SUPPORT
    select DRM_KMS_HELPER
    select DRM_KMS_CMA_HELPER
    select DRM_GEM_CMA_HELPER
    select OF_VIDEOMODE
    select OF_DISPLAY_TIMING
    select BACKLIGHT_CLASS_DEVICE
    help
    Choose this option if you have an TI SoC with LCDC display
    controller, for example AM33xx in beagle-bone, DA8xx, or
    OMAP-L1xx. This driver replaces the FB_DA8XX fbdev driver.