Aw: Re: [PATCH v2 1/5] drm/mediatek: config component output by device node port

Frank Wunderlich frank-w at public-files.de
Sun Aug 2 04:05:39 EDT 2020


> Gesendet: Sonntag, 02. August 2020 um 02:03 Uhr
> Von: "Chun-Kuang Hu" <chunkuang.hu at kernel.org>
> An: "Frank Wunderlich" <frank-w at public-files.de>
> Cc: "Chun-Kuang Hu" <chunkuang.hu at kernel.org>, "Philipp Zabel" <p.zabel at pengutronix.de>, "David Airlie" <airlied at linux.ie>, "linux-kernel" <linux-kernel at vger.kernel.org>, "DRI Development" <dri-devel at lists.freedesktop.org>, "moderated list:ARM/Mediatek SoC support" <linux-mediatek at lists.infradead.org>, "Daniel Vetter" <daniel at ffwll.ch>, "Matthias Brugger" <matthias.bgg at gmail.com>, "Bibby Hsieh" <bibby.hsieh at mediatek.com>, "Linux ARM" <linux-arm-kernel at lists.infradead.org>
> Betreff: Re: [PATCH v2 1/5] drm/mediatek: config component output by device node port
> > +
> > +               if (comp_type != MTK_DSI && comp_type != MTK_DPI) {
> > +                       port = of_graph_get_port_by_id(node, 0);
> > +                       if (!port)
> > +                               continue;
> > +                       ep = of_get_child_by_name(port, "endpoint");
> > +                       of_node_put(port);
> > +                       if (!ep)
> > +                               continue;
> > +                       remote = of_graph_get_remote_port_parent(ep);
> > +                       of_node_put(ep);
> > +                       if (!remote)
> > +                               continue;
> > +                       of_id = of_match_node(mtk_ddp_comp_dt_ids, remote);
> > +                       if (!of_id)
> > +                               continue;
> > +                       comp_type = (enum mtk_ddp_comp_type)of_id->data;
> > +                       for (i = 0; i < private->data->main_len - 1; i++)
> > +                               if (private->data->main_path[i] == comp_id)
> > +                                       private->data->main_path[i + 1] =
> > +                                       mtk_ddp_comp_get_id(node, comp_type);
> > +                       for (i = 0; i < private->data->ext_len - 1; i++)
> > +                               if (private->data->ext_path[i] == comp_id)
> > +                                       private->data->ext_path[i + 1] =
> > +                                       mtk_ddp_comp_get_id(node, comp_type);
> > +               }
>
> The port property is not defined in binding document [1], so define it
> in binding document first.
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt?h=v5.8-rc7

hi,
would be the following enough for describing the ports?

Port binding
=============

some nodes like

- connector (e.g. hdmi-connector)
- bls (mediatek,mt7623-disp-pwm)
- hdmix (mediatek,mt7623-hdmi)

can have port bindings to connect each other. Each port can have only 1 endpoint

more detail about ports/endpoints in ../../media/video-interfaces.txt
hdmi-connector is described here: ../connector/hdmi-connector.txt

example:

connector {
	compatible = "hdmi-connector";

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


&bls {
	status = "okay";

	port {
		bls_out: endpoint {
			remote-endpoint = <&dpi0_in>;
		};
	};
};

&dpi0 {
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		port at 0 {
			reg = <0>;
			dpi0_out: endpoint {
				remote-endpoint = <&hdmi0_in>;
			};
		};

		port at 1 {
			reg = <1>;
			dpi0_in: endpoint {
				remote-endpoint = <&bls_out>;
			};
		};
	};
};

&hdmi0 {

	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		port at 0 {
			reg = <0>;
			hdmi0_in: endpoint {
				remote-endpoint = <&dpi0_out>;
			};
		};

		port at 1 {
			reg = <1>;
			hdmi0_out: endpoint {
				remote-endpoint = <&hdmi_connector_in>;
			};
		};
	};
};

regards Frank



More information about the Linux-mediatek mailing list