Загрузка данных


#include "imx8mp-evk.dts"

&{/} {
	/delete-node/ sound-wm8960;
	/delete-node/ regulator-can1-stby;

	sound-lt9611 {
		compatible = "simple-audio-card";
		simple-audio-card,name = "lt9611-audio";
		status = "okay";

		simple-audio-card,cpu {
			sound-dai = <&xcvr>; 
		};

		simple-audio-card,codec {
			sound-dai = <&lt9611_codec 0>; // 0 - I2S, 1 - SPDIF ???
		};
	};
};

&flexcan1 {
	/delete-property/ pinctrl-0;
	/delete-property/ xceiver-supply;
	status = "disabled";
};

&xcvr {
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spdif>;
	status = "okay";
};

&i2c2 {
	/delete-node/ ov5640_mipi@3c;
	/delete-node/ adv7535@3d;

	lt9611_codec: lt9611@3b {
		compatible = "lontium,lt9611";
		reg = <0x3b>;
		#sound-dai-cells = <0>;
		fsl,audio-spdif;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c2_synaptics_dsx_io>;
		interrupt-parent = <&gpio1>;
		interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
		status = "okay";
		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				lt9611_to_dsi: endpoint {
					remote-endpoint = <&dsi_to_lt9611>;
					data-lanes = <1 2 3 4>;
				};
			};
		};
	};
};

&i2c3 {
	/delete-node/ ov5640_mipi@3c;
};

&mipi_dsi {
	status = "okay";
	/delete-node/ port@1;

	port@1 {
		reg = <1>;
		dsi_to_lt9611: endpoint {
			remote-endpoint = <&lt9611_to_dsi>;
			data-lanes = <1 2 3 4>;
			attach-bridge;
		};
	};
};

&mipi_csi_0 {
	status = "disabled";
	/delete-node/port;
};

&mipi_csi_1 {
	status = "disabled";
	/delete-node/port@1;
};

&iomuxc {
        /delete-node/ pinctrl_flexcan1;
        /delete-node/ pinctrl_flexcan1_reg;
	pinctrl_spdif: spdifgrp {
		fsl,pins = <
			MX8MP_IOMUXC_SPDIF_TX__AUDIOMIX_SPDIF1_OUT			0x31e
		>;
	};
};

static int lt9611_parse_dt(struct device *dev,
			   struct lt9611 *lt9611)
{
	lt9611->dsi0_node = of_graph_get_remote_node(dev->of_node, 0, -1);
	if (!lt9611->dsi0_node) {
		dev_err(lt9611->dev, "failed to get remote node for primary dsi\n");
		return -ENODEV;
	}
	lt9611->dsi1_node = of_graph_get_remote_node(dev->of_node, 1, -1);
	lt9611->ac_mode = of_property_read_bool(dev->of_node, "lt,ac-mode");
	return drm_of_find_panel_or_bridge(dev->of_node, 2, -1, NULL, &lt9611->next_bridge);
}

lt9611 1-003b: failed to parse device tree

В коде return drm_of_find_panel_or_bridge(dev->of_node, 2, -1, NULL, &lt9611->next_bridge) использует жёстко port 2...