Hi Aradhya,

Something like this.

&oldi0 {
        // primary oldi
        ti,companion-oldi = <&oldi1>;
};


&oldi1 {
        // secondary oldi
        ti,secondary-oldi = true;
        ti,companion-oldi = <&oldi0>;
};


If there is no companion for any OLDI dt node, then the OLDI TX will be
deemed as acting by itself, and in a single-link mode.

And it's possible to still have these properties and treat them as
two distinct transmitters? I'm wondering if it's possible to have
the companion-oldi and secondary-oldi property inside the generic
SoC dtsi, so you don't have to repeat it in every board dts.

If I read the code correctly, the panel has to have the even and odd
pixel properties to be detected as dual-link. Correct? Thus it would
be possible to have

oldi0: oldi@0 {
        ti,companion-oldi = <&oldi1>;
};

oldi1: oldi@1 {
        ti,secondary-oldi;
        ti,companion-oldi = <&oldi0>;
};

in the soc.dtsi and in a board dts:

panel {
        port {
                remote-endpoint = <&oldi0>;
        };
};

In this case, the secondary OLDI (oldi1) would remain disabled from
soc.dtsi.

I gave this a quick try. Turns out, of_parse_phandle() is not able to
return an error when primary OLDI tries to find a companion -- which is
important for the driver to detect an absence of any secondary OLDI.

Since the driver code registers a companion for primary OLDI, and
further does not find the "dual-lvds-{odd,even}-pixels" properties,
the driver ends up trying for a Clone Mode.

So, for single-link , we'd have to actively delete the "companion-oldi"
property, in the board.dts/panel.dtso.

Last time I've checked you cannot delete nodes or properties in DT
overlays. So maybe it's better to make that a board property and don't
set it by default in the soc dtsi.

But, say, the disabled-node's phandle parse is circumvented, somehow,
and we don't need to delete the property explicitly.

There would still be one concern, I am afraid.

In AM67A DSS (future scope at the moment), the 2 OLDIs can act
independently. Like a 2x Independent Single-Link. Both the OLDI dt nodes
will be enabled.

The first DSS0 can drive two single link displays? Reading your downstream
AM67A DSS patches, thats not particular clear:

    The DSS0 HW supports one each of video pipeline (vid) and video-lite
pipeline (vidl1). It outputs OLDI signals on one video port (vp1) and
    DPI signals on another (vp2). The video ports are connected to the
    pipelines via 2 identical overlay managers (ovr1 and ovr2).

The TRM also doesn't tell much (or I just didn't find it yet).

So, if the soc.dtsi has them already connected, then the
board.dts/panel.dtso would still need to explicitly delete those
properties to get the 2 OLDI TXes to work independently.

Yeah looks like that should really be a board property.

-michael

Reply via email to