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.

AM5728: Direct connection of DSS out to HDMI connector - how to set

Part Number: AM5728
Other Parts Discussed in Thread: TPD12S015

Hello, TI.

After a week of studying of all possible sources I give up.

Our custom board needs to work against the "hdmi display" (specific unit) which has no DDC, just the data/clock lines of the hdmi.
Therefore, we have no tpd12s015 chip on board.

I understand that I need somehow to explain to the encoder that it is connected to the hdmi connector and define 1080p60 parameters.
After searching everything possible (including ChatGPT :-) I ended with the following changes to the EVM device tree (relevant fragments):
   my_mode {
       clock-frequency = <148500000>; // Pixel clock frequency (in Hz)
       hactive = <1920>; // Horizontal active pixels
       vactive = <1080>; // Vertical active pixels
       hback-porch = <148>; // Horizontal back porch
       hfront-porch = <88>; // Horizontal front porch
       vback-porch = <36>; // Vertical back porch
       vfront-porch = <4>; // Vertical front porch
       hsync-len = <44>; // Horizontal sync length
       vsync-len = <5>; // Vertical sync length
       hsync-active = <0>; // 0 if sync is active low, 1 if active high
       vsync-active = <0>; // 0 if sync is active low, 1 if active high
       phandle = <0x400>;
   };
....

dss@58000000 {

....................
    encoder@58060000 {
           compatible = "ti,dra7-hdmi";
           reg = <0x58040000 0x200 0x58040200 0x80 0x58040300 0x80 0x58060000 0x19000>;
           reg-names = "wp", "pll", "phy", "core";
           interrupts = <0x0 0x60 0x4>;
           status = "ok";
           video-mode = <0x400>;   /* my_mode */
           ti,hwmods = "dss_hdmi";
           clocks = <0xcd 0x0 0x9 0xcd 0x0 0xa>;
           clock-names = "fck", "sys_clk";
           dmas = <0x8d 0x4c>;
            dma-names = "audio_tx";
            vdda-supply = <0xcf>;
            phandle = <0x1db>;
            disable-hpd = <1>;
            port {
                    endpoint {
                         remote-endpoint = <0xe8>;
                         phandle = <0xe7>;
                     };
            };  
     };  
};

       connector {
               compatible = "hdmi-connector";
               label = "hdmi";
               type = [61 00];
               phandle = <0x20e>;
               video-mode = <0x400>;
/*              video-mode = <0x31>; */
               port {
                       video-mode = <0x400>;  
/*                      video-mode = <0x31>;*/
                       endpoint {
                               remote-endpoint = <0xe7>;
                               phandle = <0xe8>;
                       };
               };
       };      

Still, no output on HDMI is generated. Kernel console while starting writes:
[ 2.386754] omapdss_hdmi5 58040000.encoder: Linked as a consumer to regulator.18
[ 2.394617] omapdss_dss 58000000.dss: bound 58001000.dispc (ops dispc_component_ops)
[ 2.402680] omapdss_dss 58000000.dss: bound 58040000.encoder (ops hdmi5_component_ops)
[ 2.411450] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.418098] [drm] No driver support for vblank timestamp query.
[ 2.429491] [drm] Cannot find any crtc or sizes
[ 2.435169] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0

and running modetest I receive:

root@am57xx-evm:/# modetest
trying to open device 'i915'...failed
trying to open device 'amdgpu'...failed
trying to open device 'radeon'...failed
trying to open device 'nouveau'...failed
trying to open device 'vmwgfx'...failed
trying to open device 'omapdrm'...done
Encoders:
id      crtc    type    possible crtcs  possible clones  
53      0       TMDS    0x00000001      0x00000000

Connectors:
id      encoder status          name            size (mm)       modes   encoders
54      0       unknown HDMI-A-1        0x0             0       53
 props:
       1 EDID:
               flags: immutable blob
               blobs:

               value:
       2 DPMS:
               flags: enum
               enums: On=0 Standby=1 Suspend=2 Off=3
               value: 0
       5 link-status:
               flags: enum
               enums: Good=0 Bad=1
               value: 0
       6 non-desktop:
               flags: immutable range
               values: 0 1
               value: 0
       19 CRTC_ID:
               flags: object
               value: 0

CRTCs:
id      fb      pos     size
55      0       (0,0)   (0x0)
  0 0 0 0 0 0 0 0 0 0 flags: ; type:  
 props:
.................

I will be very very thankful for any hints.

P.S. If I leave the device tree as it is in EVM (with TPD although it is absent and no DDC lines exist) I can see output on the test TV connected, but it is always in 1024x768 format. Even if I play 1080p30 file and say to gstreamer that it is 1080.