IMX8MM: assign panel to mipi_dsi in a device tree

Patrick Boettcher patrick.boettcher at posteo.de
Sun Mar 5 19:45:55 UTC 2023


On Mon, 6 Mar 2023 00:05:03 +0530
Jagan Teki <jagan at amarulasolutions.com> wrote:

>On Sun, Mar 5, 2023 at 11:39 PM Patrick Boettcher
><patrick.boettcher at posteo.de> wrote:
>>
>> 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.  
>
>Please share the source repo link? 

I'm using this one (via yocto's recipe):

    github.com/nxp-imx/linux-imx.git, branch lf-5.15.y

> B/W if you may try the mainline
>code base of imx8mm dsi please check here.
>https://github.com/openedev/kernel/commits/imx8mm-dsi-v16

Do you really think this is a kernel version problem not only an
integration issue? I mean NXP's version is coming with device-tree's
using panels, and, although I can't test, I believe they are working,
aren't they?

--
Patrick.




More information about the dri-devel mailing list