IMX8MM: assign panel to mipi_dsi in a device tree
Patrick Boettcher
patrick.boettcher at posteo.de
Sun Mar 5 15:22:48 UTC 2023
Hi list,
After several days of trying I realize my too small/old brain is unable
to map around how to assign/connect a panel to the mipi_dsi-node in a
device.
We are using a 'tdo,tl070wsh30' panel connected to the
mipi-dsi-interface of a imx8mm.
Of all the references I found on the in public repositories none of
them is using this exact panel. Well.
Looking at other device trees I came up with the following dts-node add
to the mipi_dsi-node:
&mipi_dsi {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
port at 0 {
reg = <0>;
mipi_dsi_panel0_out: endpoint {
remote-endpoint = <&panel0_in>;
attach-bridge;
};
};
panel at 0 {
compatible = "tdo,tl070wsh30";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi>;
pinctrl-names = "default";
reset-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
enable-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
backlight = <&panel_gpio_backlight>;
power-supply = <&panel_gpio_regulator>;
dsi-lanes = <4>;
video-mode = <0>;
panel-width-mm = <157>;
panel-height-mm = <86>;
status = "okay";
port {
panel0_in: endpoint {
remote-endpoint =<&mipi_dsi_panel0_out>;
};
};
};
};
You'll see that I used the attach-bridge-option, which is maybe not
necessary. I found this during a debug-print-session in the
drm-bridge-driver, it wasn't attaching a bridge. But maybe I don't need
a bridge as the panel-driver contains everything to control the
controllers of the panel. I don't really know.
However, with this I have the following messages:
[ 0.393985] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc at 0/bus at 32c00000/mipi_dsi at 32e10000 to encoder DSI-34: -19
[ 0.405626] imx_sec_dsim_drv 32e10000.mipi_dsi: Failed to attach bridge: 32e10000.mipi_dsi
[ 0.413974] imx_sec_dsim_drv 32e10000.mipi_dsi: failed to bind sec dsim bridge: -517
The panel driver is never instantiated.
I'm using 5.15.51 (-imx). mipi_dsi and the panel-driver are built into
the kernel.
I have to say that I'm basically trying to imitate the
device-tree-implementation based on example rather than understanding
the exact details of how to correctly work with mipi_dsi and the panel.
I'd appreciate any help and pointers which lead me into the right
direction.
Thanks in advance.
--
Patrick.
More information about the dri-devel
mailing list