DEV Community

Cover image for Understanding the Linux Device Tree Vendor Prefix Mechanism
Tony He
Tony He

Posted on

Understanding the Linux Device Tree Vendor Prefix Mechanism

The Linux kernel is one of the most modular and hardware-agnostic operating systems ever developed. To manage this diversity, the Device Tree (DT) was introduced as a flexible, architecture-independent way of describing hardware.

A key component of this system is the vendor prefix, a naming convention that ensures consistency and avoids conflicts across thousands of hardware manufacturers.

This article explores how the vendor prefix mechanism works, why it matters, and how display manufacturers—such as ROCKTECH DISPLAYS LIMITED—become officially recognized in the Linux kernel source tree.


1. What Is the Device Tree?

The Device Tree (DT) is a hierarchical data structure used by the Linux kernel to describe hardware components to the operating system.

Instead of hardcoding board information into the kernel, developers define hardware in plain-text .dts (Device Tree Source) files that describe CPUs, buses, peripherals, and GPIOs.

When the system boots, the kernel reads the compiled .dtb (Device Tree Blob) to understand how to initialize and interact with hardware.

Example:

&i2c1 {
    touchscreen@38 {
        compatible = "goodix,gt911";
        reg = <0x38>;
        interrupt-parent = <&gpio3>;
        interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
    };
};
Enter fullscreen mode Exit fullscreen mode

Here, the compatible string "goodix,gt911" is essential — it tells the kernel which driver should handle this device.


2. Why Vendor Prefixes Exist

Since Linux supports an enormous range of SoCs and peripherals, name collisions can easily occur.

To prevent this, the kernel uses vendor prefixes, ensuring every compatible property starts with a unique manufacturer identifier.

For instance:

Manufacturer Example Compatible String
Goodix goodix,gt911
Rockchip rockchip,rk3566
Rocktech Displays rocktech,rk070cu01
Samsung samsung,exynos5422

This convention allows developers and maintainers to know immediately which vendor a driver or hardware node belongs to.

It also ensures that future devices from different companies don’t accidentally share the same name.


3. How Vendor Prefixes Are Registered

Vendor prefixes are maintained in the file:

Documentation/devicetree/bindings/vendor-prefixes.txt
Enter fullscreen mode Exit fullscreen mode

Each line defines one vendor or organization that contributes hardware components, SoCs, or modules supported by the kernel.

Adding a new vendor requires submitting a patch to the Linux kernel mailing list (LKML) and obtaining maintainer approval.

Example patch (from the Linux mailing list):

From: Guido Günther <agx@sigxcpu.org>
Subject: [PATCH v5 1/3] dt-bindings: Add vendor prefix for ROCKTECH DISPLAYS LIMITED
Date: Mon, 1 Apr 2019 12:35:33 +0200

Add ROCKTECH DISPLAYS LIMITED (https://rocktech.com.hk) LCD panel supplier.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Enter fullscreen mode Exit fullscreen mode

After merging, the entry appears in the official file as:

rocktech  ROCKTECH DISPLAYS LIMITED
Enter fullscreen mode Exit fullscreen mode

This single line gives the manufacturer permanent recognition in the Linux kernel’s device tree ecosystem.

  1. How Drivers Use Vendor Prefixes

In each device driver, the kernel matches the hardware node’s compatible property with a corresponding driver entry.

Example: a display driver for Rocktech LCD panels might contain:

static const struct of_device_id rocktech_display_of_match[] = {
    { .compatible = "rocktech,rk070cu01", },
    { .compatible = "rocktech,rk050hr18", },
    { }
};
MODULE_DEVICE_TABLE(of, rocktech_display_of_match);
Enter fullscreen mode Exit fullscreen mode

When the system boots and parses the Device Tree, the kernel searches for matching strings.
If it finds a rocktech,rk070cu01 node, it automatically loads the appropriate driver.

This mechanism enables plug-and-play behavior in embedded systems — without recompiling the kernel for every board variation.


  1. Real-World Example: LCD Panels and Vendor Prefixes

Let’s look at how vendor prefixes simplify integration for display manufacturers.

Imagine a developer designing a custom control panel using a Rockchip PX30 or RK3566 SoC.
The display manufacturer is Rocktech, and the LCD model is RK070CU01.

The Device Tree node might look like this:

&dsi {
    panel@0 {
        compatible = "rocktech,rk070cu01";
        reg = <0>;
        backlight = <&backlight>;
        power-supply = <&vcc_lcd>;
    };
};
Enter fullscreen mode Exit fullscreen mode

Thanks to the registered vendor prefix:
• The developer knows the correct string to use.
• The kernel recognizes it as a Rocktech display.
• No conflict occurs with other display suppliers.

This ecosystem consistency is why the vendor prefix mechanism is critical for maintaining long-term kernel compatibility.


  1. Submitting a New Vendor Prefix: Step-by-Step

If you’re a hardware manufacturer, here’s how to get your prefix included in the Linux kernel:

Step 1: Fork and Clone the Linux Kernel

Clone from the official repository (for example, from kernel.org or a public Git mirror).

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Enter fullscreen mode Exit fullscreen mode

Step 2: Edit the Prefix File

Add a new line in:

Documentation/devicetree/bindings/vendor-prefixes.txt
Enter fullscreen mode Exit fullscreen mode

Example:

mycompany  MyCompany Embedded Systems
Enter fullscreen mode Exit fullscreen mode

Step 3: Generate and Send a Patch

Use standard Git workflow:

git add Documentation/devicetree/bindings/vendor-prefixes.txt
git commit -s -m "dt-bindings: Add vendor prefix for MyCompany Embedded Systems"
git send-email --to=devicetree@vger.kernel.org --cc=linux-kernel@vger.kernel.org HEAD~1
Enter fullscreen mode Exit fullscreen mode

Step 4: Wait for Maintainer Review

The patch is discussed on the Linux Kernel Mailing List (LKML).
Once approved, it’s merged into the mainline kernel by maintainers.


7. Benefits of the Vendor Prefix System

Benefit Description
Namespace Control Prevents duplicate names among 3000+ vendors
Interoperability Ensures different devices can coexist without driver conflicts
Traceability Developers can trace a compatible string back to its official manufacturer
Open Collaboration Any hardware company can contribute by following standard Linux submission practices
Long-Term Support Devices with registered prefixes remain supported across kernel versions

This structured approach ensures the Linux kernel can support thousands of vendors —

from global giants like Samsung and TI to specialized manufacturers such as Rocktech — without chaos or naming conflicts.


8. The Role of Maintainers and Community Trust

Every new vendor prefix submission is reviewed by maintainers such as Rob Herring or Krzysztof Kozlowski, who oversee Device Tree bindings in the Linux kernel.
Their goal is to maintain quality, consistency, and trust in the global hardware ecosystem.

The prefix list is not just a technical registry — it’s also a reflection of the Linux open-source collaboration model:
• Transparent,
• Traceable,
• Vendor-neutral.

For display and embedded module makers, being listed means official recognition in the kernel space — an important milestone that validates compatibility and credibility.

9. How Vendor Prefixes Influence Embedded Ecosystems

Vendor prefixes have a deeper influence beyond the kernel:
• Yocto / Buildroot distributions use these identifiers for driver inclusion.
• Android BSPs (Board Support Packages) rely on them for display, audio, and sensor configuration.
• Documentation generators automatically link compatible strings to driver docs.

So, a single prefix entry (like "rocktech,rk070cu01") connects:
1. The Device Tree,
2. The Linux driver,
3. The documentation system,
4. The kernel build metadata.

This connection reduces integration time for developers and OEMs building industrial panels, medical systems, or custom Android HMIs.

10. Conclusion

The Linux Device Tree vendor prefix mechanism is a simple yet powerful foundation of embedded hardware compatibility.
By defining clear, unique identifiers for every hardware vendor, it allows developers to build and maintain devices across multiple architectures—without confusion or naming conflicts.

Manufacturers like ROCKTECH DISPLAYS LIMITED demonstrate how proper registration strengthens ecosystem integration, ensuring that every compatible device can be easily supported, recognized, and maintained across generations of Linux kernels.

As embedded systems continue to evolve—especially in industrial control panels, automotive dashboards, and smart displays—the importance of structured naming and open collaboration in the kernel will only grow stronger.

References

Top comments (0)