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.