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.

AM572x LCD and HDMI issue

Other Parts Discussed in Thread: AM5728, TPD12S015

Hi,

      We are using one custom board having am5728 sitara processor. We have connected LCD and  HDMI out connector but "kmscube" application is not executing successfully it is showing following error. According to my understanding It seems some problem between primary and secondary display device. We want to use LCD as primary and HDMI as secondary display device.

/* Result of kmscube */

root@am57xx-evm:~#root@am57xx-evm:~# kmscube -c 26 //using connector id 26 given by mode test  for HDMI
trying to load module omapdrm...success.[  130.653575] omapdss error: HDMI I2C Master Error

### Display [0]: CRTC = 28, Connector = 26  // here it is showing display0 with respect to 26 connector id which is of HDMI connector but in our dts file hdmi aliases is given to display1 (.dts file entry mentioned below)
        Mode chosen [1024x768] : Clock => 65000, Vertical refresh => 60, Type => 64
        Horizontal => 1024, 1048, 1184, 1344, 0
        Vertical => 768, 771, 777, 806, 0
### Display [1]: CRTC = 32, Connector = 30
        Mode chosen [240x320] : Clock => 6350, Vertical refresh => 69, Type => 72
        Horizontal => 240, 250, 260, 280, 0
        Vertical => 320, 324, 326, 328, 0
### Primary display => ConnectorId = 26, Resolution = 1024x768 //Primary display connector id it is showing 26 (HDMI).
failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory
failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory
loaded module: gbm_pvr.so
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
Using display 0x1 with EGL version 1.4
EGL Version "1.4 build 1.9@2253347"
EGL Vendor "Imagination Technologies"
EGL Extensions "EGL_IMG_client_api_ogl EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_IMG_cl_image EGL_KHR_fence_sync EGL_IMG_hibernate_process EGL_WL_bind_wayland_display EGL_KHR_surfaceless_gles2 EGL_NV_post_sub_buffer "
display 0 failed to set mode: Permission denied

/* Result of modetest command */

root@am57xx-evm:~# modetest
trying to open device 'i915'...failed.
trying to open device 'radeon'...failed.
trying to open device 'nouveau'...failed.
trying to open device[   51.702889] omapdss error: HDMI I2C Master Error
 'vmwgfx'...failed.
trying to open device 'omapdrm'...success.
Encoders:
id      crtc    type    possible crtcs  possible clones
25      28      TMDS    0x00000001      0x00000000
29      32      TMDS    0x00000002      0x00000000

Connectors:
id      encoder status          type    size (mm)       modes   encoders
26      25      connected       HDMI-A  0x0             5       25        // HDMI connector id 26
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
  800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
  800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; type: driver
  848x480 60 848 864 976 1088 480 486 494 517 flags: phsync, pvsync; type: driver
  640x480 60 640 656 752 800 480 489 492 525 flags: nhsync, nvsync; type: driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0
30      29      connected       unknown 0x0             2       29
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  240x320 69 240 250 260 280 320 324 326 328 flags: nhsync, nvsync; type: preferred, driver
  240x320 69 240 250 260 280 320 324 326 328 flags: nhsync, nvsync; type: preferred, driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0

CRTCs:
id      fb      pos     size
28      48      (0,0)   (1024x768)
  1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
  props:
        21 trans-key-mode:
                flags: enum
                enums: disable=0 gfx-dst=1 vid-src=2
                value: 0
        22 trans-key:
                flags: range
                values: 0 16777215
                value: 0
        23 background:
                flags: range
                values: 0 16777215
                value: 0
        24 alpha_blender:
                flags: range
                values: 0 1
                value: 0
        17 rotation:
                flags: bitmask
                values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
                value: 1
        18 zorder:
                flags: range
                values: 0 3
                value: 0
        19 global_alpha:
                flags: range
                values: 0 255
                value: 255
        20 pre_mult_alpha:
                flags: range
                values: 0 1
                value: 0
32      47      (0,0)   (240x320)
  240x320 69 240 250 260 280 320 324 326 328 flags: nhsync, nvsync; type: preferred, driver
  props:
        21 trans-key-mode:
                flags: enum
                enums: disable=0 gfx-dst=1 vid-src=2
                value: 0
        22 trans-key:
                flags: range
                values: 0 16777215
                value: 0
        23 background:
                flags: range
                values: 0 16777215
                value: 0
        24 alpha_blender:
                flags: range
                values: 0 1
                value: 0
        17 rotation:
                flags: bitmask
                values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
                value: 1
        18 zorder:
                flags: range
                values: 0 3
                value: 0
        19 global_alpha:
                flags: range
                values: 0 255
                value: 255
        20 pre_mult_alpha:
                flags: range
                values: 0 1
                value: 0

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
27      28      48      0,0             0,0     0               0x00000001
  formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24
  props:
        5 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 1
        17 rotation:
                flags: bitmask
                values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
                value: 1
        18 zorder:
                flags: range
                values: 0 3
                value: 0
        19 global_alpha:
                flags: range
                values: 0 255
                value: 255
        20 pre_mult_alpha:
                flags: range
                values: 0 1
                value: 0
31      32      47      0,0             0,0     0               0x00000002
  formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
  props:
        5 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 1
        17 rotation:
                flags: bitmask
                values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
                value: 1
        18 zorder:
                flags: range
                values: 0 3
                value: 0
        19 global_alpha:
                flags: range
                values: 0 255
                value: 255
        20 pre_mult_alpha:
                flags: range
                values: 0 1
                value: 0
33      0       0       0,0             0,0     0               0x00000003
  formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
  props:
        5 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 0
        17 rotation:
                flags: bitmask
                values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
                value: 1
        18 zorder:
                flags: range
                values: 0 3
                value: 2
        19 global_alpha:
                flags: range
                values: 0 255
                value: 255
        20 pre_mult_alpha:
                flags: range
                values: 0 1
                value: 0
34      0       0       0,0             0,0     0               0x00000003
  formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
  props:
        5 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 0
        17 rotation:
                flags: bitmask
                values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
                value: 1
        18 zorder:
                flags: range
                values: 0 3
                value: 3
        19 global_alpha:
                flags: range
                values: 0 255
                value: 255
        20 pre_mult_alpha:
                flags: range
                values: 0 1
                value: 0

/* Device Tree entry for LCD  in am57xx-evm.dts*/

aliases {
                display0 = &lcd0;

}

dss {
        ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port {
                        reg = <0>;

                        dpi_out: endpoint {
                                remote-endpoint = <&lcd_in>;
                                data-lines = <18>;
                        };
                };
        };
};

lcd0: display {
                compatible = "ilitek,ili9341","panel-dpi";
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_pins>;


                label = "lcd";

                enable-gpios = <&gpio4 20 GPIO_ACTIVE_HIGH>;

                panel-timing {
                        clock-frequency = <6350000>; /* 6.35 MHz */
                        hactive = <240>;
                        vactive = <320>;
                        hfront-porch = <10>;
                        hback-porch = <20>;
                        hsync-len = <10>;
                        vback-porch = <2>;
                        vfront-porch = <4>;
                        vsync-len = <2>;
                        hsync-active = <0>;
                        vsync-active = <0>;
                        de-active = <1>;
                        pixelclk-active = <1>;
                };

                port {
                        lcd_in: endpoint {
                                remote-endpoint = <&dpi_out>;
                        };
                };
        };

/* Device Tree entry for HDMI  in am57xx-beagle-x15.dts*/

 aliases {
                sound0 = &sound0;
                display1 = &hdmi0;
                sound1 = &hdmi;
        /*      rtc0 = &mcp_rtc; PRRADDHEP REDDE
                rtc1 = &tps659038_rtc;
                rtc2 = &rtc; */

        };


 hdmi0: connector {
                compatible = "hdmi-connector";
                label = "hdmi";

                type = "a";

                port {
                        hdmi_connector_in: endpoint {
                                remote-endpoint = <&tpd12s015_out>;
                        };
                };
        };
tpd12s015: encoder {
                compatible = "ti,tpd12s015";

                gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>,   /* gpio4_13, CT CP HPD */
                        <&gpio4 14 GPIO_ACTIVE_HIGH>,   /* gpio4_14, LS OE */
                       <&gpio1 14 GPIO_ACTIVE_HIGH>;   /* gpio1_14, HPD */

                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;

                        port@0 {
                                reg = <0>;

                                tpd12s015_in: endpoint {
                                        remote-endpoint = <&hdmi_out>;
                                };
                        };

                        port@1 {
                                reg = <1>;

                                tpd12s015_out: endpoint {
                                        remote-endpoint = <&hdmi_connector_in>;
                                };
                        };
                };
        };


&hdmi {
        status = "ok";
        vdda-supply = <&ldo4_reg>;

        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_pins>;

        port {
                hdmi_out: endpoint {
                        remote-endpoint = <&tpd12s015_in>;
                };
        };
};

Please Tell me how to resolve this issue, if We are using LCD and HDMI stand alone,  In that case it is working fine. We are facing this issue only when we using both of them together.

Thanks & Regards

Abhishek