Hi Aradhya! On Sun, 2024-11-24 at 20:06 +0530, Aradhya Bhatia wrote: > From: Aradhya Bhatia <a-bhatia1@xxxxxx> > > The AM62x and AM62Px SoCs feature 2 OLDI TXes each, which makes it > possible to connect them in dual-link or cloned single-link OLDI display > modes. The current OLDI support in tidss_dispc.c can only support for > a single OLDI TX, connected to a VP and doesn't really support > configuration of OLDIs in the other modes. The current OLDI support in > tidss_dispc.c also works on the principle that the OLDI output can only > be served by one, and only one, DSS video-port. This isn't the case in > the AM62Px SoC, where there are 2 DSS controllers present that share the > OLDI TXes. > > Having their own devicetree and their own bridge entity will help > support the various display modes and sharing possiblilities of the OLDI > hardware. > > For all these reasons, add support for the OLDI TXes as DRM bridges. ... > +int tidss_oldi_init(struct tidss_device *tidss) > +{ > + struct tidss_oldi *oldi; > + struct device_node *child; > + struct drm_bridge *bridge; > + u32 parent_vp, oldi_instance, companion_instance; > + enum tidss_oldi_link_type link_type = OLDI_MODE_UNSUPPORTED; > + struct device_node *oldi_parent; > + int ret = 0; > + > + tidss->num_oldis = 0; > + > + oldi_parent = of_get_child_by_name(tidss->dev->of_node, "oldi-transmitters"); > + if (!oldi_parent) > + /* Return gracefully */ > + return 0; > + > + for_each_child_of_node(oldi_parent, child) { Would for_each_available_child_of_node() make sense here so that k3-am62-main.dtsi would have both ports with status = "disabled" and the users will enable one or another? > + ret = get_parent_dss_vp(child, &parent_vp); > + if (ret) { > + if (ret == -ENODEV) { > + /* > + * ENODEV means that this particular OLDI node > + * is not connected with the DSS, which is not > + * a harmful case. There could be another OLDI > + * which may still be connected. > + * Continue to search for that. > + */ > + ret = 0; > + continue; > + } > + goto err_put_node; > + } -- Alexander Sverdlin Siemens AG www.siemens.com