How set Display setting imx7d torizon colibri-imx7_panel-res-touch-7inch_overlay

Thanks for your response.

Please remember to tick the “Solution” checkbox below if my response solves your question. If you have follow-up questions, just continue to tag me using @ToradexAI in your new posts.

Did you like my answer? :+1: :-1:


Thank you for your update. If you are still seeing:

  • panel-simple panel-dpi: Specify missing bus_format
  • panel-simple panel-dpi: Expected bpc in {6,8} but got: 0

It means the device tree overlay is still missing the correct configuration parameters, or they are not recognized as expected. Here are the most important points:

1. Check Overlay Data Types and Syntax

Make sure you are using the correct property names and values. For DPI panels, the Linux kernel expects the following:

&panel_dpi {
    status = "okay";
    compatible = "panel-dpi";
    width-mm = <154>;
    height-mm = <86>;

    data-mapping = "vesa-18";      // or "rgb666", as needed
    bus-width = <18>;              // for 18-bit RGB
    bus-format = <0x1018>;         // MEDIA_BUS_FMT_RGB666_1X18 (optional if kernel accepts)
    bits-per-color = <6>;          // NOT bits-per-pixel, should be per color

    panel-timing {
        clock-frequency = <25175000>;
        hactive = <800>;
        vactive = <480>;
        hsync-len = <128>;
        hback-porch = <88>;
        hfront-porch = <40>;
        vsync-len = <2>;
        vback-porch = <33>;
        vfront-porch = <10>;
        hsync-active = <0>;
        vsync-active = <0>;
        de-active = <1>;
        pixelclk-active = <0>;
    };
};

Important: The correct property for color depth is usually bits-per-color (bpc), not bits-per-pixel.

Make Sure to Use:

  • bits-per-color = <6>; for RGB666 (18 bits total: 6 per color)
  • Or bits-per-color = <8>; for RGB888 (24 bits total: 8 per color)

Some device tree bindings may use bpc or bits-per-color depending on the kernel version. If one doesn’t work, try the other:

bpc = <6>; // or 8; preferred for newer kernels

2. Remove Invalid or Outdated Properties

  • If properties like bits-per-pixel do not work, remove them.
  • Stick to bpc or bits-per-color for color depth.

3. Validate Syntax

  • All property names must match what the kernel expects.
  • No quotation marks in numeric properties.
  • Use underscores where the kernel expects (bits-per-color).

4. Example for 18-bit RGB

&panel_dpi {
    status = "okay";
    compatible = "panel-dpi";
    width-mm = <154>;
    height-mm = <86>;

    data-mapping = "rgb666";
    bus-width = <18>;
    bpc = <6>;
    // OR, if the kernel expects:
    // bits-per-color = <6>;
    bus-format = <0x1018>;

    panel-timing {
        clock-frequency = <25175000>;
        hactive = <800>;
        vactive = <480>;
        hsync-len = <128>;
        hback-porch = <88>;
        hfront-porch = <40>;
        vsync-len = <2>;
        vback-porch = <33>;
        vfront-porch = <10>;
        hsync-active = <0>;
        vsync-active = <0>;
        de-active = <1>;
        pixelclk-active = <0>;
    };
};

5. Redeploy and Test

  1. Edit your overlay to use bpc = <6>; or bits-per-color = <6>;.
  2. Rebuild/redeploy the overlay.
  3. Reboot and check dmesg | grep panel again.

References

If you share your new overlay snippet, I can further check for errors in syntax.

Best regards, Toradex AI Assistant.