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.

RGB888 LCD + FT6206 Touch Controller

Other Parts Discussed in Thread: DA8XX

Hi,

i have a 24bit RGB Display with a I2C capacitive touch controller.

My goal ist a runnung QT/QML-Application on the BeageBone Black.

I follow this guide to setup the sdk:

http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Getting_Started_Guide

Then I build the kernel, the modules, and the dtb

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

Then i follow this guide to remove the DRM driver and activate the fbdev driver

https://e2e.ti.com/support/arm/sitara_arm/f/791/p/442424/1607810#1607810

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

make -j5 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage

make -j5 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules

sudo make ARCH=arm INSTALL_MOD_PATH=/media/buha/rootfs modules_install

Then copy the dtb and the zImage to the rootFS.

But if I start the BeagleBone Black this is in the log:

...

Error opening /dev/fb0: No such file or directory 

...

I think the fbdev driver ist not correct included...

Is there somebody who can help me?

  • Hi,

    Which SDK are you using? This is the LCD driver guide for the latest SDK: processors.wiki.ti.com/.../Linux_Core_LCD_Controller_User_Guide
  • Hi,

    yes i try to follow this guide. At this Point i add the two points to the "arch/arm/configs/tisdk_am335x-evm_defconfig".

    --------------------------------------------------------------------------------------------------
    Configuring into kernel build:
    By default AM335x FBDEV and TDA998x HDMI is built into the kernel if you use omap2plus_defconfig.
    The necessary .config options are:
    CONFIG_FB_DA8XX
    CONFIG_FB_DA8XX_TDA998X
    --------------------------------------------------------------------------------------------------
    ...
    # CONFIG_FB_CARMINE is not set
    # CONFIG_FB_SMSCUFX is not set
    # CONFIG_FB_UDL is not set
    CONFIG_FB_DA8XX=y
    CONFIG_FB_DA8XX_TDA998X=y
    # CONFIG_FB_VIRTUAL is not set
    # CONFIG_FB_METRONOME is not set
    # CONFIG_FB_MB862XX is not set
    ...

    And then config the file: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig
    And the CONFIG_FB_DA8XX_TDA998X=y disappears...
    ...
    # CONFIG_FB_CARMINE is not set
    # CONFIG_FB_SMSCUFX is not set
    # CONFIG_FB_UDL is not set
    CONFIG_FB_DA8XX=y
    # CONFIG_FB_VIRTUAL is not set
    # CONFIG_FB_METRONOME is not set
    # CONFIG_FB_MB862XX is not set
    ...

    I don't know why that happens?
  • This is my Device Tree to test the Display:
    ---------------------------------------------------------------------------------------------------------------
    /dts-v1/;

    #include "am33xx.dtsi"
    #include "am335x-bone-common.dtsi"

    / {
    model = "TI AM335x BeagleBone Black";
    compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
    };

    &ldo3_reg {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    };

    &mmc1 {
    vmmc-supply = <&vmmcsd_fixed>;
    };

    &mmc2 {
    vmmc-supply = <&vmmcsd_fixed>;
    pinctrl-names = "default";
    pinctrl-0 = <&emmc_pins>;
    bus-width = <8>;
    status = "okay";
    };

    &sgx {
    status = "okay";
    };

    &am33xx_pinmux {
    lcd_pins_default: lcd_pins_default {
    pinctrl-single,pins = <
    0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
    0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
    0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
    0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
    0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
    0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
    0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
    0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
    0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */
    0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */
    0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */
    0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */
    0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */
    0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */
    0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */
    0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */
    0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */
    0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */
    0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */
    0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */
    0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */
    0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */
    0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */
    0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */
    0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
    0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
    0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
    0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
    >;
    };
    };


    &lcdc {
    pinctrl-names = "default";
    pinctrl-0 = <&lcd_pins_default>;
    status = "okay";
    display-timings {
    800x480p62 {
    clock-frequency = <6500000>;
    hactive = <320>;
    vactive = <240>;
    hfront-porch = <20>;
    hback-porch = <64>;
    hsync-len = <2>;
    vback-porch = <14>;
    vfront-porch = <20>;
    vsync-len = <4>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <0>;
    pixelclk-active = <1>;
    bpp = <16>;
    };
    };
    };

    -----------------------------------------------------------------
    is there something missing to activate the fbdev driver?
  • Hi,

    No, it is as described in the wiki. You need to do the changes in defconfig & add the dts node.

    However have in mind that:

    1. You should use tisdk_am335x-evm_defconfig NOT omap2plus_defconfig (which is for OMAP4/5 & J6 devices).

    2. When you add FB configs definitions in tisdk_am335x-evm_defconfig you must disable the DRM configs. Otherwise the two will conflict.  

    Best Regards,

    Yordan

  • Hi,

    thanks for the help:

    1: i have used the "tisdk_am335x-evm_defconfig"

    2: I also have disabled the DRM configs, i know thats DRM and FB are in conflict otherwise

    I change everything in  the "arch/arm/configs/tisdk_am335x-evm_defconfig".

    But after the "make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig", there is no CONFIG_FB_DA8XX_TDA998X=y entry in the .config-File.

  • Hi,

    Then can you try adding:
    CONFIG_FB_DA8XX_TDA998X=y
    directly in the .config & then build the kernel?

    Best Regards,
    Yordan
  • Hi,

    thanks for your help.

    Now i using DRM in place of FBDEV. The display works and now i try to configure the touchscreen.
    I have added the I2C-driver for the touch-controller. And rebuild the whole kernel.

    But now i have problems with QML. The most Qt-packages are included. But the qtQuickControls are missing :-(.

    Is there a way to compile other qt-stuff?

  • I have a Problem with the display. At all places where alpha values on pictures or in the menue, is a jitter-effect.

    I think the the graphic driver ist set to rgba-mode. But the Display knows only RGB888.

    Can anyone help me? How can i set the RGBA-Mode to the RGB-Mode?