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

torizon@colibri-imx7-emmc-06673350:~$ dmesg | grep panel
[ 0.074284] /soc/bus@30400000/lcdif@30730000: Fixed dependency cycle(s) with /panel-dpi
[ 0.074401] /panel-dpi: Fixed dependency cycle(s) with /soc/bus@30400000/lcdif@30730000
[ 1.681565] panel-simple panel-dpi: Specify missing bus_format
[ 1.681588] panel-simple panel-dpi: Expected bpc in {6,8} but got: 0

My dfs file include
/dts-v1/;
/plugin/;

/ {
compatible = “toradex,colibri-imx7d”,
“toradex,colibri-imx7s”,
“toradex,colibri-imx7d-emmc”;
};
&panel_dpi {
status = “okay”;
compatible = “panel-dpi”;

width-mm = <154>;
height-mm = <86>;

data-mapping = "rgb666";  // RGB 18-bit (666)
bus-width = <18>;

bus-format = <0x1018>;//<MEDIA_BUS_FMT_RGB666_1X18>;

panel-timing {
    clock-frequency = <25175000>;//<25165392>;
    hactive = <800>;
    vactive = <480>;

    hsync-len = <128>;//<43>;
    hback-porch = <88>;//<46>;
    hfront-porch = <40>;//<210>;

    vsync-len = <2>;
    vback-porch = <33>;//<23>;
    vfront-porch = <10>;//<22>;
   
    hsync-active = <0>;      // active low
    vsync-active = <0>;      // active low
    de-active = <1>;         // data enable active high
    pixelclk-active = <0>;   // falling edge active
};

};
&backlight {
status = “okay”;
};

&lcdif {
status = “okay”;
};

&pwm1 {
status = “okay”;
};

&ad7879_ts {
status = “okay”;
};

I didnt understand where I am getting issue please guide me to fix this problem.I am getting this type of window while setting this dtbo in overlay

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

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


Hello! Thanks for sharing detailed logs and configuration. Let’s address the issues step by step.

Problem Analysis

Your dmesg shows these errors:

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

This means the display subsystem is not correctly receiving the bus_format and bits-per-color (bpc) values.

1. Bus Format

You have:

bus-format = <0x1018>; // MEDIA_BUS_FMT_RGB666_1X18

But this is sometimes not parsed correctly. You should use the string notation for data-mapping, which is more reliable.

Recommended setting:

data-mapping = "vesa-24";

Or, if your display truly requires 18-bit (666), you can try "jeida-18" or "vesa-18". For most 24-bit panels, "vesa-24" is standard.

2. Bits Per Pixel

The error Expected bpc in {6,8} but got: 0 means the “bits-per-pixel” property is missing. The value should match your color depth (typically 24 for 8bpc x 3 colors, or 18 for 6bpc x 3):

bits-per-pixel = <24>;

For 18bpp, use <18>.

3. Example Panel Node

Combine the recommendations as follows:

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

    data-mapping = "vesa-24";           // for 24-bit RGB
    bus-width = <24>;                   // match with data-mapping
    bits-per-pixel = <24>;              // match color depth

    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>;
    };
};

If using 18-bit data mapping:

data-mapping = "vesa-18";
bus-width = <18>;
bits-per-pixel = <18>;

4. Rebuild and Apply Changes

  • Rebuild your device tree overlay after making these changes.
  • Reapply the overlay and reboot.
  • Check dmesg again for errors.

5. Additional Resources

For more details, refer to:
https://community.toradex.com/t/dual-channel-lvds-dts-overlay-and-display-power-on-sequence-configuration/27731

Next Steps

  1. Correct your overlay as above.
  2. Rebuild/redeploy it.
  3. Reboot and check dmesg | grep panel to see if errors are gone.

If you still have display issues after correcting these properties, please upload your new dmesg output so we can help further.

Best regards, Toradex AI Assistant.

panel-simple panel-dpi: Specify missing bus_format
panel-simple panel-dpi: Expected bpc in {6,8} but got: 0
same error i am getting @ToradexAI

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.

yes I am new
7-inch-parallel-resistive-touch-display-800x480-v1.0-datasheet.pdf (3.0 MB)
i attached datasheet for your reference please guide me to set display properly below is my dts file look at it.
/dts-v1/;
/plugin/;

/ {
compatible = “toradex,colibri-imx7d”,
“toradex,colibri-imx7s”,
“toradex,colibri-imx7d-emmc”;
};
&panel_dpi {
status = “okay”;
compatible = “panel-dpi”;
width-mm = <154>;
height-mm = <86>;

//data-mapping = "vesa-24";
//bus-width = <24>;              // 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";           // for 24-bit RGB
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>;
};

};
&backlight {
status = “okay”;
};

&lcdif {
status = “okay”;
};

&pwm1 {
status = “okay”;
};

&ad7879_ts {
status = “okay”;
};
please guide me is there any clock frequency mismatch or anything else need to do correction.

Hi @intersense.design

Can you clarify some questions?

1)yes,I am using Resistive Touch Display 7" Parallel .
2)tdx-info:
Software summary

Bootloader: U-Boot
Kernel version: 6.1.132-6.8.2+git.8e60a714ba3b #1-TorizonCore SMP Thu Feb 27 10:29:52 UTC 2025
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/e899ba680947c8038535f4c3d774d886230581f44fe6e19a9d856b0a2f0a5514/0
Distro name: NAME=“TorizonCore Upstream”
Distro version: VERSION_ID=6.8.2-build.30
Distro variant: VARIANT=“Docker”
Hostname: colibri-imx7-emmc-06673350

Hardware info

HW model: Toradex Colibri iMX7D 1GB (eMMC) on Colibri Evaluation Board V3
Toradex version: 0039 V1.1A
Serial number: 06673350
Processor arch: armv7l

3)I am using Iris Carrier Board
4)yes,I take refernce from toradex git
2)colibri-imx7_panel-res-touch-7inch_overlay.dts « overlays - device-tree-overlays.git - Sources for Device Tree Overlays

3)colibri-imx7_ad7879_overlay.dtsi « overlays - device-tree-overlays.git - Sources for Device Tree Overlays
4)colibri-imx7_parallel-rgb_overlay.dtsi « overlays - device-tree-overlays.git - Sources for Device Tree Overlays

and modify hback and hfront and make dts file to dtbo and add into overlay.txt please guide me @allan.tx @ToradexAI .

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 the detailed information and for confirming your hardware and settings.

1. Recommended Solution: Use the Pre-built Overlay

For your hardware and display combination (Colibri iMX7D 1GB on Iris Carrier with Toradex’s Resistive Touch Display 7" Parallel), Toradex provides an official, pre-built device tree overlay:
colibri-imx7_panel-res-touch-7inch_overlay.dtbo

This overlay is designed, tested, and maintained by Toradex for your exact setup. It includes all the correct parameters—such as timing, bus format, color depth, and touch configuration—removing any manual guesswork or configuration errors.

How to use the pre-built overlay

  1. Ensure the overlay is present:

    ls /boot/overlays/colibri-imx7_panel-res-touch-7inch_overlay.dtbo
    

    If it is missing, you may need to update your BSP.

  2. Edit /boot/overlays.txt and add:

    colibri-imx7_panel-res-touch-7inch_overlay.dtbo
    
  3. Reboot your system.

Reference:


2. If You Need To Adjust Timing Parameters

If you must modify specific timing values (like hback/hfront-porch) for display optimization, you can create a custom overlay based on the official one. Use the official source overlay as a template.

Key notes for your overlay:

  • Only adjust timing parameters in the panel-timing node; do not change properties like bus-format, bpc, data-mapping, or compatible unless your display really requires it.
  • The correct property for color depth per the Linux kernel is bpc = <6>; for 6 bits per color (18-bit) or bpc = <8>; for 8 bits per color (24-bit).
  • Do not use bits-per-color or bits-per-pixel; these are not standard properties for panel-simple.

See the official overlay as an example, and make minimal changes.


3. Troubleshooting the Kernel Error

If you see this error after using the official overlay:

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 not being parsed/applied correctly.

Common issues:

  • Syntax errors (such as using smart quotes instead of plain ").
  • Missing required properties (bus-format, bpc).
  • Overlay not loaded by bootloader/kernel (check /proc/device-tree/overlays/).
  • Wrong overlay filename/overlay not listed in /boot/overlays.txt.

4. Minimal Example (based on the official overlay)

/dts-v1/;
/plugin/;

/{
    compatible = "toradex,colibri-imx7d",
                 "toradex,colibri-imx7s",
                 "toradex,colibri-imx7d-emmc";
};

&panel_dpi {
    status = "okay";
    compatible = "panel-dpi";
    width-mm = <154>;
    height-mm = <86>;
    data-mapping = "rgb666";
    bus-width = <18>;
    bus-format = <0x1018>;  // MEDIA_BUS_FMT_RGB666_1X18
    bpc = <6>;
    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>;
    };
};
&backlight {
    status = "okay";
};
&lcdif {
    status = "okay";
};
&pwm1 {
    status = "okay";
};
&ad7879_ts {
    status = "okay";
};

Check that you:

  • Use only normal, straight quotes ".
  • Save and compile with dtc properly (no syntax errors).
  • List the .dtbo in /boot/overlays.txt.

Summary

  • Try the pre-built official overlay first (recommended).
  • If customizing, only change timing.
  • Always use straight quotes, correct bpc/bus-format syntax, and double-check your dtbo is loaded.

If you follow the above and the issue persists, please share the result of:

cat /boot/overlays.txt
ls /boot/overlays/*.dtbo
dmesg | grep overlay
dmesg | grep panel

Useful links:

Best regards, Toradex AI Assistant.