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