Загрузка данных
root@imx8mpevk:~# dmesg | grep dsi
[ 0.062454] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.062956] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[ 0.063009] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[ 0.063105] /soc@0/bus@32c00000/lcd-controller@32e80000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.071562] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.073884] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.079281] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[ 0.079326] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[ 0.079435] /soc@0/bus@32c00000/lcd-controller@32e80000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.079982] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.080056] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[ 0.080098] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[ 0.080351] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[ 0.080437] /soc@0/bus@32c00000/lcd-controller@32e80000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 3.220925] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[ 3.227941] imx_sec_dsim_drv 32e60000.mipi_dsi: [drm] *ERROR* modalias failure on /soc@0/bus@32c00000/mipi_dsi@32e60000/port@1
[ 3.243316] lt9611_bridge_attach(1493) dsi0=(____ptrval____)
[ 3.248993] imx-drm display-subsystem: bound 32e60000.mipi_dsi (ops imx_sec_dsim_ops)
root@imx8mpevk:~# dmesg | grep lt9611
[ 0.062454] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.062956] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[ 0.071562] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.073884] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.079281] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[ 0.079982] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[ 0.080056] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[ 2.891199] lt9611_parse_dt(1635) next_bridge=0000000000000000
[ 2.897140] lt9611 1-003b: supply vdd not found, using dummy regulator
[ 2.903778] lt9611 1-003b: supply vcc not found, using dummy regulator
[ 2.920309] lt9611 1-003b: lt9611_reset
[ 3.076224] lt9611 1-003b: LT9611 revision: 0xe2
[ 3.085688] lt9611_audio_init(1845) is_i2s=1
[ 3.089975] lt9611 1-003b: LT9611: Registering HDMI Codec with I2S capability
[ 3.097528] lt9611_audio_init(1857) audio_pdev=0xD0CD1000
[ 3.239382] lt9611_bridge_attach(1488)
[ 3.243316] lt9611_bridge_attach(1493) dsi0=(____ptrval____)
static int lt9611_parse_dt(struct device *dev, struct lt9611 *lt9611)
{
int ret = 0;
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");
ret = drm_of_find_panel_or_bridge(dev->of_node, 1, -1, NULL, <9611->next_bridge);
printk("%s(%d) next_bridge=%p\n",__FUNCTION__,__LINE__,lt9611->next_bridge);
if(ret == -ENODEV) {
lt9611->next_bridge = NULL;
return 0;
}
return ret;
}
drm_of_find_panel_or_bridge - не находит bridge
&i2c2 {
/delete-node/ ov5640_mipi@3c;
/delete-node/ adv7535@3d;
lt9611_codec: lt9611@3b {
compatible = "lontium,lt9611";
reg = <0x3b>;
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";
port {
lt9611_to_dsi: endpoint {
remote-endpoint = <&dsi_to_lt9611>;
};
};
};
};
&mipi_dsi {
status = "okay";
/delete-node/ port@1;
port@1 {
reg = <1>;
dsi_to_lt9611: endpoint {
remote-endpoint = <<9611_to_dsi>;
attach-bridge;
};
};
};