GSoC Final Blog
Hello everyone,
Participating in GSoC 2024 with The Linux Foundation has been an incredible experience. As the program comes to a close, I’m thrilled to reflect on this journey, which saw 24 of my patches accepted for the Linux kernel, with 17 applied to the mainline kernel. It’s been a rewarding adventure, and before I bid farewell to this chapter, I want to share some final thoughts.
My Project: Device Tree Bindings
What is a Device Tree?
A Device Tree (DT) is a data structure used to describe non-discoverable hardware to the OS or bootloader. It is written in a .dts
file, which is compiled into the kernel image at build time. This structure provides a standardized way to describe a system’s hardware topology.
Device Tree Bindings
Device Tree bindings are the rules and conventions used to describe devices within the Device Tree. These bindings define how to represent various hardware components. Traditionally, they were written in a human-readable format, primarily for documentation purposes.
Converting Device Tree Bindings to DT Schema
My GSoC project focused on converting Device Tree bindings to the DT schema format. The DT schema enables semantic analysis of .dts
files, ensuring errors and warnings are detected and corrected. Throughout the project, I worked on addressing these issues while converting the bindings.
My Experience
When the GSoC 2024 projects were announced, I was immediately drawn to this one because I’ve always wanted to contribute to the Linux kernel. Initially, converting a simple binding seemed daunting, and my first patch required several iterations to get right. But as the project progressed, I gained a deeper understanding of how DT and device drivers work, which allowed me to push multiple patches in a single day. This project has been an incredible learning experience, and I’m excited to continue contributing to the Linux kernel. Once GSoC concludes, I plan to delve into device driver development.
What’s Left to Do
There are still a few bindings that need conversion. More importantly, after some of the conversions, dtbs_check
reports errors or warnings. In most cases, these are related to incorrect .dts
or .dtsi
files, and they should be fixed.
Complete List of All My Patches
During GSoC, I worked on converting numerous device tree bindings. Below is a list of the key patches, categorized by type:
- ATA:
- I2C:
- Crypto:
- Sound:
- ti,pcm1681.yaml
- asahi-kasei,ak4554.yaml
- spdif-receiver.txt - Merged into
/sound/linux,spdif.yaml
- wlf,wm8782.yaml
- realtek,rt5631.yaml
- wlf,wm8804.yaml
- realtek,rt5514.yaml
- realtek,rt5659.yaml
- realtek,rt5677.yaml
- realtek,rt5645.yaml
- cirrus,cs4270.yaml
- cirrus,cs42xx8.yaml
- pcm512x.txt
- fsl,imx-audio-es8328.yaml
- Clock:
- GPIO:
- Timer:
- Watchdog:
- Interrupt Controller: