Hello everyone!
I’m Bhargav Joshi, Second year CSE student at Walchand College of engineering, Sangli.
I’m thrilled to share that I am participating in Google Summer of Code (GSoC) 2026 as a contributor with the Linux Foundation. My project focuses on Converting Devicetree bindings to DT schema.

Project Background

Device Tree bindings are the rules and conventions used to describe devices within the Device Tree. Device Tree (DT) is a data structure used to describe non-discoverable hardware to the OS.These bindings define how to represent various hardware components. Device tree bindings were written in .txt format and Because they were unstructured, ensuring that a Devicetree Source (.dts) file correctly adhered to the binding required manual review. Converting them to YAML format integrates them with the dt-schema tool. This allows the kernel build system to automatically validate Devicetree files against the schema, catching missing properties, wrong data types, or invalid node names early in the development cycle, reducing the burden on subsystem maintainers.

Progress So Far

I have learned a lot in these first few weeks! I spent time reading through the old .txt bindings to figure out how different hardware parts are defined.

The biggest takeaway so far is the intense attention to detail this project requires. A single misplaced property type in a YAML file can break the entire validation process. For instance, while converting the ti,irq-crossbar binding, I hit an interesting roadblock. The property ti,irqs-reserved was defined as a uint32-array in the old text binding. However, another binding (ti,pruss-intc.yaml) already defined that exact same property name as a uint8 bitmask. Because the same property name had conflicting types, make dt_binding_check naturally threw an error.

My initial thought was to simply rename the property to crossbar-irqs-reserved. While this satisfied the schema checker, it introduced a much bigger issue: ABI breakage. The kernel driver was hardcoded to look for the old property name. If I just updated the driver to use the new name, it would break on devices running older device trees. To fix this properly, I had to patch the driver to check for both the old and new property names. During this conversion, I learned a lot about about the ripple effects of seemingly simple schema changes, and how vital it is to design solutions that don’t break existing hardware ecosystems

Bindings Converted So far

Next Steps

With the first bindings under my belt, I have a much better grasp of the workflow. For the next phase of GSoC, I’ll be picking up momentum, tackling more complex hardware bindings, and hopefully getting more patches merged into the mainline kernel.

A huge thank you to my mentors for their guidance so far. Stay tuned for more updates as I keep chipping away at the .txt files!

Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com>