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.

BeagleBoneBlack添加LCD驱动

添加了<*> DRM Support for TI LCDC Display Controller

           <*>   DA8xx/OMAP-L1xx/AM335x Framebuffer support

但是在dev下都没有显示fb设备,这是真么原因?(背光已经添加成功)

  • 使用的是最新的TI的SDK,内核是4.19版本
  • 请参考以下类似的问题。
    e2e.ti.com/.../921067
  • 那fbdev不维护了,那是新增了别的方式驱动LCD吗
  • 请参考下面SDK user guide上的说明,内核和dts的配置。
    software-dl.ti.com/.../LCDC.html
  • By default DRM support for LCDC is not built in to the kernel when using omap2plus_defconfig.
    Make sure that the following are disabled from .config as the fbdev driver cannot coexist with the DRM driver.
    CONFIG_FB_DA8XX
    CONFIG_FB_DA8XX_TDA998X
    And add:
    CONFIG_DRM=y/m
    CONFIG_DRM_I2C_NXP_TDA998X=y/m
    CONFIG_DRM_TILCDC=y/m


    我想使用是是DA8XX,所以要禁用掉DRM驱动是吗
  • 用fbdev driver的话,可以参考下面wiki网站的网站。
    processors.wiki.ti.com/.../Sitara_Linux_LCDC_Porting_Guide
  • /*
    * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License version 2 as
    * published by the Free Software Foundation.
    */
    /dts-v1/;

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

    &sgx {
    status = "okay";
    };

    &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>;
    };
    };


    &am33xx_pinmux {

    lcd_pins_s0: lcd_pins_s0 {
    pinctrl-single,pins = <
    AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data23 */
    AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data22 */
    AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data21 */
    AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data20 */
    AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data19 */
    AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data18 */
    AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */
    AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */
    AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
    AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
    AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
    AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
    AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
    AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
    AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
    AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
    AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
    AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
    AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
    AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
    AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
    AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
    AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
    AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
    AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */
    AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */
    AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */
    AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
    >;
    };

    dcan1_pins_default: dcan1_pins_default {
    pinctrl-single,pins = <
    AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
    AM33XX_IOPAD(0x96c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
    >;
    };
    ehrpwm1_pins: pinmux-ehrpwm1-pins {
    pinctrl-single,pins = <
    AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_a2.ehrpwm1a */
    >;
    };
    };


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

    backlight: backlight {
    status = "okay";
    compatible = "pwm-backlight";
    pwms = <&ehrpwm1 0 500000 0>;

    brightness-levels = <0 51 53 56 62 75 101 152 255>;
    default-brightness-level = <8>;
    };

    panel {
    compatible = "ti,tilcdc,panel";
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&lcd_pins_s0>;
    panel-info {
    ac-bias = <255>;
    ac-bias-intrpt = <0>;
    dma-burst-sz = <16>;
    bpp = <32>;
    fdd = <0x80>;
    sync-edge = <0>;
    sync-ctrl = <1>;
    raster-order = <0>;
    fifo-th = <0>;
    };

    display-timings {
    800x480p62 {
    clock-frequency = <68000000>;
    hactive = <800>;
    vactive = <480>;
    hfront-porch = <64>;
    hback-porch = <5>;
    hsync-len = <47>;
    vback-porch = <2>;
    vfront-porch = <13>;
    vsync-len = <2>;
    hsync-active = <1>;
    vsync-active = <1>;
    };
    };
    };

    };



    &lcdc {
    status = "okay";
    };

    &dcan1 {
    status = "okay"; /* Enable only if Profile 1 is selected */
    pinctrl-names = "default";
    pinctrl-0 = <&dcan1_pins_default>;
    };

    &epwmss1 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&ehrpwm1_pins>;

    ecap@48302100 {
    status = "disable";
    };

    pwm@48302200 {
    status = "okay"; /* ehrpwm1 */
    };
    };

    这是我的设备树配置,背光可以使用,但是LCD没有显示logo,用fbdev发现没有CONFIG_FB_DA8XX_TDA998X这个选项,用DRM现在配置后没有logo显示
    内核配置了下面的选项
    <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->

    <*> OMAP DRM
    [*] Enable writeback support for OMAP DRM driver
    -*- OMAP2+ Display Subsystem support --->
    OMAPDRM External Display Device Drivers --->
    <*> DRM Support for TI LCDC Display Controller
  • 用DRM driver的话,config文件里有添加下面语句吗?
    CONFIG_DRM=y/m
    CONFIG_DRM_I2C_NXP_TDA998X=y/m
    CONFIG_DRM_TILCDC=y/m
  • tda998x 0-0070: Error applying setting, reverse things back
    tda998x: probe of 0-0070 failed with error -22
    看打印,发现ta998x报错,还没有找到原因
  • tda998x 0-0070: Error applying setting, reverse things back
    tda998x: probe of 0-0070 failed with error -22
    看打印,发现ta998x报错,还没有找到原因
  • 请问在"trying to open device 'tilcdc'...done "后面还有打印信息吗?
  • 问题已经解决,是由于包含了一个dtsi文件中已经配置了LCD,导致我配置的不起作用