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.

AM3358: use beaglebone with bbview LCD

Part Number: AM3358

SDK :ti-processor-sdk-linux-rt-am335x-evm-07.03.00.005

hardware:beaglebone black    BBVIEW+4.3inch LCD

I changed the am335x-boneblackd.dts  :

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

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


    lcd_cape_pins: pinmux_lcd_cape_pins {
    pinctrl-single,pins = <
        0xa0 0x08    /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xa4 0x08    /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xa8 0x08    /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xac 0x08    /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xb0 0x08    /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xb4 0x08    /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xb8 0x08    /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xbc 0x08    /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xc0 0x08    /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xc4 0x08    /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xc8 0x08    /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xcc 0x08    /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xd0 0x08    /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xd4 0x08    /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xd8 0x08    /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xdc 0x08    /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
        0xe0 0x00    /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
        0xe4 0x00    /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
        0xe8 0x00    /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
        0xec 0x00    /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
    >;
    };

    panel {
        compatible = "tilcdc,panel";
        pinctrl-names = "default";
        pinctrl-0 = <&lcd_cape_pins>;
        panel-info {
            ac-bias           = <255>;
            ac-bias-intrpt    = <0>;
            dma-burst-sz      = <16>;
            bpp               = <32>;
            fdd               = <0x80>;
            tft-alt-mode      = <0>;
            stn-565-mode      = <0>;
            mono-8bit-mode    = <0>;
            sync-edge         = <0>;
            sync-ctrl         = <1>;
            raster-order      = <0>;
            fifo-th           = <0>;
        };
        display-timings {
            native-mode = <&timing0>;
            timing0: 480x272 {
                hactive         = <480>;
                vactive         = <272>;
                hback-porch     = <44>;
                hfront-porch    = <9>;
                hsync-len       = <5>;
                vback-porch     = <13>;
                vfront-porch    = <4>;
                vsync-len       = <10>;
                clock-frequency = <9000000>;
                hsync-active    = <0>;
                vsync-active    = <0>;
            };
        };
    };

    pwm_bl_pins: pinmux_pwm_bl_pins {
                pinctrl-single,pins = <
                    0x48 0x06       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
                >;
    };
    
    backlight {
            compatible      = "pwm-backlight";
            pinctrl-names   = "default";
            pinctrl-0       = <&pwm_bl_pins>;

            pwms = <&ehrpwm1 0 500000 0>;
            pwm-names = "LCD4";
            brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
            default-brightness-level = <101>; /* index to the array above */
            status = "okay";
    };


    fb {
            compatible = "ti,am33xx-tilcdc";
            reg = <0x4830e000 0x1000>;
            interrupt-parent = <&intc>;
            interrupts = <36>;
            ti,hwmods = "lcdc";
    };

};

&cpu0_opp_table {
    /*
     * All PG 2.0 silicon may not support 1GHz but some of the early
     * BeagleBone Blacks have PG 2.0 silicon which is guaranteed
     * to support 1GHz OPP so enable it for PG 2.0 on this board.
     */
    oppnitro-1000000000 {
        opp-supported-hw = <0x06 0x0100>;
    };
};

**************************************************************************

compile the dts then flash into SDcard, use uboot fdt tools:

=> fdt addr 0x88000000
=> fdt list
/ {
compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
interrupt-parent = <0x00000001>;
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
model = "TI AM335x BeagleBone Black";
chosen {
};
aliases {
};
cpus {
};
opp-table {
};
pmu@4b000000 {
};
soc {
};
ocp {
};
memory@80000000 {
};
leds {
};
fixedregulator0 {
};
clk_mcasp0_fixed {
};
clk_mcasp0 {
};
sound {
};
pinmux_lcd_cape_pins {
};
panel {
};
pinmux_pwm_bl_pins {
};
backlight {
};
};
=>

***************************************************************************************

there are new device: panel,backlight

I can log into the linux, but the LCD still does not work

  • Hello,

    Are you still observing issues with your LCD panel?

    Regards,
    Krunal

  • hello:
    Now the LCD is working, but the matrix-gui still load failed and I can't run the Qt examples with weston,


    I need to stop weston and use "-platform eglfs" to run the Qt examples,
    tslib calibration has no effect,because the prebuilt Qt libs seems use weston to calibrate the touchscreen.
    1. My goal is to use Qt with the prebuilt Qt libs
    2. why the sdk prebuilt system on my BBB can't load matrix-gui and Qt examples with weston?
    3. If I want to use the touchscreen ,do I need to recompile the Qtlibs with tslib?

  • 1. The application that you ran with EGLFS was using the default qt libs. 
    2. At times, matrix-gui does not launch automatically but you could start manually with the following commands "/etc/init.d/weston stop" -> "/etc/init.d/weston start" -> "/etc/init.d/matrix-gui-2.0 start". Also, you ran the application with eglfs and if you remove the eglfs flag, it will use weston to run the application.
    3. I am not sure what is required to run tslib and I would recommend you to check with Qt community.

    Regards,
    Krunal